La charge utile personnalisée pour Dialogflow CX vous permet d'améliorer l'expérience de votre agent virtuel au-delà des interactions et des discussions en texte brut. En utilisant des charges utiles personnalisées dans Dialogflow CX, vous pouvez configurer votre agent virtuel pour qu'il affiche des réponses et des citations personnalisées.
Types de messages de réponse personnalisés
Les réponses personnalisées vous permettent d'afficher les types de messages suivants :
Texte
Boutons intégrés
Boutons qui collent
Images
Vidéos
Documents
Vues complexes (combinaison d'un ou plusieurs types de messages)
Les actions personnalisées permettent aux agents virtuels d'effectuer les actions suivantes :
Escalades aux agents humains
Transferts planifiés vers des agents humains
Mettre fin à la session d'assistance
Charge utile Contact Center AI Platform (CCAI Platform)
À utiliser dans Dialogflow CX comme charge utile personnalisée. L'exemple suivant illustre le format des réponses dans le SDK Web à l'aide de 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 des messages de chat pour la charge utile personnalisée
Utilisé avec le SDK CCAI Platform pour afficher une interface utilisateur appropriée. Il est identique au format de charge utile personnalisée Dialogflow CX, mais ne comporte pas de champ "ujet" à la racine.
Pour en savoir plus, consultez les exemples suivants.
Exemples
Les sections suivantes incluent des exemples de charges utiles pouvant être utilisées dans Dialogflow CX.
Texte
{
"ujet": {
"type": "text",
"messages": [
"Hello",
"How can I help you?"
]
}
}
Escalade vers la même file d'attente
Par agent virtuel :
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent"
}
}
Par utilisateur final :
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer"
}
}
La valeur escalation_reason est indiquée dans les tableaux de bord.
Escalade vers la file d'attente ciblée
Par agent virtuel :
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent",
"menu_id": 100,
"language": "ko"
}
}
Par utilisateur final :
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer",
"menu_id": 100,
"language": "ko"
}
}
La valeur escalation_reason est indiquée dans les tableaux de bord.
Terminer la conversation
{
"ujet": {
"type": "action",
"action": "end"
}
}
Bouton intégré
{
"ujet": {
"type": "inline_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Exemple

Bouton fixe
{
"ujet": {
"type": "sticky_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Exemple

Vue Image
{
"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"
}
]
}
}
Vue de la vidéo
{
"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"
}
]
}
}
Affichage du document
{
"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"
}
]
}
}
Vue complexe
{
"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"
}
]
}
]
}
}
Configurer une charge utile personnalisée dans Dialogflow
Pour savoir comment configurer votre charge utile personnalisée à l'aide de Dialogflow, consultez les ressources Réponses de charge utile personnalisée (Dialogflow ES) ou Charge utile personnalisée (Dialogflow CX).
Pour en savoir plus, consultez Variables de session personnalisées pour la gestion des charges utiles personnalisées.
Transfert d'un agent virtuel vers un numéro de téléphone ou un point de terminaison SIP
Vous pouvez utiliser des charges utiles personnalisées Dialogflow CX pour transférer des appels depuis un agent virtuel vocal vers le numéro de téléphone ou le point de terminaison SIP que vous spécifiez. Si la connexion aboutit, l'agent virtuel est retiré de l'appel, qui se poursuit. Si la connexion échoue, un message d'échec du transfert est lu et l'appel se poursuit avec l'agent virtuel.
Les transferts d'agents virtuels fonctionnent pour les appels internes et externes. Les transferts d'agents virtuels sont enregistrés en tant que Planned Transfers dans les rapports.
Transférer un appel vers un numéro de téléphone
Pour transférer un appel d'un agent virtuel vers un numéro de téléphone, utilisez une charge utile Dialogflow CX semblable à l'exemple de code suivant :
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "phone",
"phone_number": "+16509424879"
}
}
Transférer un appel vers un point de terminaison SIP
Pour transférer un appel d'un agent virtuel vers un point de terminaison SIP de manière standard, utilisez une charge utile Dialogflow CX semblable à l'exemple de code suivant :
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip",
"sip_uri": "sip:1-999-123-4567@voip-provider.example.net"
}
}
Transférer un appel vers un point de terminaison SIP à l'aide de la méthode SIP REFER
Pour transférer un appel d'un agent virtuel vers un point de terminaison SIP à l'aide de la méthode SIP REFER, utilisez une charge utile Dialogflow CX semblable à l'exemple de code suivant. Avec la méthode SIP REFER, vous pouvez transmettre des informations utiles à l'aide des propriétés d'en-tête.
{
"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"
}
}
}
Variables de session personnalisées pour la gestion des charges utiles personnalisées
Utilisez des variables de session personnalisées pour capturer les valeurs de la réponse à l'intention et de la réponse de l'utilisateur final, puis collectez-les toutes et importez-les dans le CRM sous forme de commentaire. Pour en savoir plus, consultez Charge utile Dialogflow pour les variables de session personnalisées.
Capturer la réponse de l'utilisateur final
Flow
La plate-forme CCAI demande la réponse à Dialogflow CX.
Dialogflow CX peut effectuer un rappel au serveur du client par le biais du fulfillment.
Le serveur du client est censé remplir le champ session_variable dans la réponse.
Dialogflow CX renvoie la réponse avec la charge utile personnalisée, y compris le champ
session_variableavec capture_target =end_user_response.Un utilisateur final envoie un message.
CCAI Platform conserve le message de l'utilisateur final envoyé à l'étape précédente.
La plate-forme CCAI publiera toutes les variables de session capturées dans la session de chat dans le CRM sous forme de commentaire lorsqu'un agent virtuel quittera un chat.
Format de charge utile personnalisé
{
"ujet": {
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "key"
}
}
}
Le message de l'utilisateur final qui suit immédiatement l'envoi d'une charge utile personnalisée par un agent virtuel sera capturé en tant que variable de session avec la clé "key".
Capturer à partir de la réponse d'intent
Flow
La plate-forme CCAI demande la réponse à Dialogflow CX.
Dialogflow CX peut le rappeler au serveur du client par le biais de l'exécution.
Le serveur du client est censé remplir le champ
session_variabledans la réponse.
Dialogflow CX renvoie la réponse avec la charge utile personnalisée, y compris le champ
session_variableaveccapture_target = "payload".Le serveur CCAI Platform conserve l'objet
payloadà l'étape 2.
La plate-forme CCAI publiera toutes les variables de session qui ont été capturées dans la session de chat dans le CRM sous forme de commentaire lorsqu'un agent virtuel quitte un chat.
Format de charge utile personnalisé
{
"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"]
}
}
}
Remplacez les éléments suivants :
STATUS: état de la commandeORDER_ID: ID de la commandePERSONAL_ID: identifiant de l'utilisateur final.INVISIBLE_TO_AGENT: tableau des propriétés que vous ne souhaitez pas voir apparaître dans l'adaptateur d'agent. Par exemple, une valeur"personal_id"ici empêcherait la propriétépersonal_idde s'afficher dans l'adaptateur d'agent. Pour en savoir plus, consultez Afficher les variables de session de l'agent virtuel.DISPLAY_ORDER_IN_ADAPTER: tableau de propriétés permettant de spécifier l'ordre dans lequel les variables de session doivent apparaître dans l'adaptateur d'agent et dans les fiches CRM. Pour en savoir plus, consultez Afficher les variables de session de l'agent virtuel.
Importation de variables de session personnalisées dans le CRM
Pour chaque variable de session, le serveur est censé collecter toutes les variables de session en interne, puis les importer dans le CRM lorsqu'un agent virtuel quitte la session.
Exemple de message 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
###########################
Exemple de scénario
Voici un exemple de conversation qui montre les différentes étapes et les messages échangés entre l'agent virtuel et l'utilisateur final.
Étape 1
Message de chat de l'agent virtuel
How can I help you?
(Button) Show my orders
(Button) Cancel an order
Réponse d'intention (charge utile personnalisée)
{
"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"
}
]
}
}
Variable de session capturée
Aucun
Étape 2
Message de chat de l'utilisateur final
Click "Cancel an order" button.
Variable de session capturée
Aucun
Étape 3
Message de chat de l'agent virtuel
Can you provide the order id please
Réponse d'intention (charge utile personnalisée)
{
"ujet": {
"type": "text"
"messages": [
"Can you provide the order id please"
],
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "order_id";
}
}
}
Variable de session capturée
Aucun
Étape 4
Message de chat de l'utilisateur final
Order id is #12345
Variable de session capturée
order_id: "Order ID is #12345"
Étape 5
Message de chat de l'agent virtuel
Order #12345 is cancelled.
Do you need anything else?
Réponse d'intention (charge utile personnalisée)
{
"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"
}
}
}
}
Variable de session capturée
order_id: "#12345",
order_status: canceled
Étape 6
Message de chat de l'utilisateur final
I would like to speak with a human agent.
Étape 7
Message de chat de l'agent virtuel
Virtual Agent is left from the conversation.
{
"ujet": {
"type": "escalation",
"escalation_reason": "by_consumer"
}
}
Importation de variables de session personnalisées dans le CRM
Dans le scénario précédent, les commentaires suivants sont publiés dans la demande 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
--------------------------------
Configurer les fiches de contenu
Les fiches de contenu affichent des contenus concis et visuellement attrayants sous forme de fiches, ce qui simplifie les interactions pour l'utilisateur final qui souhaite exploiter les informations présentées. Vous pouvez créer des cartes de contenu à l'aide de Dialogflow CX et les personnaliser avec des titres, des sous-titres et un corps de texte.
L'exemple suivant utilise des fiches de contenu pour afficher les options de restaurant à l'utilisateur final :

Propriétés des fiches de contenu
| Nom de la propriété | Description | Obligatoire | Type |
|---|---|---|---|
title |
Titre de la fiche. | Oui | Chaîne |
subtitle |
Sous-titre de la fiche. | Non | Chaîne |
body |
Description de la fiche de contenu. | Oui | Chaîne |
link |
Un lien vers une page Web ou un lien profond. Le SDK utilisera les fonctionnalités de l'OS pour l'ouvrir. | Non | Chaîne |
event_params |
Dictionnaire contenant des informations supplémentaires sur l'événement de clic. Le SDK l'utilisera. | Non | Dictionnaire |
Charge utile Dialogflow CX : ajouter la validation et accepter le type de carte de contenu
Un type de charge utile Dialogflow CX spécifique gère les cartes de contenu lorsque les messages des utilisateurs finaux sont reçus via le serveur de chatbot. Voici un exemple de charge utile Dialogflow CX :
{
"ujet": {
"type": "content_card",
"cards": [
{
"title": "Title",
"subtitle": "Subtitle",
"body": "Body",
"link": "app://page",
"event_params": {} # for deep-link click event
}
]
}
}
Informations sur les fiches de contenu dans l'historique des discussions CRM
Les informations sur le titre de la fiche sont enregistrées pour suivre les fiches sur lesquelles l'utilisateur final a cliqué. Ces informations sont enregistrées dans l'historique des discussions du CRM.
Dans l'exemple suivant, l'historique des messages de chat dans le CRM affiche l'interaction avec la fiche de contenu.
[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
Enregistrer les événements de clic sur le titre des fiches de contenu
Pour enregistrer le moment où un utilisateur final clique sur le titre d'une fiche de contenu, utilisez le format suivant pour capturer l'événement :
{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.
Créer un événement de clic sur une fiche de contenu à l'aide de l'API End User Event
Lorsqu'un utilisateur final clique sur le titre d'une fiche de contenu, vous pouvez enregistrer cet événement en envoyant une requête POST à l'URL spécifiée, ainsi que le titre de la fiche sur laquelle l'utilisateur a cliqué.
Point de terminaison de l'API : POST /api/v2/chat/:id/end_user_event
Utilisation : créez un événement de clic sur une fiche de contenu.
URL : /api/v2/chats/:id/end_user_event
Méthode : POST
Paramètres :
| Champ | Type | Description |
|---|---|---|
event |
objet | |
event.name |
string | Pour les événements de clic sur les cartes de contenu, utilisez content_card_clicked. |
event.payload |
objet | |
event.payload.title |
string | Saisissez le titre de la fiche sur laquelle l'utilisateur a cliqué. |
(Facultatif) end_user_name |
string | Saisissez le nom de l'utilisateur final. Si vous ne renseignez pas ce champ, le nom sera récupéré à partir du CRM. |
Exemple de requête :
{
"event": {
"name": "content_card_clicked",
"payload": {
"title": "New our website"
}
},
"end_user_name": "consumer 1" ## optional
}
Réponse : Status: 202 Accepted