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 umschalten. 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-Chat
  • voice_telephony: Telefon
  • text_messaging: SMS
  • slack: Slack
  • facebook: Facebook Messenger
  • whatsapp: 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.