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é pendant 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 WebhookResponse
, Dialogflow ignore les champs fulfillmentText
, fulfillmentMessages
et payload
.
De plus, le champ followupEventInput.languageCode
est obligatoire.
mais Dialogflow l'ignore,
car la langue est déjà 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 pour lequel il a été défini.
Le flux suivant décrit les différentes étapes :
- L'utilisateur final saisit ou prononce une expression.
- Dialogflow met en correspondance l'expression d'utilisateur final avec l'Intent-1, qui est configuré pour le fulfillment.
- Dialogflow envoie une requête webhook à votre serveur.
- Votre serveur renvoie une réponse webhook qui inclut l'événement de suivi.
- 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.
- 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.