Os eventos personalizados são eventos definidos por si. São usados para processar as ações que ocorrem fora da conversa com o utilizador final. Por exemplo: o utilizador final clicou num botão, passou um determinado período, o inventário disponível mudou durante a conversa, e assim sucessivamente.
Pode invocar estes eventos através do fulfillment ou da API.
Invocar eventos com a API
O pedido de uma chamada do tipo Sessions
contém um campo queryInput.event
, que é usado para invocar eventos.detectIntent
O tipo deste campo é EventInput
e contém campos para o nome do evento, parâmetros opcionais e o código do idioma.
Quando fornece um evento a uma chamada detect intent, não fornece outros dados, como uma expressão do utilizador final. O único objetivo da chamada é invocar um evento e acionar uma intenção.
Invocar eventos com o preenchimento
Pode invocar eventos através do
preenchimento
definindo o campo followupEventInput
do
WebhookResponse
.
Opcionalmente, pode definir o campo followupEventInput.parameters
para fornecer parâmetros à intenção.
Por exemplo:
{
"followupEventInput": {
"name": "event-name",
"parameters": {
"parameter-name-1": "parameter-value-1",
"parameter-name-2": "parameter-value-2"
},
"languageCode": "en-US"
}
}
Quando o parâmetro followupEventInput
está definido para um WebhookResponse
,
o Dialogflow ignora os campos fulfillmentText
, fulfillmentMessages
,
e payload
.
Além disso, o campo followupEventInput.languageCode
é um campo obrigatório, mas o Dialogflow ignora este campo porque o idioma já foi definido no pedido de intenção de deteção de origem.
Quando o Dialogflow recebe uma resposta de webhook que inclui um evento, aciona imediatamente a intenção correspondente na qual foi definido.
O fluxo seguinte descreve os passos:
- O utilizador final escreve ou diz uma expressão.
- O Dialogflow faz corresponder a expressão do utilizador final a Intent-1, que está configurado para o processamento.
- O Dialogflow envia um pedido de webhook para o seu servidor.
- O seu servidor responde com uma resposta de webhook que inclui um evento de seguimento.
- Em vez de responder ao utilizador para a correspondência Intent-1, o Dialogflow aciona Intent-2, que está configurado para o evento.
- O Dialogflow prossegue como se o utilizador final tivesse iniciado a correspondência para Intent-2 e processa os parâmetros e o preenchimento necessários conforme ditado pela configuração de Intent-2.
Encadeamento de correspondências de intenções com eventos de resposta de webhook
É possível encadear correspondências de intenções com eventos de resposta de webhook. No fluxo descrito acima, também pode configurar o Intent-2 para o preenchimento. Se a resposta do webhook do seu servidor fornecer outro evento, o Dialogflow prossegue para a correspondência com Intent-3 (configurado para o evento) sem responder ao utilizador final para Intent-2.
O Dialogflow não responde ao utilizador final até a cadeia terminar. Quando encadeia intenções desta forma, cada resposta do webhook tem de ser enviada dentro das restrições de tempo limite.