Definieren von Antworten mit dem JSON-Editor
In manchen Situationen müssen Sie die Antworten Ihres Assistenten mit Hilfe des JSON-Editors definieren. Weitere Informationen finden Sie unter Assistentenantworten hinzufügen.
Um eine Antwort mit dem JSON-Editor zu bearbeiten, klicken Sie auf das Symbol Zum JSON-Editor umschalten im Feld Assistent sagt . Der JSON-Editor zeigt, wie die Antwort
im Hintergrund definiert und an den Kanal gesendet wird.
Generisches JSON-Format
Wenn Sie den JSON-Editor für eine neue, leere Antwort öffnen, wird die folgende Basisstruktur angezeigt:
{
"generic": []
}
Die Eigenschaft generic definiert ein Array von Antworten, die an den Kanal gesendet werden, wenn der Schritt ausgeführt wird. Der Begriff " generisch" bezieht sich auf die Tatsache, dass diese Antworten durch
die Verwendung eines generischen JSON-Formats definiert werden, das nicht für einen bestimmten Kanal spezifisch ist. Dieses Format ist für verschiedene Antworttypen geeignet, die von mehreren Integrationen unterstützt werden. Außerdem kann
es von einer angepassten Clientanwendung implementiert werden, die die REST-API verwendet.
Das Array generic für einen Schritt kann mehrere Antworten enthalten und jede Antwort weist einen Antworttyp auf. Ein einzelner Schritt, der eine einfache Textantwort sendet, enthält normalerweise nur eine einzige Antwort
mit dem Antworttyp text. Es stehen jedoch viele andere Antworttypen zur Verfügung, die Multimedia- und interaktive Inhalte sowie die Kontrolle über das Verhalten einiger Kanalintegrationen unterstützen.
Obwohl das Format generic an jede Kanalintegration gesendet werden kann, unterstützen nicht alle Kanäle alle Antworttypen, so dass eine bestimmte Antwort möglicherweise ignoriert oder von einigen Kanälen anders behandelt wird. Weitere
Informationen finden Sie in der Referenz der Antworttypen.
Zur Laufzeit kann die Ausgabe mit mehreren Antworten in mehrere Nachrichten-Payloads aufgeteilt werden. Die Kanalintegration sendet diese Nachrichten der Reihe nach an den Kanal, aber es liegt in der Verantwortung des Kanals, diese Nachrichten an den Benutzer zu liefern; dies kann durch Netzwerk- oder Serverprobleme beeinträchtigt werden.
Antworten hinzufügen
Fügen Sie zum Angeben einer Antwort im JSON-Editor die entsprechenden JSON-Objekte in das Feld generic der Schrittantwort ein. Das folgende Beispiel zeigt eine Ausgabe mit zwei Antworten unterschiedlichen Typs (Text und ein Bild):
{
"generic":[
{
"response_type": "text",
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "This is a text response."
}
]
}
}
]
},
{
"response_type": "image",
"source": "https://example.com/image.jpg",
"title": "Example image",
"description": "This is an image response."
}
]
}
Weitere Informationen finden Sie unter Antworttypen.
Zielgruppenspezifische Integrationen
Wenn Sie Ihren Assistenten in mehreren Kanälen bereitstellen möchten, können Sie je nach Funktionalität jedes Kanals unterschiedliche Antworten an verschiedene Integrationen senden. Die Eigenschaft channels des generischen Antwortobjekts
bietet eine Möglichkeit, dies zu tun.
Dieser Mechanismus ist nützlich, wenn sich Ihr Konversationsablauf nicht abhängig von der verwendeten Integration ändert und wenn Sie nicht im Voraus wissen können, an welche Integration die Antwort zur Laufzeit gesendet wird. Mit channels können Sie einen einzigen Schritt definieren, der alle Integrationen unterstützt, während Sie die Ausgabe für jeden Kanal anpassen. Sie können beispielsweise die Textformatierung anpassen oder je nach Unterstützung des Kanals sogar unterschiedliche
Antworttypen senden.
Die Verwendung von channels ist zusammen mit dem Antworttyp channel_transfer nützlich. Da die Nachrichtenausgabe sowohl von dem Kanal, der die transfer initiiert, als auch von dem Zielkanal verarbeitet
wird, können Sie mit channels Antworten definieren, die von dem einen oder dem anderen Kanal verarbeitet werden.
Um die Integrationen anzugeben, für die eine Antwort beabsichtigt ist, schließen Sie das optionale Array channels als Teil des Antwortobjekts ein. Alle Antworttypen unterstützen das Array channels. Dieses Array enthält
ein oder mehrere Objekte mit der folgenden Syntax:
{
"channel": "<channel_name>"
}
Der Wert von <channel_name> kann eine der folgenden Zeichenfolgen sein:
chat: Web-Chatvoice_telephony: Telefontext_messaging: SMSslack: Slackfacebook: Facebook Messengerwhatsapp: WhatsApp
Das folgende Beispiel zeigt eine Schrittausgabe mit zwei Antworten: eine für die Web-Chat-Integration und eine für die Slack- und Facebook-Integration.
{
"generic": [
{
"response_type": "text",
"channels": [
{
"channel": "chat"
}
],
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "This output is intended for the <strong>web chat</strong>."
}
]
}
}
]
},
{
"response_type": "text",
"channels": [
{
"channel": "slack"
},
{
"channel": "facebook"
}
],
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "This output is intended for either Slack or Facebook."
}
]
}
}
]
}
]
}
Wenn das Array channels vorhanden ist, muss es mindestens ein Kanalobjekt enthalten. Jede nicht aufgelistete Integration ignoriert die Antwort. Wenn das Array channels nicht vorhanden ist, verarbeiten alle Integrationen
die Antwort.
Antworttypen
Sie können verschiedene Antworttypen mit JSON konfigurieren. Weitere Informationen zu Antworttypen und unterstützten Integrationen für JSON-Antworttypen finden Sie unter Antworttypreferenz.