מטען ייעודי (payload) בהתאמה אישית ל-Dialogflow CX מאפשר לכם לשפר את חוויית השימוש בנציג הווירטואלי שלכם מעבר לצ'אט ולשיחות פשוטות שמבוססות על טקסט. באמצעות מטענים ייעודיים (payload) בהתאמה אישית ב-Dialogflow CX, אתם יכולים להגדיר את הנציג הווירטואלי כך שיציג תשובות והפניות בהתאמה אישית.
סוגים של הודעות תשובה מותאמות אישית
תשובות בהתאמה אישית מאפשרות לכם להציג את סוגי ההודעות הבאים:
טקסט
כפתורים מוטבעים
לחצנים דביקים
תמונות
סרטונים
מסמכים
תצוגות מורכבות (שילוב של סוג הודעה אחד או יותר)
פעולות בהתאמה אישית מאפשרות לסוכנים וירטואליים לבצע את הפעולות הבאות:
הסלמות לנציגי תמיכה אנושיים
העברות מתוכננות לנציגים אנושיים
סיום סשן תמיכה
מטען ייעודי (payload) של Contact Center AI Platform (CCAI Platform)
הנתונים האלה ישמשו ב-Dialogflow CX כמטען ייעודי (payload) בהתאמה אישית. בדוגמה הבאה מוצג הפורמט של תשובות ב-webSDK באמצעות 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" } ] } ] } }
פורמט של הודעת צ'אט למטען ייעודי (payload) מותאם אישית
הוא משמש עם CCAI Platform SDK כדי להציג ממשק משתמש תקין. הפורמט זהה לפורמט של מטען ייעודי (payload) מותאם אישית ב-Dialogflow CX, אבל אין שדה ujet בשורש.
פרטים נוספים מופיעים בדוגמאות הבאות.
דוגמאות
בקטעים הבאים מופיעות דוגמאות למטענים ייעודיים (payloads) שאפשר להשתמש בהם ב-Dialogflow CX.
טקסט
{
"ujet": {
"type": "text",
"messages": [
"Hello",
"How can I help you?"
]
}
}
העברה לאותו תור
על ידי נציג וירטואלי:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent"
}
}
לפי משתמש קצה:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer"
}
}
הערך escalation_reason מדווח בלוחות הבקרה.
העברה לרשימת ההמתנה המטורגטת
על ידי נציג וירטואלי:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent",
"menu_id": 100,
"language": "ko"
}
}
לפי משתמש קצה:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer",
"menu_id": 100,
"language": "ko"
}
}
הערך escalation_reason מדווח בלוחות הבקרה.
סיום השיחה
{
"ujet": {
"type": "action",
"action": "end"
}
}
כפתור מוטבע
{
"ujet": {
"type": "inline_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
דוגמה

כפתור קבוע
{
"ujet": {
"type": "sticky_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
דוגמה

תצוגת תמונות
{
"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"
}
]
}
}
צפייה בסרטון
{
"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"
}
]
}
}
הצגת מסמך
{
"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"
}
]
}
}
תצוגה מורכבת
{
"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"
}
]
}
]
}
}
הגדרת מטען ייעודי (payload) בהתאמה אישית ב-Dialogflow
מידע נוסף על הגדרת מטען ייעודי (payload) מותאם אישית באמצעות Dialogflow זמין במאמרים בנושא תגובות של מטען ייעודי (payload) מותאם אישית (Dialogflow ES) או מטען ייעודי (payload) מותאם אישית (Dialogflow CX).
מידע נוסף זמין במאמר בנושא משתני סשן בהתאמה אישית לטיפול במטען ייעודי (payload) בהתאמה אישית.
העברה של סוכן וירטואלי למספר טלפון או לנקודת קצה של SIP
אתם יכולים להשתמש במטענים ייעודיים (payloads) בהתאמה אישית ב-Dialogflow CX כדי להעביר שיחות מסוכן וירטואלי קולי למספר הטלפון או לנקודת הקצה של SIP שציינתם. אם החיבור מצליח, הסוכן הווירטואלי מוסר מהשיחה והשיחה נמשכת. אם החיבור נכשל, מושמעת הודעה על כשל בהעברה והשיחה ממשיכה עם הסוכן הווירטואלי.
העברות לסוכן וירטואלי פועלות גם בשיחות פנימיות וגם בשיחות חיצוניות. העברות לסוכן וירטואלי מתועדות בדוחות כ-Planned Transfers.
העברת שיחה למספר טלפון
כדי להעביר שיחה מנציג וירטואלי למספר טלפון, משתמשים במטען ייעודי (payload) של Dialogflow CX שדומה לדוגמת הקוד הבאה:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "phone",
"phone_number": "+16509424879"
}
}
העברת שיחה לנקודת קצה של SIP
אפשר להעביר שיחה מסוכן וירטואלי לנקודת קצה של SIP עם זמן קצוב אופציונלי לצלצול.
הזמן הקצוב לתפוגה של הצלצול
כדי להגדיר זמן קצוב לתגובה לשיחה, מוסיפים את השדה sip_ring_timeout. כך יש מספיק זמן למענה לשיחות אל שלוחות פנימיות או אל יעדים של תקשורת מאוחדת (UC) לפני הניתוק. האפשרות הזו זמינה רק למשתמשי Twilio.
מערכת Twilio מוסיפה בערך חמש שניות לפסק הזמן של הצלצול שאתם מגדירים.
דוגמה
כדי להעביר שיחה מסוכן וירטואלי לנקודת קצה של SIP, משתמשים במטען ייעודי (payload) של Dialogflow שדומה לדוגמת הקוד הבאה:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip",
"sip_uri": "SIP_ENDPOINT",
"sip_ring_timeout": SIP_RINGING_TIMEOUT
}
}
מחליפים את מה שכתוב בשדות הבאים:
SIP_ENDPOINT: נקודת הקצה של ה-SIP שאליה תועבר השיחה. הוא אמור להיראות כמוsip:1-999-123-4567@voip-provider.example.net.
SIP_RINGING_TIMEOUT: אופציונלי: מספר השניות שהשיחה מצלצלת לפני שהיא מסתיימת. הערכים התקינים:10עד600, כולל. אם מגדירים ערך מחוץ לטווח הזה, המערכת משתמשת בערך ברירת המחדל של זמן ההמתנה לשיחה נכנסת, שהוא 30 שניות. ברירת מחדל: 30 שניות.
העברת שיחה לנקודת קצה של SIP באמצעות שיטת ה-SIP REFER
כדי להעביר שיחה מסוכן וירטואלי לנקודת קצה של SIP באמצעות שיטת ה-SIP REFER, צריך להשתמש במטען ייעודי (payload) של Dialogflow CX שדומה לדוגמת הקוד הבאה. באמצעות שיטת ה-SIP REFER, אפשר להעביר מידע שימושי באמצעות מאפייני הכותרת.
{
"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"
}
}
}
משתני סשן מותאמים אישית לטיפול במטען ייעודי (payload) מותאם אישית
משתמשים במשתני סשן מותאמים אישית כדי לתעד ערכים מהתגובה להבעת הכוונה ומהתגובה של משתמש הקצה, ואז אוספים את כולם ומעלים אותם למערכת ה-CRM כהערה. מידע נוסף זמין במאמר בנושא Dialogflow payload for custom session variables (מטען ייעודי (payload) של Dialogflow למשתני סשן בהתאמה אישית).
איסוף נתונים מהתשובה של משתמש הקצה
Flow
פלטפורמת CCAI שולחת בקשה לתשובה אל Dialogflow CX.
יכול להיות ש-Dialogflow CX יבצע קריאה חוזרת (callback) לשרת של הלקוח באמצעות מילוי ההזמנה.
השרת של הלקוח אמור למלא את השדה session_variable בתגובה.
Dialogflow CX מחזיר את התגובה עם מטען הייעודי (payload) המותאם אישית, כולל
session_variableהשדה עם capture_target =end_user_responseמשתמש קצה שולח הודעה.
פלטפורמת CCAI שומרת את ההודעה של משתמש הקצה שנשלחה בשלב הקודם.
פלטפורמת CCAI תפרסם את כל משתני הסשן שנאספו בסשן הצ'אט ב-CRM כהערה, כשהסוכן הווירטואלי יצא מהצ'אט.
פורמט מותאם אישית של מטען ייעודי (payload)
{
"ujet": {
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "key"
}
}
}
ההודעה הבאה של משתמש הקצה מיד אחרי שהסוכן הווירטואלי שולח מטען ייעודי (payload) מותאם אישית תתועד כמשתנה סשן עם המפתח key.
שליפה מתגובה של כוונת משתמש
Flow
פלטפורמת CCAI שולחת את הבקשה לתגובה אל Dialogflow CX.
יכול להיות ש-Dialogflow CX יחזיר את השיחה לשרת של הלקוח באמצעות Fulfillment.
השרת של הלקוח אמור למלא את השדה
session_variableבתגובה.
Dialogflow CX מחזיר את התשובה עם המטען הייעודי (payload) בהתאמה אישית, כולל השדה
session_variableעם הערךcapture_target = "payload".השרת של פלטפורמת CCAI שומר את אובייקט
payloadבשלב 2.
פלטפורמת ה-CCAI תפרסם את כל משתני הסשן שנאספו בסשן הצ'אט ב-CRM כהערה כשסוכן וירטואלי יוצא מצ'אט.
פורמט מותאם אישית של מטען ייעודי (payload)
{
"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"]
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
STATUS: הסטטוס של ההזמנה
ORDER_ID: מזהה ההזמנה
PERSONAL_ID: מזהה של משתמש הקצה.
INVISIBLE_TO_AGENT: מערך של מאפיינים שלא רוצים שיוצגו במתאם של הסוכן. לדוגמה, אם הערך של"personal_id"הואpersonal_id, המאפייןpersonal_idלא יוצג במתאם של הסוכן. מידע נוסף מופיע במאמר בנושא הצגת משתני סשן של סוכן וירטואלי.
DISPLAY_ORDER_IN_ADAPTER: מערך של מאפיינים להגדרת הסדר שבו משתני הסשן צריכים להופיע במתאם של הסוכן וברשומות של מערכת ה-CRM. מידע נוסף מופיע במאמר בנושא הצגת משתני סשן של סוכן וירטואלי.
העלאה של משתנה מותאם אישית ברמת הסשן ב-CRM
לכל משתנה סשן, השרת אמור לאסוף את כל משתני הסשן באופן פנימי ואז להעלות אותם למערכת לניהול קשרי לקוחות (CRM) כשנציג וירטואלי עוזב.
דוגמה להודעה ממערכת 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
###########################
מקרה לדוגמה
זוהי דוגמה לשיחה שמציגה את השלבים השונים ואת ההודעות שהועברו בין הסוכן הווירטואלי לבין משתמש הקצה.
שלב 1
הודעה בצ'אט מסוכן וירטואלי
How can I help you?
(Button) Show my orders
(Button) Cancel an order
תשובה לכוונת המשתמש (payload בהתאמה אישית)
{
"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"
}
]
}
}
משתנה של סשן שתועד
ללא
שלב 2
הודעה בצ'אט ממשתמש קצה
Click "Cancel an order" button.
משתנה של סשן שתועד
ללא
שלב 3
הודעה בצ'אט מסוכן וירטואלי
Can you provide the order id please
תשובה לכוונת המשתמש (payload בהתאמה אישית)
{
"ujet": {
"type": "text"
"messages": [
"Can you provide the order id please"
],
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "order_id";
}
}
}
משתנה של סשן שתועד
ללא
שלב 4
הודעה בצ'אט ממשתמש קצה
Order id is #12345
משתנה של סשן שתועד
order_id: "Order ID is #12345"
שלב 5
הודעה בצ'אט מסוכן וירטואלי
Order #12345 is cancelled.
Do you need anything else?
תשובה לכוונת המשתמש (payload בהתאמה אישית)
{
"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"
}
}
}
}
משתנה של סשן שתועד
order_id: "#12345",
order_status: canceled
שלב 6
הודעה בצ'אט ממשתמש קצה
I would like to speak with a human agent.
Step 7
הודעה בצ'אט מסוכן וירטואלי
Virtual Agent is left from the conversation.
{
"ujet": {
"type": "escalation",
"escalation_reason": "by_consumer"
}
}
העלאה של משתנה מותאם אישית ברמת הסשן ב-CRM
מתוך התרחיש הקודם, התגובות הבאות מתפרסמות בכרטיס 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
--------------------------------
הגדרת כרטיסי תוכן
כרטיסי תוכן מציגים תוכן תמציתי ומושך מבחינה ויזואלית בפורמט של כרטיס, וכך מאפשרים למשתמשי הקצה לצרוך את המידע שמוצג בצורה פשוטה יותר. אתם יכולים ליצור כרטיסי תוכן באמצעות Dialogflow CX ולהתאים אותם אישית עם כותרות, כותרות משנה וטקסט בגוף הכרטיס.
בדוגמה הבאה נעשה שימוש בכרטיסי תוכן כדי להציג למשתמש הקצה אפשרויות של מסעדות:

מאפיינים של כרטיס תוכן
| שם המאפיין | תיאור | חובה | סוג |
|---|---|---|---|
title |
השם של הכרטיס. | כן | String |
subtitle |
כותרת המשנה של הכרטיס. | לא | String |
body |
התיאור של כרטיס התוכן. | כן | String |
link |
קישור לדף אינטרנט או קישור עומק. ה-SDK ישתמש ביכולות של מערכת ההפעלה כדי לפתוח אותו. | לא | String |
event_params |
מילון שמכיל מידע נוסף על אירוע הקליק. ה-SDK ישתמש בערך הזה. | לא | מילון |
Dialogflow CX payload: הוספת אימות ואישור של סוג כרטיס התוכן
סוג ספציפי של מטען ייעודי (payload) ב-Dialogflow CX מטפל בכרטיסי תוכן כשמתקבלות הודעות ממשתמשי קצה דרך שרת הצ'אט בוט. דוגמה למטען ייעודי (payload) של Dialogflow CX:
{
"ujet": {
"type": "content_card",
"cards": [
{
"title": "Title",
"subtitle": "Subtitle",
"body": "Body",
"link": "app://page",
"event_params": {} # for deep-link click event
}
]
}
}
מידע על כרטיסי תוכן בהיסטוריית הצ'אט ב-CRM
פרטי הכותרת של הכרטיס מתועדים כדי לעקוב אחרי הכרטיסים שמשתמש הקצה לחץ עליהם. המידע הזה מתועד בהיסטוריית הצ'אט במערכת ה-CRM.
בדוגמה הבאה, היסטוריית הצ'אט ב-CRM מציגה את האינטראקציה בכרטיס התוכן.
[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
רישום ביומן של אירועי קליקים על כותרות של כרטיסי תוכן
כדי לרשום ביומן מתי משתמש קצה לוחץ על הכותרת של כרטיס תוכן, משתמשים בפורמט הבא כדי לתעד את האירוע:
{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.
יצירת אירוע קליק על כרטיס תוכן באמצעות End User Event API
כשמשתמש קצה לוחץ על הכותרת של כרטיס תוכן, אתם יכולים לתעד את האירוע הזה על ידי שליחת בקשת POST לכתובת ה-URL שצוינה, יחד עם הכותרת של הכרטיס שעליו לחצו.
נקודת קצה של API: POST /api/v2/chat/:id/end_user_event
שימוש: יצירת אירוע של לחיצה על כרטיס תוכן.
כתובת ה-URL: /api/v2/chats/:id/end_user_event
שיטה: POST
פרמטרים:
| שדה | סוג | תיאור |
|---|---|---|
event |
אובייקט | |
event.name |
מחרוזת | לשימוש באירועים של קליקים על כרטיסי תוכן משתמשים ב-content_card_clicked. |
event.payload |
אובייקט | |
event.payload.title |
מחרוזת | מזינים את השם של הכרטיס שעליו לחצו. |
(אופציונלי) end_user_name |
מחרוזת | מזינים את השם של משתמש הקצה. אם השדה הזה יישאר ריק, השם יאוחזר ממערכת ה-CRM. |
דוגמה לבקשה:
{
"event": {
"name": "content_card_clicked",
"payload": {
"title": "New our website"
}
},
"end_user_name": "consumer 1" ## optional
}
תגובה: Status: 202 Accepted