Auftragsausführungen

Damit der Agent an der Unterhaltung teilnehmen kann, muss der Agent auf den Endnutzer mit einer Antwort auf eine Frage, einer Anfrage nach Informationen oder dem Beenden der Sitzung antworten. Ihr Agent muss sich möglicherweise auch mit Ihrem Dienst in Verbindung setzen, um dynamische Antworten zu generieren oder Aktionen für eine weitere Unterhaltungsrunde auszuführen. Auftragsausführung wird für all dies verwendet.

Eine Auftragsausführung kann folgende Elemente enthalten:

  • Statische Antwortnachrichten
  • Webhook-Aufrufe nach dynamischen Antworten und/oder Aktionen
  • Parametervoreinstellungen zum Festlegen oder Überschreiben von Parameterwerten

Während der Unterhaltungsrunde eines Agents ist es möglich (und manchmal gewünscht), mehrere Auftragsausführungen aufzurufen, von denen jede eine Antwort erzeugen kann. Dialogflow speichert diese Antworten in einer Antwortwarteschlange. Nach Abschluss der Unterhaltungsrunde des Agents sendet Dialogflow die sortierten Antworten an den Endnutzer.

Die ES-Auftragsausführung ist auf das Verbinden eines Webhook-Dienstes beschränkt. Der Bereich der Auftragsausführung wurde für CX erweitert und deckt nun alle Arten von Eingabeaufforderungen und Antworten ab.

Anwendungsfälle für Auftragsausführungen

Die Auftragsausführung wird überall dort verwendet, wo Antwortnachrichten benötigt werden:

Für jeden dieser Anwendungsfälle wird in der Konsole das Bearbeitungsfenster für die Auftragsausführung geöffnet.

Screenshot: Auftragsausführung

Statische Antwortnachrichten (Dialogoptionen)

Statische Antwortnachrichten sind Agent-Antworten, die Sie während der Entwicklung definieren. Sie definieren sie beim Erstellen der Auftragsausführung. Während der Laufzeit werden diese Antworten der Antwortwarteschlange hinzugefügt.

Es gibt mehrere Antwortnachrichtentypen, die in Unterabschnitten weiter unten beschrieben werden. Bei Verwendung der Konsole enthalten Auftragsausführungsfelder eine erste Textantwort-Karte. Sie können aber auch auf Dialogfeld hinzufügen klicken, um weitere Karten für andere Antwortnachrichtentypen hinzuzufügen.

Text

SMS-Antwortnachrichten senden Text an den Endnutzer. Wenn Ihre API-Aufrufe zur Intent-Erkennung oder Integration die Sprachsynthese verwenden, wird dieser Text zur Generierung der Audioinhalte genutzt. In diesem Fall kann für den bereitgestellten Text optional die Speech Synthesis Markup Language (SSML) verwendet werden.

Sie können mehrere Textantwortkarten und mehrere Textantworten auf jeder Karte definieren. Wenn Sie mehrere Karten definieren, werden diese zur Laufzeit zu einer einzelnen Antwort verkettet. Wenn Sie mehrere Antworten innerhalb einer Karte definieren, wird eine der Nachrichten auf der Karte nach dem Zufallsprinzip ausgewählt.

Solche Textnachrichten können Parameterreferenzen und Inline-Systemfunktionen enthalten.

Benutzerdefinierte Nutzlast

Einige Integrationen unterstützen benutzerdefinierte Nutzlastantworten, um komplexe Antworten zu verarbeiten. Diese benutzerdefinierten Nutzlasten werden in einem JSON-Format bereitgestellt, das in der Integrationsdokumentation definiert ist. Ein Beispiel dafür ist das benutzerdefinierte Dialogflow Messenger-Nutzlastformat.

Sie können Parameterreferenzen in den JSON-Code Ihrer benutzerdefinierten Nutzlast aufnehmen. Sie sollten als JSON-Stringwerte behandelt werden. Umschließen Sie sie daher mit doppelten Anführungszeichen. Beispiel:

{
  "someField": "$session.params.date"
}

Sie können auch eine benutzerdefinierte Nutzlast an selbst entwickelte Integrationen senden. Diese wird nicht von Dialogflow verarbeitet, sondern muss in Ihrer eigenen Geschäftslogik behandelt werden.

Weitere Informationen finden Sie auch im Abschnitt Benutzerdefinierte Nutzlastvorlagen unten.

Übergabe an Kundenservicemitarbeiter

Diese Antwort signalisiert dem Aufrufer der API zur Intent-Erkennung, dass die Unterhaltung an einen menschlichen Mitarbeiter übergeben werden soll. Dialogflow verwendet dieses Signal nur, um zu übergebende Unterhaltungen zu Messzwecken zu identifizieren. Der Sitzungsstatus wird nicht geändert. Ihr System oder Ihre Integration kann dieses Signal verwenden, um die erforderlichen Aktionen zur Übergabe der Unterhaltung auszuführen. Dialogflow zwingt diesen Daten keine Struktur auf, sodass Sie jede für Ihr System geeignete Struktur wählen können.

Metadaten für erfolgreiche Unterhaltungen

Diese Antwort signalisiert dem Aufrufer der API zur Intent-Erkennung, dass die Unterhaltung mit dem Dialogflow-Agent erfolgreich war. Dialogflow verwendet dieses Signal nur, um Unterhaltungen zu identifizieren, die zu Messzwecken erfolgreich waren. Der Sitzungsstatus wird nicht geändert. Ihr System oder Ihre Integration kann dieses Signal verwenden, um die erforderlichen Aktionen auszuführen. Dialogflow zwingt diesen Daten keine Struktur auf, sodass Sie jede für Ihr System geeignete Struktur wählen können.

Zuvor aufgenommenes Audio abspielen

Diese Antwort spielt eine Audiodatei für Integrationen ab, die dieses Feature unterstützen.

Die Anforderungen an das Audiodateiformat können je nach Integrationen variieren. Weitere Informationen finden Sie beispielsweise in den Anforderungen für Dialogflow CX Phone Gateway.

Bei Integrationen von Partnertelefonen muss der Partner auf die URL der Audiodatei zugreifen können. Eine öffentlich verfügbare URL, z. B. eine öffentliche Datei in Cloud Storage, ist immer für den Partner zugänglich. Der Partner kann auch eingeschränkten Zugriff auf Audiodateien gewähren. Weitere Informationen finden Sie in der Partnerdokumentation.

Audiotext ausgeben

Diese Antwort ähnelt der Text-Antwort, gilt jedoch nur für die Sprachsynthese. Wenn der Agent sowohl Text- als auch Sprachsitzungen verarbeiten kann, können Sie mithilfe von eindeutigen Text- und Audiotextausgabe-Antworten eine andere Nutzererfahrung für Text bzw. Sprache generieren. Wenn eine Audiotextausgabe für eine Sprachsitzung bereitgestellt wird, werden die Antworten für Nur-Text ignoriert.

Wenn Ihr Agent sowohl Text- als auch Sprachsitzungen verarbeitet und Sie dieselben Antwortnachrichten wünschen, verwenden Sie nur Textantworten für Text- und Sprachsitzungen.

Der Ausgabe-Audiotext wird ähnlich wie Textantworten verkettet. Wenn die Ausgabe-Audiotextantworten eine Mischung aus Text und SSML sind, wird das verkettete Ergebnis als SSML behandelt. Der Agent-Designer sollte idealerweise konsistent Text oder SSML verwenden.

Bedingte Antwort

Dieser Antworttyp wird für bedingte Antworten verwendet. Das allgemeine Format ist:

if [condition]
  [response]
elif [condition]
  [response]
elif [condition]
  [response]
else
  [response]
endif

Dabei gilt:

  • [condition] das gleiche Format ist, das auch für Routenbedingungen genutzt wird.
  • [response] ist eine Textantwort
  • Die Sperren elif und else sind optional.

Beispiel:

if $session.params.user-age >= 21
  Ok, you may enter.
else
  Sorry, you cannot enter.
endif

Sowohl [condition] als auch [response] können Inline-Systemfunktionen verwenden, um dynamische Werte während Unterhaltungen zu generieren. Weitere Informationen finden Sie in den Referenzen zu Systemfunktionen und Routenbedingungen. [condition] wird anhand des Sitzungsstatus zu Beginn der Auftragsausführung aufgelöst. Wenn das [response] vom Sitzungsstatus abhängt, wird es anhand des aktualisierten Sitzungsstatus am Ende der Auftragsausführung aufgelöst.

Bei mehrsprachigen Agents ist [condition] für alle Sprachen üblich, während [response] sprachspezifisch ist. Wenn Sie [condition] für eine Sprache in der Konsole ändern, wird dieser Teil in allen Sprachen des Agents aktualisiert. Da es zu einer neuen Bedingung wird, wird [response] für alle Sprachen gelöscht, außer der Sprache, die Sie beim Aktualisieren von [condition] ausgewählt haben.

Telefonieweiterleitungsanruf

Für einige Telefonieintegrationen können Sie eine US-amerikanische Telefonnummer für die Anrufweiterleitung angeben. Zur Laufzeit, wenn der virtuelle Dialogflow-Agent eine Auftragsausführung mit Anrufweiterleitung aufruft, wird der Aufruf an die angegebene Anzahl weitergeleitet und die Verarbeitung des virtuellen Kundenservicemitarbeiters gesperrt.

Kanalspezifische Antwortnachrichten

Beim Definieren der Auftragsausführung können Sie kanalspezifische Antwortnachrichten erstellen, um gezielte Antworten für Textchat, Sprache, SMS, bestimmte Integrationen zu erstellen, die Kanäle unterstützen usw. Alle Antwortnachrichten, die nicht kanalspezifisch sind, werden als Standardantwortnachrichten bezeichnet.

Während der Laufzeit wählt Dialogflow entweder die Standardantwortnachricht oder eine kanalspezifische Antwortnachricht aus, wenn in einer Anfrage zur Intent-Erkennung ein Kanal angegeben wird. Es hat sich bewährt, Standardantwortnachrichten zu definieren, auch wenn Sie kanalspezifische Antwortnachrichten verwenden. Die Standardantwortnachrichten können als Fallback dienen, wenn Ihr System keinen gültigen Kanal bereitstellt.

Ein Channelname ist ein benutzerdefiniertes Feld, für das Sie einen beliebigen Text festlegen können. Wenn Sie die Dialogflow API direkt für Laufzeitaufrufe verwenden, können Sie einen beliebigen Kanalnamen verwenden. Wenn du eine vorhandene Integration verwendest, musst du die Kanalnamen verwenden, die von der Integration erkannt werden.

Kanalspezifische Antwortnachrichten bei der Entwicklung festlegen

So stellen Sie bei Verwendung der Console kanalspezifische Antwortnachrichten für die Auftragsausführung bereit:

  • Klicken Sie auf Kanal hinzufügen, nachdem Sie Standardantwortnachrichten hinzugefügt haben. Über die Benutzeroberfläche kannst du kanalspezifische Antwortnachrichten hinzufügen. Klicken Sie noch einmal auf Kanal hinzufügen, um einen anderen Kanal hinzuzufügen.

So stellen Sie bei Verwendung der API kanalspezifische Antwortnachrichten für die Auftragsausführung bereit:

  • Legen Sie im Feld Fulfillment.messages[i].channel für jede Antwortnachricht den gewünschten Kanal fest. Wenn dieses Feld nicht festgelegt ist, ist die Antwort eine Standardantwortnachricht.

Kanalspezifische Antwortnachrichten zur Laufzeit nutzen

Um eine kanalspezifische Antwortnachricht zu erhalten, muss der Kanal in der Anfragenachricht zur Intent-Erkennung angegeben werden. Siehe Feld queryParams.channel in der Methode detectIntent des Typs Sessions.

Wählen Sie ein Protokoll und eine Version für die Sitzungsreferenz aus:

Protokoll V3 V3beta1
REST Sitzungsressource Sitzungsressource
RPC Sitzungsoberfläche Sitzungsoberfläche
C++ SessionsClient Nicht verfügbar
C# SessionsClient Nicht verfügbar
Einfach loslegen (Go) SessionsClient Nicht verfügbar
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Nicht verfügbar Nicht verfügbar
Python SessionsClient SessionsClient
Ruby Nicht verfügbar Nicht verfügbar

Wenn in einer Anfrage kein Kanal definiert ist oder in der Auftragsausführung kein übereinstimmender Kanal gefunden wird, wird die Standardantwortnachricht von Dialogflow zurückgegeben.

Benutzerdefinierte Nutzlastvorlagen

Wenn Sie häufig benutzerdefinierte Nutzlasten verwenden, sollten Sie benutzerdefinierte Nutzlastvorlagen verwenden. Benutzerdefinierte Nutzlasten sind manchmal groß und komplex, sodass die Verwendung von Vorlagen die Erstellung des Agents vereinfachen kann.

Sie können diese Vorlagen in Ihren Agent-Einstellungen bereitstellen. Dadurch stehen sie Ihnen zur Auswahl, wenn Sie die Auftragsausführung für den Agent erstellen.

Die JSON-Nutzlast für die Schaltflächen „Ja“ und „Nein“ kann beispielsweise als benutzerdefinierte Nutzlastvorlagen definiert werden. Wenn Sie eine Auftragsausführung erstellen, für die diese Schaltflächen erforderlich sind, müssen Sie beim Erstellen der Auftragsausführung nur die Vorlage auswählen.

Wenn Sie eine Vorlage für eine benutzerdefinierte Nutzlast für die Auftragsausführung auswählen, wird der Inhalt der Vorlage in die Nutzlast eingefügt. Sie können die Nutzlast dann nach Bedarf bearbeiten.

Wenn Sie eine Vorlage ändern, wird die Änderung nicht automatisch für alle Auftragsausführungsnutzlasten übernommen, auf die verwiesen wird.

Informationen zum Erstellen einer benutzerdefinierten Nutzlastvorlage finden Sie in den allgemeinen Einstellungen für den Agent.

Zum Auswählen einer benutzerdefinierten Nutzlastvorlage beim Erstellen der Auftragsausführung klicken Sie auf Vorlage auswählen, wenn Sie eine benutzerdefinierte Nutzlast für die Auftragsausführung erstellen.

Webhook-Aufrufe

Wenn eine Auftragsausführung mit Webhook aufgerufen wird, sendet der Agent eine Anfrage an Ihren Webhook. Ihr Webhook kann alle erforderlichen Aktionen innerhalb Ihres Dienstes ausführen, eine dynamische Antwortnachricht bereitstellen, Parameterwerte überschreiben und die aktuelle Seite ändern.

Im Folgenden werden die Webhook-Einstellungen für die Auftragsausführung beschrieben:

Begriff Definition
Webhook aktivieren Dadurch wird der Webhook für die Auftragsausführung aktiviert.
Webhook Wählen Sie die Webhook-Ressource aus.
Tag Das hier angegebene Text-Tag wird in das Feld WebhookRequest.fulfillmentInfo.tag der Webhook-Anfrage eingefügt, die an Ihren Webhook-Dienst gesendet wird. Damit lässt sich das Webhook-Verhalten auf eine Auftragsausführungs-spezifische Weise steuern.

Parametervoreinstellungen

Mit einer Auftragsausführung können Sie Voreinstellungen bereitstellen, die aktuelle Parameterwerte festlegen oder überschreiben. Diese Voreinstellungen werden angewendet, bevor statische Antwortnachrichten verarbeitet werden oder ein Webhook aufgerufen wird.

Sie können auch Systemfunktionen verwenden, um den Parameter auf einen dynamisch generierten Wert festzulegen.

Beispiele:

  • Parameter now auf die aktuelle Zeit festlegen:

    Parameter Wert
    jetzt $sys.func.NOW()
  • Vorhandenen Parameter counter um 1 erhöhen:

    Parameter Wert
    Zähler $sys.func.ADD($session.params.counter, 1)
  • Legen Sie den Parameter new-cost auf den Wert des Parameters other-cost fest und behalten Sie den vollständigen zusammengesetzten Objektwert bei:

    Parameter Wert
    neue Kosten $sys.func.IDENTITY($session.params.other-cost)

Erweiterte Spracheinstellungen

Diese Spracheinstellungen können optional dieselben Spracheinstellungen von Seiten, Ablaufspracheinstellungen und Spracheinstellungen des Agents überschreiben.

Antwortwarteschlange

Während der Unterhaltungsrunde eines Agents ist es möglich (und manchmal gewünscht), mehrere Auftragsausführungen aufzurufen, von denen jede eine Antwort erzeugen kann. Dialogflow speichert diese Antworten in einer Antwortwarteschlange.

Unvollständige Beantwortung für Streaming API

Standardmäßig sendet Dialogflow die sortierten Antworten nur dann an den Endnutzer, wenn die Unterhaltungsrunde des Agents beendet ist. Sie können bei der Auftragsausführung auch die Option Teilantwort zurückgeben aktivieren, um mithilfe der Streaming-APIs derzeit in der Warteschlange befindliche Antworten als Teilantwort zurückzugeben. Weitere Informationen finden Sie unter Lebenszyklus einer Seite.

Wenn Ihr Webhook beispielsweise lange Zeit ausgeführt wird, können Sie der Auftragsausführung eine statische Antwort hinzufügen und die unvollständige Beantwortung aktivieren. Dadurch wird Dialogflow die Antwortwarteschlange geleert und alle Nachrichten als unvollständige Beantwortung gesendet, bevor der Webhook aufgerufen wird.

Eine Teilantwort wird derzeit in folgenden Fällen nicht unterstützt, sie wird aber später unterstützt:

Um diese Funktion im Simulator zu testen, musst du die Teilantwort aktivieren.

Screenshot: unvollständige Beantwortung für Simulator

Beachten Sie im folgenden Beispiel, dass der Webhook 5 Sekunden dauert. Ein Teilantwort wird nicht aktiviert. Die Unterhaltungsrunde des Dialogflow-Agents wird erst beendet, wenn der Webhook abgeschlossen ist. Während dieser 5 Sekunden werden die Antworten während des Wartens auf den Webhook in die Warteschlange gestellt und erst nach Abschluss der Runde an den Endnutzer zurückgegeben. Dies führt zu einer schlechten Nutzererfahrung.

Ohne unvollständige Beantwortung

Wenn Sie die Teilantwort bei der ersten Auftragsausführung aktivieren, gibt Dialogflow die erste Auftragsausführungsnachricht schnell zurück und ruft den Webhook auf. Nachdem der Webhook abgeschlossen ist, gibt Dialogflow die endgültige Antwort zurück. In diesem Szenario wird die Endnutzererfahrung verbessert, da mitgeteilt wird, dass eine kurze Wartezeit zu erwarten ist. Außerdem wird der Webhook-Aufruf gleichzeitig mit einer Antwort ausgeführt, die an den Endnutzer gesendet wird.

Mit unvollständiger Beantwortung.

Speech Synthesis Markup Language (SSML)

Sie können die Speech Synthesis Markup Language (SSML) in Text- oder Ausgabefeldern für die Textauftragsausführung von Audio verwenden. So kannst du deine Audioantwort anpassen, indem du Details zu Pausen und die Audioformatierung für Akronyme, Datumsangaben, Uhrzeiten, Abkürzungen oder zu zensierten Text angibst.

Weitere Informationen zur Syntax finden Sie in der SSML-Dokumentation zur Sprachausgabe.