Eventos personalizados

Los eventos personalizados son eventos que tú defines. Se usan para manejar cosas que suceden fuera de la conversación con el usuario final. Por ejemplo, el usuario final hizo clic en un botón, pasó una cierta cantidad de tiempo, el inventario disponible cambió durante la conversación y así sucesivamente.

Puedes invocarlos mediante una entrega o la API.

Invoca eventos con la API

La solicitud de una llamada detectIntent de tipo Sessions contiene un campo queryInput.event, que se usa para invocar eventos. El tipo de este campo es un EventInput y contiene campos para el nombre del evento, parámetros opcionales y el código de idioma.

Cuando proporcionas un evento a una llamada de detección de intent, no proporcionas otros datos, como una expresión de usuario final. El único propósito de la llamada es invocar un evento y activar un intent.

Invoca eventos con entrega

Puedes invocar eventos mediante la entrega con la configuración del campo followupEventInput de la WebhookResponse. De forma opcional, puedes configurar el campo followupEventInput.parameters para proporcionar parámetros al intent.

Por ejemplo:

{
  "followupEventInput": {
    "name": "event-name",
    "parameters": {
      "parameter-name-1": "parameter-value-1",
      "parameter-name-2": "parameter-value-2"
    },
    "languageCode": "en-US"
  }
}

Cuando se configura el parámetro followupEventInput para una WebhookResponse, Dialogflow ignora los campos fulfillmentText, fulfillmentMessages y payload. Además, el campo followupEventInput.languageCode es obligatorio, pero Dialogflow lo ignora porque el idioma ya estaba definido en la solicitud de detección de intent de origen.

Cuando Dialogflow recibe una respuesta de webhook que incluye un evento, activa el intent correspondiente en el que se definió de forma inmediata.

El siguiente flujo describe los pasos:

  1. El usuario final escribe o dice una expresión.
  2. Dialogflow hace coincidir la expresión del usuario final con Intent-1, que está configurado para la entrega.
  3. Dialogflow envía una solicitud de webhook a tu servidor.
  4. Tu servidor contesta con una respuesta de webhook que incluye un evento de seguimiento.
  5. En lugar de responder al usuario respecto de la coincidencia del Intent-1, Dialogflow activa el Intent-2 que se configura para el evento.
  6. Dialogflow procede como si el usuario final iniciara la coincidencia para el Intent-2 y maneja los parámetros requeridos y la entrega según lo que dicta la configuración del Intent-2.

Encadena coincidencias de intents con eventos de respuesta de webhook

Es posible encadenar coincidencias de intents con eventos de respuesta de webhook. En el flujo descrito anteriormente, el Intent-2 también podría configurarse para la entrega. Si la respuesta de webhook de tu servidor proporciona otro evento, Dialogflow hace coincidir el Intent-3 (configurado para el evento) sin responder al usuario final respecto del Intent-2.

Dialogflow no responde al usuario final hasta que la cadena haya finalizado. Cuando se encadenan intents de tal manera, cada respuesta de webhook debe enviarse dentro de las restricciones de tiempo de espera.