Eventos personalizados

Los eventos personalizados son eventos que creas para indicar una comunicación que no puede captarse con facilidad a través de texto o voz. Los eventos personalizados pueden indicar que un usuario ha hecho clic en un botón o proporcionado autorización, o que ha pasado una cierta cantidad de tiempo. Estos eventos pueden activarse mediante la entrega de Dialogflow o la API de detección de intent. Estos eventos se pueden manejar en tu agente de Dialogflow o en la entrega.

Define nombres de eventos en intents

Puedes definir un nombre de evento en un intent en la consola de Dialogflow o con el tipo de API de Intents.

En el intent, ubica la sección Events (Eventos) y, luego, ingresa el nombre o los nombres del evento en el campo de texto:

Para agregar eventos mediante la API, agrega una string al campo events del tipo Intents, como se ve en la solicitud HTTP a continuación:

PATCH Authorization: Bearer <AccessToken>
https://dialogflow.googleapis.com/v2/projects/<ProjectID>/agent/intents/<IntentID>
{
  "events": [
    "event-name-1",
    "event-name-2"
    ...
  ]
  ...
}

Invoca un evento a través de la API de detección de intent

Para activar un intent específico por nombre de evento, envía una solicitud a la API de detección de intent que contenga un parámetro de evento que corresponda al nombre del evento. Cuando envías una solicitud de consulta con un parámetro de evento, Dialogflow crea un contexto con el mismo nombre que el nombre del evento y el contexto lifespan: 0. Este valor de vida útil significa que el contexto está activo solo durante la solicitud actual.

Puedes usar este contexto para pasar los valores de parámetros de la solicitud de detección de intent a los parámetros definidos en la sección Acción y parámetros del intent y también hacer referencia a estos valores de parámetros en la sección Respuesta del intent activado.

  • Para hacer referencia a un parámetro de evento en la tabla de parámetros o a una respuesta, usa el siguiente formato: #event-name.parameter-name.
POST Authorization: Bearer <AccessToken>
https://dialogflow.googleapis.com/v2/projects/<ProjectID>/agent/sessions/<SessionID>:detectIntent
{
        "queryInput": {
                "event": {
                        "name": "event-name",
                        "parameters": {
                                "parameter-name-1": "parameter-value-1",
                                "parameter-name-2": "parameter-value-2",
                                ...
                        },
                        "languageCode": "en-US"
                }
        }
}

Para obtener más información, consulta el método detectIntent del tipo Sessions.

Invoca eventos desde webhook

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

Cuando creas un agente, puedes hacer referencia a los parámetros del evento para el intent que activará el evento.

Cuando tu aplicación recibe una WebhookRequest de entrega, puedes activar un evento de seguimiento mediante el envío de una WebhookResponse similar a lo siguiente:

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

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

En el siguiente flujo, se describen los pasos:

  1. El usuario final escribe o verbaliza 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.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Dialogflow
¿Necesitas ayuda? Visita nuestra página de asistencia.