Benutzerdefinierte Ereignisse sind von Ihnen definierte Ereignisse. Sie werden verwendet, um Dinge zu verarbeiten, die außerhalb der Unterhaltung mit dem Endnutzer passieren. Beispielsweise, wenn der Endnutzer auf eine Schaltfläche geklickt hat, eine bestimmte Zeit verstrichen ist oder sich das verfügbare Inventar während der Unterhaltung geändert hat.
Sie können diese Ereignisse entweder mit der Auftragsausführung oder mit der API aufrufen.
Ereignisse mit der API aufrufen
Die Anfrage für einen detectIntent
-Aufruf des Sessions
-Typs enthält das Feld queryInput.event
, das verwendet wird, um Ereignisse aufzurufen.
Der Typ dieses Felds ist ein EventInput
. Es enthält Felder für den Ereignisnamen, optionale Parameter und den Sprachcode.
Wenn Sie ein Ereignis für einen Aufruf zur Intent-Erkennung bereitstellen, geben Sie keine anderen Daten wie einen Endnutzerausdruck an. Der einzige Zweck des Aufrufs besteht darin, ein Ereignis aufzurufen und einen Intent auszulösen.
Ereignisse mit Auftragsausführung aufrufen
Sie können Ereignisse über die Auftragsausführung aufrufen, indem Sie das Feld followupEventInput
der WebhookResponse
-Antwort festlegen.
Optional können Sie das Feld followupEventInput.parameters
festlegen, um Parameter für den Intent anzugeben.
Beispiel:
{
"followupEventInput": {
"name": "event-name",
"parameters": {
"parameter-name-1": "parameter-value-1",
"parameter-name-2": "parameter-value-2"
},
"languageCode": "en-US"
}
}
Wenn der Parameter followupEventInput
für eine WebhookResponse
-Antwort festgelegt wurde, werden die Felder fulfillmentText
, fulfillmentMessages
und payload
von Dialogflow ignoriert.
Außerdem ist das Feld followupEventInput.languageCode
ein Pflichtfeld, das von Dialogflow jedoch ignoriert wird, da die Sprache bereits in der ursprünglichen Anfrage zur Intent-Erkennung definiert wurde.
Wenn Dialogflow eine Webhook-Antwort mit einem Ereignis erhält, wird sofort der entsprechende Intent ausgelöst, in dem es definiert wurde.
Im Folgenden werden die entsprechenden Schritte dargestellt:
- Der Endnutzer gibt einen Ausdruck ein oder spricht ihn aus.
- Dialogflow ordnet den Endnutzerausdruck Intent-1 zu, der für die Auftragsausführung konfiguriert wurde.
- Dialogflow sendet eine Webhook-Anfrage an Ihren Server.
- Der Server sendet daraufhin eine Webhook-Antwort mit einem Folgeereignis.
- Anstatt dem Nutzer gemäß der Intent-1-Zuordnung zu antworten, löst Dialogflow Intent-2 aus, der für das Ereignis konfiguriert wurde.
- Dialogflow wird dann weiter so ausgeführt, als ob der Endnutzer die Zuordnung zu Intent-2 veranlasst hat. Es verarbeitet dabei die erforderlichen Parameter und die Auftragsausführung, wie sie durch die Konfiguration von Intent-2 festgelegt wurden.
Intent-Zuordnungen mit Webhook-Antwortereignissen verketten
Intent-Zuordnungen lassen sich mit Webhook-Antwortereignissen verketten. Im oben beschriebenen Ablauf kann auch Intent-2 für die Auftragsausführung konfiguriert werden. Wenn die Webhook-Antwort Ihres Servers dann ein weiteres Ereignis bereitstellt, ordnet Dialogflow den für das Ereignis konfigurierten Intent-3 zu, ohne dem Endnutzer gemäß Intent-2 zu antworten.
Dialogflow übergibt erst am Ende der Kette eine Antwort an den Endnutzer. Wenn Intents auf diese Weise verkettet werden, muss jede Webhook-Antwort innerhalb des festgelegten Zeitlimits gesendet werden.