Événements personnalisés

Les événements personnalisés sont des événements que vous définissez. Vous pouvez appeler ces événements à l'aide du fulfillment ou de l'API. Par exemple, vous pouvez définir une alerte planifiée devant se déclencher au cours d'une conversation pour appeler un événement à un moment donné. Cet événement peut déclencher un intent qui alerte l'utilisateur final à propos de quelque chose.

Appeler des événements avec l'API

La requête portant sur un appel detectIntent de type Sessions contient un champ queryInput.event qui permet d'appeler des événements. Le type de ce champ est un EventInput, et il contient des champs pour le nom de l'événement, les paramètres facultatifs et le code de langue.

Lorsque vous fournissez un événement à un appel de détection d'intent, vous ne fournissez pas d'autres données telles qu'une expression d'utilisateur final. Le seul but de l'appel est d'appeler un événement et de déclencher un intent.

Appeler des événements avec le fulfillment

Vous pouvez appeler des événements via le fulfillment en paramétrant le champ followupEventInput du message WebhookResponse. Vous pouvez éventuellement définir le champ followupEventInput.parameters pour fournir des paramètres à l'intent.

Exemple :

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

Lorsque le paramètre followupEventInput est défini pour un WebhookResponse, Dialogflow ignore les champs fulfillmentText, fulfillmentMessages et payload. Lorsque Dialogflow reçoit une réponse de webhook qui inclut un événement, il déclenche immédiatement l'intent correspondant dans lequel cet événement a été défini.

Le flux suivant décrit les différentes étapes :

  1. L'utilisateur final saisit ou prononce une expression.
  2. Dialogflow met en correspondance l'expression d'utilisateur final avec l'Intent-1, qui est configuré pour le fulfillment.
  3. Dialogflow envoie une requête webhook à votre serveur.
  4. Votre serveur renvoie une réponse webhook qui inclut l'événement de suivi.
  5. Au lieu de répondre à l'utilisateur pour la correspondance Intent-1, Dialogflow déclenche l'Intent-2, lequel est configuré pour l'événement.
  6. Dialogflow procède comme si l'utilisateur final avait initié la correspondance pour l'Intent-2 et gère les paramètres obligatoires ainsi que le fulfillment, conformément à la configuration de l'Intent-2.

Relier des correspondances d'intent aux événements de réponse Webhook

Il est possible de relier des correspondances d'intent à des événements de réponse webhook. Dans le flux décrit ci-dessus, l'Intent-2 pourrait également être configuré pour le fulfillment. Si la réponse webhook de votre serveur fournit un autre événement, Dialogflow effectue la mise en correspondance de l'Intent-3 (configuré pour l'événement) sans fournir de réponse à l'utilisateur final pour l'Intent-2.

Dialogflow ne répond pas à l'utilisateur final tant que la chaîne n'est pas achevée. Lorsque les intents sont reliés de cette façon, chaque réponse webhook doit être envoyée dans les limites du délai avant expiration.