Mit der benutzerdefinierten Nutzlast für Dialogflow CX können Sie die Nutzung Ihres virtuellen Kundenservicemitarbeiters über einfache textbasierte Chats und Interaktionen hinaus verbessern. Wenn Sie benutzerdefinierte Nutzlasten in Dialogflow CX verwenden, können Sie Ihren virtuellen Kundenservicemitarbeiter so konfigurieren, dass er benutzerdefinierte Antworten und Zitate rendert.
Benutzerdefinierte Antwortnachrichtentypen
Mit Benutzerdefinierte Antworten können Sie die folgenden Nachrichtentypen rendern:
Text
Inline-Schaltflächen
Fixierte Schaltflächen
Bilder
Videos
Dokumente
Komplexe Ansichten (Kombination aus einem oder mehreren Nachrichtentypen)
Mit Benutzerdefinierte Aktionen können virtuelle Kundenservicemitarbeiter die folgenden Aktionen ausführen:
Eskalationen an Kundenservicemitarbeiter
Geplante Weiterleitungen an Kundenservicemitarbeiter
Supportsitzung beenden
Nutzlast der Contact Center AI Platform (CCAI Platform)
Kann in Dialogflow CX als benutzerdefinierte Nutzlast verwendet werden. Das folgende Beispiel zeigt das Format für Antworten im Web-SDK mit Dialogflow CX.
{ "ujet": { "type": "text|inline_button|sticky_button|image|video|document|complex|action", "action": "escalation|end", "title": "message displayed on the top of the message", "escalation_reason": "by_consumer|by_virtual_agent", "session_variable": { "capture_target": "payload|end_user_response", "capture_key": "key", "payload": { } }, "messages": [ "Hello", "How can I help you?" ], "buttons": [ { "title": "Button 1", "action": "quick_reply" }, { "title": "Button 2", "action": "quick_reply" } ], "images": [ { "url": "https://image.url", "text": "an alternate text for an image for when failed to load an image" }, { "url": "https://image.url", "text": "an alternate text for an image" } ], "videos": [ { "url": "https://video.url", "text": "an alternate text for a video for when failed to load a video" }, { "url": "https://video.url", "text": "an alternate text for a video" } ], "documents": [ { "url": "https://document.url", "text": "an alternate text for a document for when failed to load a document" }, { "url": "https://document.url", "text": "an alternate text for a document" } ], "components": [ { "type": "text", "messages": [ "We need the information for helping you.", "Could you please choose the following options?" ] }, { "type": "inline_button", "buttons": [ { "title": "Button 1", "action": "quick_reply" }, { "title": "Button 2", "action": "quick_reply" } ] }, { "type": "image", "images": [ { "url": "https://image.url", "text": "an alternate text for an image for when failed to load an image" }, { "url": "https://image.url", "text": "an alternate text for an image" } ] } ] } }
Chatnachrichtenformat für benutzerdefinierte Nutzlast
Wird mit dem CCAI Platform SDK verwendet, um eine geeignete Benutzeroberfläche anzuzeigen. Es ist dasselbe wie das benutzerdefinierte Nutzlastformat von Dialogflow CX, hat aber kein „ujet“-Feld im Stammverzeichnis.
Weitere Informationen finden Sie in den folgenden Beispielen.
Beispiele
Die folgenden Abschnitte enthalten Beispielnutzlasten, die in Dialogflow CX verwendet werden können.
Text
{
"ujet": {
"type": "text",
"messages": [
"Hello",
"How can I help you?"
]
}
}
Eskalation an dieselbe Warteschlange
Durch virtuellen Kundenservicemitarbeiter:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent"
}
}
Durch Endnutzer:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer"
}
}
Der Wert escalation_reason wird in den Dashboards gemeldet.
Eskalation an die Zielwarteschlange
Durch virtuellen Kundenservicemitarbeiter:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent",
"menu_id": 100,
"language": "ko"
}
}
Durch Endnutzer:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer",
"menu_id": 100,
"language": "ko"
}
}
Der Wert escalation_reason wird in den Dashboards gemeldet.
Unterhaltung beenden
{
"ujet": {
"type": "action",
"action": "end"
}
}
Inline-Schaltfläche
{
"ujet": {
"type": "inline_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Beispiel

Fixierte Schaltfläche
{
"ujet": {
"type": "sticky_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Beispiel

Bildansicht
{
"ujet": {
"type": "image",
"title": "Please see the following images",
"images": [
{
"url": "https://image1.url",
"text": "an alternate text for an image for when failed to load an image"
},
{
"url": "https://image2.url",
"text": "an alternate text for an image"
}
]
}
}
Videoaufruf
{
"ujet": {
"type": "video",
"title": "Please see the following videos",
"videos": [
{
"url": "https://video1.url",
"text": "an alternate text for a video for when failed to load a video"
},
{
"url": "https://video2.url",
"text": "an alternate text for a video"
}
]
}
}
Dokumentansicht
{
"ujet": {
"type": "document",
"title": "Please see the following document",
"documents": [
{
"url": "https://document1.url",
"text": "an alternate text for a document for when failed to load a document"
},
{
"url": "https://document2.url",
"text": "an alternate text for a document"
}
]
}
}
Komplexe Ansicht
{
"ujet": {
"type": "complex",
"type": "Welcome to CCAI Platform world!",
"components": [
{
"type": "text",
"messages": [
"We need the information for helping you.",
"Could you please choose the following options?"
]
},
{
"type": "inline_button",
"buttons": [
{
"title": "Button 1",
"action": "quick_reply"
},
{
"title": "Button 2",
"action": "quick_reply"
}
]
},
{
"type": "image",
"images": [
{
"url": "https://image1.url",
"text": "an alternate text for an image for when failed to load an image"
},
{
"url": "https://image2.url",
"text": "an alternate text for an image"
}
]
}
]
}
}
Benutzerdefinierte Nutzlast in Dialogflow konfigurieren
Weitere Informationen zum Konfigurieren Ihrer benutzerdefinierten Nutzlast mit Dialogflow finden Sie in den Ressourcen Benutzerdefinierte Nutzlast antworten (Dialogflow ES) oder Benutzerdefinierte Nutzlast (Dialogflow CX).
Weitere Informationen finden Sie unter Benutzerdefinierte Sitzungsvariablen für die Verarbeitung benutzerdefinierter Nutzlasten.
Weiterleitung durch virtuellen Kundenservicemitarbeiter an eine Telefonnummer oder einen SIP-Endpunkt
Sie können benutzerdefinierte Nutzlasten von Dialogflow CX verwenden, um Anrufe von einem virtuellen Kundenservicemitarbeiter an die von Ihnen angegebene Telefonnummer oder den SIP-Endpunkt weiterzuleiten. Wenn die Verbindung erfolgreich ist, wird der virtuelle Kundenservicemitarbeiter aus dem Anruf entfernt und der Anruf wird fortgesetzt. Wenn die Verbindung fehlschlägt, wird eine Nachricht über den Fehler bei der Weiterleitung abgespielt und der Anruf wird mit dem virtuellen Kundenservicemitarbeiter fortgesetzt.
Weiterleitungen durch virtuelle Kundenservicemitarbeiter funktionieren sowohl für interne als auch für externe Anrufe. Weiterleitungen durch virtuelle Kundenservicemitarbeiter werden in Berichten als Planned Transfers erfasst.
Anruf an eine Telefonnummer weiterleiten
Wenn Sie einen Anruf von einem virtuellen Kundenservicemitarbeiter an eine Telefonnummer weiterleiten möchten, verwenden Sie eine Dialogflow CX-Nutzlast, die dem folgenden Codebeispiel ähnelt:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "phone",
"phone_number": "+16509424879"
}
}
Anruf an einen SIP-Endpunkt weiterleiten
Sie können einen Anruf von einem virtuellen Kundenservicemitarbeiter an einen SIP-Endpunkt mit einem optionalen Zeitlimit für das Klingeln weiterleiten.
Zeitlimit für das Klingeln
Wenn Sie ein Zeitlimit für das Klingeln konfigurieren möchten, fügen Sie das Feld sip_ring_timeout hinzu. So haben Anrufe an interne Nebenstellen oder Unified Communications-Ziele (UC) genügend Zeit, um beantwortet zu werden, bevor die Verbindung getrennt wird. Diese Funktion ist nur für Twilio-Nutzer verfügbar.
Twilio fügt dem von Ihnen konfigurierten Zeitlimit für das Klingeln etwa fünf Sekunden hinzu.
Beispiel
Wenn Sie einen Anruf von einem virtuellen Kundenservicemitarbeiter an einen SIP-Endpunkt weiterleiten möchten, verwenden Sie eine Dialogflow-Nutzlast, die dem folgenden Codebeispiel ähnelt:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip",
"sip_uri": "SIP_ENDPOINT",
"sip_ring_timeout": SIP_RINGING_TIMEOUT
}
}
Ersetzen Sie Folgendes:
SIP_ENDPOINT: Der SIP-Endpunkt, an den der Anruf weitergeleitet werden soll. Er sollte so aussehen:sip:1-999-123-4567@voip-provider.example.net.SIP_RINGING_TIMEOUT: Optional: Die Anzahl der Sekunden, die der Anruf klingelt, bevor das Zeitlimit überschritten wird. Gültige Werte:10bis600(einschließlich). Wenn Sie einen Wert außerhalb dieses Bereichs festlegen, verwendet das System das Standardzeitlimit für das Klingeln von 30 Sekunden. Standard: 30 Sekunden.
Anruf mit der SIP REFER-Methode an einen SIP-Endpunkt weiterleiten
Wenn Sie einen Anruf von einem virtuellen Kundenservicemitarbeiter mit der SIP REFER-Methode an einen SIP-Endpunkt weiterleiten möchten, verwenden Sie eine Dialogflow CX-Nutzlast, die dem folgenden Codebeispiel ähnelt. Mit der SIP REFER-Methode können Sie mithilfe der Header-Attribute nützliche Informationen weitergeben.
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip"
"sip_uri": "sip:1-999-123-4567@voip-provider.example.net"
"sip_refer": true
"sip_parameters": {
"x-header": "value",
"x-header": "value"
}
}
}
Benutzerdefinierte Sitzungsvariablen für die Verarbeitung benutzerdefinierter Nutzlasten
Verwenden Sie benutzerdefinierte Sitzungsvariablen, um Werte aus der Intent-Antwort und der Endnutzerantwort zu erfassen, alle zu sammeln und als Kommentar in das CRM hochzuladen. Weitere Informationen finden Sie unter Dialogflow-Nutzlast für benutzerdefinierte Sitzung variablen.
Aus der Endnutzerantwort erfassen
Flow
Die CCAI Platform fordert die Antwort von Dialogflow CX an.
Dialogflow CX kann über die Auftragsausführung einen Rückruf an den Server des Kunden auslösen.
Der Server des Kunden muss das Feld session_variable in der Antwort ausfüllen.
Dialogflow CX gibt die Antwort mit der benutzerdefinierten Nutzlast zurück, einschließlich des Felds
session_variablemit capture_target =end_user_response.Ein Endnutzer sendet eine Nachricht.
Die CCAI Platform behält die Endnutzernachricht bei, die im vorherigen Schritt gesendet wurde.
Die CCAI Platform postet alle Sitzungsvariablen, die in der Chatsitzung erfasst wurden, als Kommentar im CRM, wenn ein virtueller Kundenservicemitarbeiter einen Chat verlassen hat.
Benutzerdefiniertes Nutzlastformat
{
"ujet": {
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "key"
}
}
}
Die nächste Endnutzernachricht unmittelbar nachdem ein virtueller Kundenservicemitarbeiter eine benutzerdefinierte Nutzlast gesendet hat, wird als Sitzungsvariable mit dem Schlüssel „key“ erfasst.
Aus der Intent-Antwort erfassen
Flow
Die CCAI Platform fordert die Antwort von Dialogflow CX an.
Dialogflow CX kann über die Auftragsausführung einen Rückruf an den Server des Kunden auslösen.
Der Server des Kunden muss das Feld
session_variablein der Antwort ausfüllen.
Dialogflow CX gibt die Antwort mit der benutzerdefinierten Nutzlast zurück, einschließlich
session_variableFeld mitcapture_target = "payload".Der CCAI Platform-Server behält das
payload-Objekt in Schritt 2 bei.
Die CCAI Platform postet alle Sitzungsvariablen, die in der Chatsitzung erfasst wurden, als Kommentar im CRM, wenn ein virtueller Kundenservicemitarbeiter einen Chat verlassen hat.
Benutzerdefiniertes Nutzlastformat
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"capture_type": [
"comment",
"agent"
],
"payload": {
"status": "STATUS",
"order_id": "ORDER_ID",
"personal_id": "PERSONAL_ID"
},
"invisible_to_agent": ["INVISIBLE_TO_AGENT"],
"display_order_in_adapter": ["DISPLAY_ORDER_IN_ADAPTER"]
}
}
}
Ersetzen Sie Folgendes:
STATUS: Der Status der Bestellung.ORDER_ID: Die Bestell-ID.PERSONAL_ID: Eine Kennung des Endnutzers.INVISIBLE_TO_AGENT: Ein Array von Attributen, die im Agent-Adapter nicht sichtbar sein sollen. Wenn Sie hier beispielsweise den Wert"personal_id"angeben, wird das Attributpersonal_idnicht im Agent-Adapter angezeigt. Weitere Informationen finden Sie unter Sitzungsvariablen des virtuellen Kundenservicemitarbeiters anzeigen.DISPLAY_ORDER_IN_ADAPTER: Ein Array von Attributen, mit denen die Reihenfolge angegeben wird, in der Sitzungsvariablen im Agent-Adapter und in CRM-Einträgen angezeigt werden sollen. Weitere Informationen finden Sie unter Sitzungsvariablen des virtuellen Kundenservicemitarbeiters anzeigen.
Benutzerdefinierte Sitzungsvariable in CRM hochladen
Für jede Sitzungsvariable muss der Server alle Sitzungsvariablen intern erfassen und dann in das CRM hochladen, wenn ein virtueller Kundenservicemitarbeiter den Chat verlässt.
Beispiel für eine CRM-Nachricht
###########################
Chat ID: 1
Menu ID: 1
Chatbot Platform: Platform Name
Chatbot Workflow: Workflow Name
Virtual Agent: Virtual Agent Name
###########################
Intent: Intent Captured from End User Response
Captured At: 2020-06-25 14:54:19
Captured Variables
request: Cancel Order
###########################
Intent: Intent Captured from Payload
Captured At: 2020-06-25 14:58:23
Captured Variables
status: Cancelled
order_id: #12345
###########################
Beispielszenario
Im Folgenden finden Sie eine Beispielunterhaltung, in der die verschiedenen Schritte und die zwischen dem virtuellen Kundenservicemitarbeiter und dem Endnutzer ausgetauschten Nachrichten dargestellt sind.
Schritt 1
Chatnachricht vom virtuellen Kundenservicemitarbeiter
How can I help you?
(Button) Show my orders
(Button) Cancel an order
Intent-Antwort (benutzerdefinierte Nutzlast)
{
"ujet": {
"type": "inline_button",
"title": "How can I help you?",
"buttons": [
{
"title": "Show my orders",
"action": "quick_reply"
},
{
"title": "Cancel an order",
"action": "quick_reply"
}
]
}
}
Erfasste Sitzungsvariable
Keine
Schritt 2
Chatnachricht vom Endnutzer
Click "Cancel an order" button.
Erfasste Sitzungsvariable
Keine
Schritt 3
Chatnachricht vom virtuellen Kundenservicemitarbeiter
Can you provide the order id please
Intent-Antwort (benutzerdefinierte Nutzlast)
{
"ujet": {
"type": "text"
"messages": [
"Can you provide the order id please"
],
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "order_id";
}
}
}
Erfasste Sitzungsvariable
Keine
Schritt 4
Chatnachricht vom Endnutzer
Order id is #12345
Erfasste Sitzungsvariable
order_id: "Order ID is #12345"
Schritt 5
Chatnachricht vom virtuellen Kundenservicemitarbeiter
Order #12345 is cancelled.
Do you need anything else?
Intent-Antwort (benutzerdefinierte Nutzlast)
{
"ujet": {
"type": "text",
"messages": [
"Order #12345 is canceled.",
"Do you need anything else?"
],
"session_variable": {
"capture_target": "payload",
"capture_type": [
"agent",
"comment",
"event"
],
"payload": {
"order_id": "#12345",
"order_status": "cancelled"
}
}
}
}
Erfasste Sitzungsvariable
order_id: "#12345",
order_status: canceled
Schritt 6
Chatnachricht vom Endnutzer
I would like to speak with a human agent.
Schritt 7
Chatnachricht vom virtuellen Kundenservicemitarbeiter
Virtual Agent is left from the conversation.
{
"ujet": {
"type": "escalation",
"escalation_reason": "by_consumer"
}
}
Benutzerdefinierte Sitzungsvariable in CRM hochladen
Im vorherigen Szenario wird der folgende Kommentar im CRM Ticket gepostet:
---------------------------------
Chat ID: 1
Menu ID: 1
Chatbot Platform: Platform Name
Chatbot Workflow: Workflow Name
Virtual Agent: Virtual Agent Name
--------------------------------
Intent: Intent Captured from End User Response
Captured At: 2020-06-25 14:54:19
Captured Variables
order_id: Order id is #12345.
--------------------------------
Intent: Intent Captured from Payload
Captured At: 2020-06-25 14:58:23
Captured Variables
order_id: #12345
order_status: canceled
--------------------------------
Inhaltskarten konfigurieren
Inhaltskarten zeigen prägnante und visuell ansprechende Inhalte in einem kartenähnlichen Format an. So können Endnutzer die präsentierten Informationen einfacher aufnehmen. Sie können Inhaltskarten mit Dialogflow CX erstellen und mit Titeln, Untertiteln und Textkörper anpassen.
Im folgenden Beispiel werden Inhaltskarten verwendet, um dem Endnutzer Restaurantoptionen anzuzeigen:

Attribute von Inhaltskarten
| Property-Name | Beschreibung | Erforderlich | Typ |
|---|---|---|---|
title |
Der Titel der Karte. | Ja | String |
subtitle |
Der Untertitel der Karte. | Nein | String |
body |
Die Beschreibung der Inhaltskarte. | Ja | String |
link |
Ein Link zu einer Webseite oder ein Deeplink. Das SDK verwendet die Funktionen des Betriebssystems, um ihn zu öffnen. | Nein | String |
event_params |
Ein Wörterbuch mit zusätzlichen Informationen zum Klickereignis. Das SDK verwendet diese Informationen. | Nein | Wörterbuch |
Dialogflow CX-Nutzlast: Validierung hinzufügen und den Inhaltskartentyp akzeptieren
Ein bestimmter Dialogflow CX-Nutzlasttyp verarbeitet Inhaltskarten, wenn Nachrichten von Endnutzern über den Chatbot-Server empfangen werden. Das folgende Beispiel zeigt eine Dialogflow CX-Nutzlast:
{
"ujet": {
"type": "content_card",
"cards": [
{
"title": "Title",
"subtitle": "Subtitle",
"body": "Body",
"link": "app://page",
"event_params": {} # for deep-link click event
}
]
}
}
Informationen zu Inhaltskarten im CRM-Chatverlauf
Informationen zum Titel der Karte werden protokolliert, um nachzuverfolgen, auf welche Karten der Endnutzer geklickt hat. Diese Informationen werden im CRM-Chatverlauf erfasst.
Im folgenden Beispiel wird die Interaktion mit der Inhaltskarte im Chatnachrichtenverlauf im CRM angezeigt.
[Chat message history]
ID: 305 | 2023-07-06 PDT
--------------------------------------------------
[01:13:32 VA] Welcome message
[01:14:35 Mobile U.] Content Cards:
- Title 1
- Title 2
Klickereignisse für Titel von Inhaltskarten protokollieren
Wenn Sie protokollieren möchten, wenn ein Endnutzer auf den Titel einer Inhaltskarte klickt, verwenden Sie das folgende Format, um das Ereignis zu erfassen:
{end_user_name} clicked on the '{title}' card.
Note Title: Content Card click
Note Comment: 'John Doe' clicked on the 'See our new website' card.
Klickereignis für Inhaltskarte mit der End User Event API erstellen
Wenn ein Endnutzer auf den Titel einer Inhaltskarte klickt, können Sie dieses Ereignis erfassen, indem Sie eine POST-Anfrage an die angegebene URL senden, zusammen mit dem Titel der angeklickten Karte.
API-Endpunkt:POST /api/v2/chat/:id/end_user_event
Verwendung:Klickereignis für Inhaltskarte erstellen.
URL:/api/v2/chats/:id/end_user_event
Methode:POST
Parameter :
| Feld | Typ | Beschreibung |
|---|---|---|
event |
Objekt | |
event.name |
String | Verwenden Sie für Klickereignisse für Inhaltskarten content_card_clicked. |
event.payload |
Objekt | |
event.payload.title |
String | Geben Sie den Titel der angeklickten Karte ein. |
(Optional) end_user_name |
String | Geben Sie den Namen des Endnutzers ein. Wenn Sie dieses Feld leer lassen, wird der Name aus dem CRM abgerufen. |
Beispielanfrage:
{
"event": {
"name": "content_card_clicked",
"payload": {
"title": "New our website"
}
},
"end_user_name": "consumer 1" ## optional
}
Antwort: Status: 202 Accepted