Eventos personalizados

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

Definir nombres de eventos en intents

Puedes definir un nombre de evento en un intent en la consola del desarrollador o a través de la API con la ayuda de la 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 adicionar eventos a través de la API, agrega una string al campo events del objeto Intent, como se ve en la solicitud HTTP que aparece a continuación:

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

Consulta la referencia de la API.

Invocar 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 en 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"
                }
        }
}

Consulta la referencia de la API.

Invoca eventos desde webhook

Puedes invocar eventos a través de la entrega, mediante la configuración del campo followupEventInput de 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 inmediatamente el intent correspondiente en el que se definió.

El siguiente flujo describe los pasos:

  1. El usuario final escribe o verbaliza una declaración.
  2. Dialogflow hace coincidir la declaración con el Intent-1, que se configura 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.