Los eventos personalizados son aquellos que tú defines. Se usan para gestionar lo que ocurre fuera de la conversación con el usuario final. Por ejemplo, el usuario final ha hecho clic en un botón, ha transcurrido un periodo determinado, el inventario disponible ha cambiado durante la conversación, etc.
Puedes invocar estos eventos mediante fulfillment o la API.
Invocar eventos con la API
La solicitud de una llamada de tipo Sessions
detectIntent
contiene un campo queryInput.event
, que se usa para invocar eventos.
El tipo de este campo es EventInput
y contiene campos para el nombre del evento, parámetros opcionales y el código de idioma.
Cuando proporciona un evento a una llamada de detección de intención, no proporciona otros datos, como una expresión del usuario final. El único fin de la llamada es invocar un evento y activar una intención.
Invocar eventos con el cumplimiento
Puedes invocar eventos mediante cumplimiento configurando el campo followupEventInput
de WebhookResponse
.
También puedes definir el campo followupEventInput.parameters
para proporcionar parámetros a la intención.
Por ejemplo:
{
"followupEventInput": {
"name": "event-name",
"parameters": {
"parameter-name-1": "parameter-value-1",
"parameter-name-2": "parameter-value-2"
},
"languageCode": "en-US"
}
}
Cuando se define el parámetro followupEventInput
para un 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 se ha definido en la solicitud de detección de intención original.
Cuando Dialogflow recibe una respuesta de webhook que incluye un evento, activa inmediatamente la intención correspondiente en la que se definió.
En el siguiente flujo se describen 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á configurada para el cumplimiento.
- Dialogflow envía una solicitud de webhook a tu servidor.
- Tu servidor responde con una respuesta de webhook que incluye un evento de seguimiento.
- En lugar de responder al usuario por la coincidencia con Intención-1, Dialogflow activa Intención-2, que está configurada para el evento.
- Dialogflow actúa como si el usuario final hubiera iniciado la coincidencia de Intención-2 y gestiona los parámetros obligatorios y el cumplimiento según lo dictado por la configuración de Intención-2.
Encadenar coincidencias de intención con eventos de respuesta de webhook
Es posible encadenar coincidencias de intenciones con eventos de respuesta de webhook. En el flujo descrito anteriormente, Intent-2 también se puede configurar para que se complete. Si la respuesta del webhook de tu servidor proporciona otro evento, Dialogflow procederá a buscar una coincidencia con Intención-3 (configurada para el evento) sin responder al usuario final para Intención-2.
Dialogflow no responde al usuario final hasta que finaliza la cadena. Cuando se encadenan intents de esta forma, cada respuesta de webhook debe enviarse dentro de los límites de tiempo de espera.