Mit benutzerdefinierten Nutzlasten für Dialogflow CX können Sie die Erfahrung mit Ihrem virtuellen Kundenservicepersonal über reine textbasierte Chats und Interaktionen hinaus verbessern. Mit benutzerdefinierten Nutzlasten in Dialogflow CX können Sie Ihren virtuellen Kundenservicemitarbeiter so konfigurieren, dass benutzerdefinierte Antworten und Quellenangaben gerendert werden.
Typen benutzerdefinierter Antwortnachrichten
Mit benutzerdefinierten Antworten können Sie die folgenden Nachrichtentypen rendern:
Text
Inline-Schaltflächen
Festsitzende Tasten
Bilder
Videos
Dokumente
Komplexe Ansichten (Kombination aus einem oder mehreren Nachrichtentypen)
Mit benutzerdefinierten Aktionen können virtuelle Kundenservicemitarbeiter die folgenden Aktionen ausführen:
Eskalierungen an Kundenservicemitarbeiter
Geplante Übergaben an Kundenservicemitarbeiter
Supportsitzung beenden
CCAI Platform-Nutzlast
Zur Verwendung in Dialogflow CX als benutzerdefinierte Nutzlast. Das folgende Beispiel zeigt das Format für Antworten im WebSDK 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" } ] } ] } }
Format von Chatnachrichten für benutzerdefinierte Nutzlast
Wird mit dem CCAI Platform SDK verwendet, um eine geeignete Benutzeroberfläche zu präsentieren. Das benutzerdefinierte Nutzlastformat von Dialogflow CX ist dasselbe, aber es gibt kein Feld „ujet“ im Stammverzeichnis.
Weitere Informationen finden Sie in den folgenden Beispielen.
Beispiele
Die folgenden Abschnitte enthalten Beispiel-Nutzlasten, die in Dialogflow CX verwendet werden können.
Text
{
"ujet": {
"type": "text",
"messages": [
"Hello",
"How can I help you?"
]
}
}
Eskalierung an dieselbe Warteschlange
Über einen virtuellen Kundenservicemitarbeiter:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent"
}
}
Nach Endnutzer:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer"
}
}
Der Wert escalation_reason wird in den Dashboards angezeigt.
Eskalierung an die Zielwarteschlange
Über einen virtuellen Kundenservicemitarbeiter:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent",
"menu_id": 100,
"language": "ko"
}
}
Nach Endnutzer:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer",
"menu_id": 100,
"language": "ko"
}
}
Der Wert escalation_reason wird in den Dashboards angezeigt.
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

Fixierter Button
{
"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 Nutzlastantworten (Dialogflow ES) oder Benutzerdefinierte Nutzlast (Dialogflow CX).
Weitere Informationen finden Sie unter Benutzerdefinierte Sitzungsvariablen für die benutzerdefinierte Nutzlastverarbeitung.
Weiterleitung des virtuellen Kundenservicemitarbeiters an eine Telefonnummer oder einen SIP-Endpunkt
Mit benutzerdefinierten Nutzlasten in Dialogflow CX können Sie Anrufe von einem virtuellen Sprachagenten an die von Ihnen angegebene Telefonnummer oder den SIP-Endpunkt weiterleiten. Wenn die Verbindung hergestellt wurde, wird der virtuelle Kundenservicemitarbeiter aus dem Anruf entfernt und der Anruf wird fortgesetzt. Wenn die Verbindung fehlschlägt, wird eine Fehlermeldung zur Übertragung abgespielt und das Gespräch wird mit dem virtuellen Kundenservicemitarbeiter fortgesetzt.
Die Übergabe an einen virtuellen Kundenservicemitarbeiter funktioniert sowohl für interne als auch für externe Anrufe. Übergaben durch virtuelle Kundenservicemitarbeiter werden in Berichten als Planned Transfers erfasst.
Anruf an eine Telefonnummer weiterleiten
Wenn Sie einen Anruf von einem virtuellen Agenten 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
Wenn Sie einen Anruf auf standardmäßige Weise von einem virtuellen Agent an einen SIP-Endpunkt weiterleiten möchten, verwenden Sie eine Dialogflow CX-Nutzlast, die dem folgenden Codebeispiel ähnelt:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip",
"sip_uri": "sip:1-999-123-4567@voip-provider.example.net"
}
}
Anruf mit der SIP REFER-Methode an einen SIP-Endpunkt weiterleiten
Wenn Sie einen Anruf von einem virtuellen Agenten mithilfe der SIP REFER-Methode an einen SIP-Endpunkt weiterleiten möchten, verwenden Sie eine Dialogflow CX-Nutzlast, die dem folgenden Beispielcode ähnelt. Mit der SIP-REFER-Methode können Sie mithilfe der Header-Properties nützliche Informationen übergeben.
{
"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. Erfassen Sie dann alle Werte und laden Sie sie als Kommentar in das CRM hoch. Weitere Informationen finden Sie unter Dialogflow-Nutzlast für benutzerdefinierte Sitzungsvariablen.
Aus der Antwort des Endnutzers erfassen
Flow
Die CCAI-Plattform fordert die Antwort von Dialogflow CX an.
Dialogflow CX kann über die Auftragsausführung einen Rückruf an den Server des Kunden senden.
Der Server des Kunden soll das Feld session_variable in der Antwort ausfüllen.
Dialogflow CX gibt die Antwort mit der benutzerdefinierten Nutzlast zurück, einschließlich des
session_variable-Felds mit capture_target =end_user_response.Ein Endnutzer sendet eine Nachricht.
Die CCAI-Plattform behält die Endnutzernachricht bei, die im vorherigen Schritt gesendet wurde.
CCAI Platform sendet alle Sitzungsvariablen, die in der Chatsitzung erfasst wurden, als Kommentar an das 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 nach dem Senden einer benutzerdefinierten Nutzlast durch einen virtuellen Agenten wird als Sitzungsvariable mit dem Schlüssel „key“ erfasst.
Erfassung aus Intent-Antwort
Flow
Die CCAI-Plattform fordert die Antwort von Dialogflow CX an.
Dialogflow CX kann den Kunden über die Erfüllung an den Server des Kunden zurückleiten.
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 des Felds
session_variablemitcapture_target = "payload".Der CCAI Platform-Server behält das
payload-Objekt in Schritt 2 bei.
Die CCAI Platform sendet alle Sitzungsvariablen, die in der Chatsitzung erfasst wurden, als Kommentar an das 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 BestellungORDER_ID: die Bestell-IDPERSONAL_ID: Eine Kennung des Endnutzers.INVISIBLE_TO_AGENT: Ein Array mit 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 Variablen für die Sitzung mit dem virtuellen Agenten anzeigen.DISPLAY_ORDER_IN_ADAPTER: Ein Array mit Eigenschaften, mit denen die Reihenfolge angegeben wird, in der Sitzungsvariablen im Agent-Adapter und in CRM-Datensätzen angezeigt werden sollen. Weitere Informationen finden Sie unter Variablen für die Sitzung mit dem virtuellen Agenten anzeigen.
Benutzerdefinierte Sitzungsvariable in CRM hochladen
Für jede Sitzungsvariable soll der Server alle Sitzungsvariablen intern erfassen und dann in das CRM hochladen, wenn ein virtueller Kundenservicemitarbeiter die Sitzung verlässt.
Beispiel für 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 ein Beispiel für eine Unterhaltung, in der die verschiedenen Schritte und die zwischen dem virtuellen Kundenservicemitarbeiter und dem Endnutzer ausgetauschten Nachrichten dargestellt werden.
Schritt 1
Chatnachricht von einem 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 von einem 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 von einem 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 von einem virtuellen Kundenservicemitarbeiter
Virtual Agent is left from the conversation.
{
"ujet": {
"type": "escalation",
"escalation_reason": "by_consumer"
}
}
Benutzerdefinierte Sitzungsvariable in CRM hochladen
Im vorherigen Szenario werden die folgenden Kommentare 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 enthalten prägnante und visuell ansprechende Inhalte in einem kartenähnlichen Format. So können Endnutzer die präsentierten Informationen einfacher aufnehmen. Sie können Inhaltskarten mit Dialogflow CX erstellen und sie mit Titeln, Untertiteln und Textkörper anpassen.
Im folgenden Beispiel werden Inhaltskarten verwendet, um dem Endnutzer Restaurantoptionen zu präsentieren:

Eigenschaften der Inhaltskarte
| 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 |
Einen Weblink oder einen Deeplink. Das SDK verwendet die Funktionen des Betriebssystems, um die Datei zu öffnen. | Nein | String |
event_params |
Ein Dictionary mit zusätzlichen Informationen zum Klickereignis. Das SDK verwendet diesen Wert. | Nein | Wörterbuch |
Dialogflow CX-Nutzlast: Validierung hinzufügen und den Inhaltstyp der Karte 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 Kartentitel werden protokolliert, um nachzuverfolgen, auf welche Karten der Endnutzer geklickt hat. Diese Informationen werden im CRM-Chatverlauf aufgezeichnet.
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 Inhaltskarten mit der End User Event API erstellen
Wenn ein Endnutzer auf den Titel einer Inhaltskarte klickt, können Sie dieses Ereignis aufzeichnen, indem Sie eine POST-Anfrage mit dem Titel der angeklickten Karte an die angegebene URL senden.
API-Endpunkt:POST /api/v2/chat/:id/end_user_event
Verwendung:Ereignis für Klicks auf Inhaltskarten erstellen.
URL:/api/v2/chats/:id/end_user_event
Methode:POST
Parameter:
| Feld | Typ | Beschreibung |
|---|---|---|
event |
Objekt | |
event.name |
String | Verwenden Sie content_card_clicked für Klickereignisse auf Contentkarten. |
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 das 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