Los eventos personalizados son eventos que tú defines. Se usan para controlar lo que sucede fuera de la conversación con el usuario final. Por ejemplo, el usuario final hizo clic en un botón, transcurrió un período determinado, el inventario disponible cambió durante la conversación, etcétera.
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, ya que el idioma ya se definió en la solicitud de intent de detección original.
Cuando Dialogflow recibe una respuesta de webhook que incluye un evento, activa inmediatamente el intent correspondiente en el que se definió.
El siguiente flujo describe los pasos:
- El usuario final escribe o dice una expresión.
- Dialogflow hace coincidir la expresión del usuario final con Intent-1, que está configurado para la entrega.
- Dialogflow envía una solicitud de webhook a tu servidor.
- Tu servidor contesta con una respuesta de webhook que incluye un evento de seguimiento.
- En lugar de responder al usuario respecto de la coincidencia del Intent-1, Dialogflow activa el Intent-2 que se configura para el evento.
- 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.