Il payload personalizzato per Dialogflow CX ti consente di migliorare l'esperienza del tuo agente virtuale al di là di chat e interazioni basate su testo normale. Utilizzando payload personalizzati in Dialogflow CX, puoi configurare l'agente virtuale in modo che visualizzi risposte e citazioni personalizzate.
Tipi di messaggi di risposta personalizzati
Le risposte personalizzate ti consentono di visualizzare i seguenti tipi di messaggi:
Testo
Pulsanti in linea
Pulsanti bloccati
Immagini
Video
Documenti
Visualizzazioni complesse (combinazione di uno o più tipi di messaggi)
Le azioni personalizzate consentono agli agenti virtuali di eseguire le seguenti azioni:
Riassegnazioni agli agenti umani
Trasferimenti pianificati ad agenti umani
Terminare la sessione di assistenza
Payload di Contact Center AI Platform (CCAI Platform)
Da utilizzare in Dialogflow CX come payload personalizzato. Il seguente esempio mostra il formato delle risposte in webSDK utilizzando 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" } ] } ] } }
Formato del messaggio di chat per il payload personalizzato
Utilizzato con l'SDK CCAI Platform per mostrare un'interfaccia utente corretta. È lo stesso con il formato del payload personalizzato di Dialogflow CX, ma non ha il campo "ujet" nella radice.
Per maggiori dettagli, consulta i seguenti esempi.
Esempi
Le seguenti sezioni includono payload di esempio che possono essere utilizzati in Dialogflow CX.
Testo
{
"ujet": {
"type": "text",
"messages": [
"Hello",
"How can I help you?"
]
}
}
Riassegnazione alla stessa coda
Tramite l'agente virtuale:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent"
}
}
Per utente finale:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer"
}
}
Il valore escalation_reason viene riportato nelle dashboard.
Riassegnazione alla coda di destinazione
Tramite l'agente virtuale:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent",
"menu_id": 100,
"language": "ko"
}
}
Per utente finale:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer",
"menu_id": 100,
"language": "ko"
}
}
Il valore escalation_reason viene riportato nelle dashboard.
Termina conversazione
{
"ujet": {
"type": "action",
"action": "end"
}
}
Pulsante in linea
{
"ujet": {
"type": "inline_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Esempio

Pulsante adesivo
{
"ujet": {
"type": "sticky_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Esempio

Visualizzazione dell'immagine
{
"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"
}
]
}
}
Visualizzazione video
{
"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"
}
]
}
}
Visualizzazione documento
{
"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"
}
]
}
}
Visualizzazione complessa
{
"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"
}
]
}
]
}
}
Configurazione di un payload personalizzato in Dialogflow
Per saperne di più su come configurare il payload personalizzato utilizzando Dialogflow, consulta le risorse Risposte con payload personalizzato (Dialogflow ES) o Payload personalizzato (Dialogflow CX).
Per saperne di più, consulta Variabili di sessione personalizzate per la gestione del payload personalizzato.
Trasferimento dell'agente virtuale a un numero di telefono o a un endpoint SIP
Puoi utilizzare i payload personalizzati di Dialogflow CX per trasferire le chiamate da un agente virtuale vocale al numero di telefono o all'endpoint SIP che specifichi. Se la connessione viene stabilita, l'agente virtuale viene rimosso dalla chiamata e la chiamata continua. Se la connessione non va a buon fine, viene riprodotto un messaggio di errore di trasferimento e la chiamata continua con l'agente virtuale.
I trasferimenti dell'agente virtuale funzionano sia per le chiamate interne che esterne. I trasferimenti
dell'agente virtuale vengono registrati come Planned Transfers nei report.
Trasferire una chiamata a un numero di telefono
Per trasferire una chiamata da un agente virtuale a un numero di telefono, utilizza un payload Dialogflow CX simile al seguente esempio di codice:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "phone",
"phone_number": "+16509424879"
}
}
Trasferire una chiamata a un endpoint SIP
Per trasferire una chiamata da un agente virtuale a un endpoint SIP nel modo standard, utilizza un payload Dialogflow CX simile al seguente esempio di codice:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip",
"sip_uri": "sip:1-999-123-4567@voip-provider.example.net"
}
}
Trasferire una chiamata a un endpoint SIP utilizzando il metodo SIP REFER
Per trasferire una chiamata da un agente virtuale a un endpoint SIP utilizzando il metodo SIP REFER, utilizza un payload Dialogflow CX simile al seguente esempio di codice. Con il metodo SIP REFER, puoi trasmettere informazioni utili utilizzando le proprietà dell'intestazione.
{
"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"
}
}
}
Variabili Sessione personalizzata per la gestione del payload personalizzato
Utilizza le variabili di sessione personalizzate per acquisire i valori dalla risposta all'intent e dalla risposta dell'utente finale, quindi raccoglili tutti e caricali nel CRM come commento. Per saperne di più, consulta Payload di Dialogflow per le variabili di sessione personalizzate.
Acquisizione dalla risposta dell'utente finale
Flow
La piattaforma CCAI richiede la risposta a Dialogflow CX.
Dialogflow CX può richiamare il server del cliente tramite Fulfillment.
Il server del cliente deve compilare il campo session_variable nella risposta.
Dialogflow CX restituisce la risposta con il payload personalizzato, incluso il campo
session_variablecon capture_target =end_user_responseUn utente finale invia un messaggio.
La piattaforma CCAI conserva il messaggio dell'utente finale inviato nel passaggio precedente.
La piattaforma CCAI pubblicherà tutte le variabili di sessione acquisite nella sessione di chat nel CRM come commento quando un agente virtuale esce da una chat.
Formato del payload personalizzato
{
"ujet": {
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "key"
}
}
}
Il messaggio dell'utente finale successivo immediatamente dopo l'invio di un payload personalizzato da parte di un agente virtuale verrà acquisito come variabile di sessione con la chiave "key".
Acquisizione dalla risposta all'intent
Flow
La piattaforma CCAI richiede la risposta a Dialogflow CX.
Dialogflow CX potrebbe richiamarlo sul server del cliente tramite Fulfillment.
Il server del cliente deve compilare il campo
session_variablenella risposta.
Dialogflow CX restituisce la risposta con il payload personalizzato incluso il campo
session_variableconcapture_target = "payload".Il server della piattaforma CCAI mantiene l'oggetto
payloadnel passaggio 2.
La piattaforma CCAI pubblicherà tutte le variabili di sessione acquisite nella sessione di chat nel CRM come commento quando un agente virtuale esce da una chat.
Formato del payload personalizzato
{
"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"]
}
}
}
Sostituisci quanto segue:
STATUS: lo stato dell'ordineORDER_ID: l'ID ordinePERSONAL_ID: un identificatore dell'utente finale.INVISIBLE_TO_AGENT: un array di proprietà che non vuoi che siano visibili nell'adattatore dell'agente. Ad esempio, un valore"personal_id"qui impedirebbe la visualizzazione della proprietàpersonal_idnell'adattatore dell'agente. Per ulteriori informazioni, vedi Visualizzare le variabili della sessione dell'agente virtuale.DISPLAY_ORDER_IN_ADAPTER: un array di proprietà per specificare l'ordine in cui le variabili di sessione devono essere visualizzate nell'adattatore dell'agente e nei record CRM. Per ulteriori informazioni, vedi Visualizzare le variabili della sessione dell'agente virtuale.
Caricamento delle variabili di sessione personalizzate sul CRM
Per ogni variabile di sessione, il server deve raccogliere internamente tutte le variabili di sessione e caricarle sul CRM quando un agente virtuale esce.
Esempio di messaggio CRM
###########################
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
###########################
Scenario di esempio
Di seguito è riportata una conversazione di esempio che mostra i diversi passaggi e i messaggi scambiati tra l'agente virtuale e l'utente finale.
Passaggio 1
Messaggio di chat dell'agente virtuale
How can I help you?
(Button) Show my orders
(Button) Cancel an order
Risposta all'intent (payload personalizzato)
{
"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"
}
]
}
}
Variabile di sessione acquisita
Nessuno
Passaggio 2
Messaggio di chat dell'utente finale
Click "Cancel an order" button.
Variabile di sessione acquisita
Nessuno
Passaggio 3
Messaggio di chat dell'agente virtuale
Can you provide the order id please
Risposta all'intent (payload personalizzato)
{
"ujet": {
"type": "text"
"messages": [
"Can you provide the order id please"
],
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "order_id";
}
}
}
Variabile di sessione acquisita
Nessuno
Passaggio 4
Messaggio di chat dell'utente finale
Order id is #12345
Variabile di sessione acquisita
order_id: "Order ID is #12345"
Passaggio 5
Messaggio di chat dell'agente virtuale
Order #12345 is cancelled.
Do you need anything else?
Risposta all'intent (payload personalizzato)
{
"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"
}
}
}
}
Variabile di sessione acquisita
order_id: "#12345",
order_status: canceled
Passaggio 6
Messaggio di chat dell'utente finale
I would like to speak with a human agent.
Passaggio 7
Messaggio di chat dell'agente virtuale
Virtual Agent is left from the conversation.
{
"ujet": {
"type": "escalation",
"escalation_reason": "by_consumer"
}
}
Caricamento delle variabili di sessione personalizzate sul CRM
Dal scenario precedente, i seguenti post di commento sul ticket CRM:
---------------------------------
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
--------------------------------
Configurare le schede dei contenuti
Le schede di contenuti mostrano contenuti concisi e visivamente accattivanti in un formato simile a una scheda, creando interazioni più semplici per l'utente finale per consumare le informazioni presentate. Puoi creare schede di contenuti utilizzando Dialogflow CX e personalizzarle con titoli, sottotitoli e corpo del testo.
L'esempio seguente utilizza le schede dei contenuti per mostrare le opzioni di ristoranti all'utente finale:

Proprietà della scheda dei contenuti
| Nome proprietà | Descrizione | Obbligatorio | Tipo |
|---|---|---|---|
title |
Il titolo della scheda. | Sì | Stringa |
subtitle |
Il sottotitolo della scheda. | No | Stringa |
body |
La descrizione della scheda dei contenuti. | Sì | Stringa |
link |
Un link a una pagina web o un link diretto. L'SDK utilizzerà le funzionalità del sistema operativo per aprirlo. | No | Stringa |
event_params |
Un dizionario contenente informazioni aggiuntive sull'evento di clic. L'SDK lo utilizzerà. | No | Dizionario |
Payload di Dialogflow CX: aggiungi la convalida e accetta il tipo di scheda dei contenuti
Un tipo di payload Dialogflow CX specifico gestisce le schede di contenuti quando i messaggi degli utenti finali vengono ricevuti tramite il server chatbot. Di seguito è riportato un esempio di payload Dialogflow CX:
{
"ujet": {
"type": "content_card",
"cards": [
{
"title": "Title",
"subtitle": "Subtitle",
"body": "Body",
"link": "app://page",
"event_params": {} # for deep-link click event
}
]
}
}
Informazioni sulle schede dei contenuti nella cronologia della chat CRM
Le informazioni sul titolo della scheda vengono registrate per tenere traccia delle schede su cui l'utente finale ha fatto clic. Queste informazioni vengono registrate nella cronologia della chat del CRM.
Nell'esempio seguente, la cronologia dei messaggi di chat nel CRM mostra l'interazione con la scheda dei contenuti.
[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
Eventi di clic sul titolo della scheda dei contenuti del log
Per registrare quando un utente finale fa clic sul titolo di una scheda di contenuti, utilizza il seguente formato per acquisire l'evento:
{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.
Crea un evento di clic sulla scheda dei contenuti utilizzando l'API End User Event
Quando un utente finale fa clic sul titolo di una scheda di contenuti, puoi registrare questo evento inviando una richiesta POST all'URL specificato insieme al titolo della scheda su cui è stato fatto clic.
Endpoint API: POST /api/v2/chat/:id/end_user_event
Utilizzo: crea un evento di clic sulla scheda dei contenuti.
URL: /api/v2/chats/:id/end_user_event
Metodo: POST
Parametri:
| Campo | Tipo | Descrizione |
|---|---|---|
event |
oggetto | |
event.name |
string | Per gli eventi di clic sulle schede dei contenuti, utilizza content_card_clicked. |
event.payload |
oggetto | |
event.payload.title |
string | Inserisci il titolo della scheda su cui è stato fatto clic. |
(Facoltativo) end_user_name |
string | Inserisci il nome dell'utente finale. Se il campo viene lasciato vuoto, il nome verrà recuperato dal CRM. |
Esempio di richiesta:
{
"event": {
"name": "content_card_clicked",
"payload": {
"title": "New our website"
}
},
"end_user_name": "consumer 1" ## optional
}
Risposta: Status: 202 Accepted