Eventos personalizados

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:

  1. O utilizador final escreve ou diz uma expressão.
  2. O Dialogflow faz corresponder a expressão do utilizador final a Intent-1, que está configurado para o processamento.
  3. O Dialogflow envia um pedido de webhook para o seu servidor.
  4. O seu servidor responde com uma resposta de webhook que inclui um evento de seguimento.
  5. Em vez de responder ao utilizador para a correspondência Intent-1, o Dialogflow aciona Intent-2, que está configurado para o evento.
  6. 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.