Événements personnalisés

Les événements personnalisés sont des événements que vous définissez. Ils sont utilisés pour gérer les choses qui se produisent en dehors de la conversation avec l'utilisateur final. Par exemple, l'utilisateur final a cliqué sur un bouton, un certain temps s'est écoulé, l'inventaire disponible a changé au cours de la conversation, etc.

Vous pouvez appeler ces événements à l'aide du fulfillment ou de l'API.

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 élément WebhookResponse, Dialogflow ignore les champs fulfillmentText, fulfillmentMessages et payload. En outre, le champ followupEventInput.languageCode est obligatoire, mais Dialogflow l'ignore, car la langue a déjà été définie dans la requête de détection d'intent d'origine.

Lorsque Dialogflow reçoit une réponse 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.