ב-Customer Experience Insights הוספנו שתי תכונות מבוססות-כללים כדי לשפר את העיבוד של שיחות:
- כללי תיוג אוטומטי: החלה אוטומטית של תוויות של זוגות מפתח/ערך על שיחות על סמך תנאים מוגדרים.
- כללי קורלציה: הגדרה של אופן הקישור בין פלחי שיחה קשורים כדי ליצור תצוגות מלאות של אינטראקציות עם לקוחות.
שני סוגי הכללים משתמשים ב-Common Expression Language (CEL) כדי לספק הגדרות גמישות ודינמיות של כללים. שפת CEL היא הבסיס לכללים של תיוג אוטומטי ושל קורלציה. אפשר להגדיר את הכללים האלה באמצעות ה-API או מסוף CX Insights.
כללי תיוג אוטומטי
כללי התיוג האוטומטי מעשירים באופן אוטומטי רק שיחות עם תוויות מותאמות אישית של זוגות מפתח/ערך במהלך הייבוא. התוויות האלה משפרות את הסינון, הסיווג והשילוב עם ניתוחים ותהליכי עבודה אחרים. אפשר לבצע את הפעולות הבאות באמצעות כללי תיוג אוטומטי:
- אפשר לסווג את השיחות לפי נושא, סוג לקוח, מוצר או תוצאה.
- לחלץ נקודות נתונים מרכזיות ממטא-נתונים של שיחות או מפרמטרים של Dialogflow, כמו שמות של
callId,isAuthenticatedו-intent, לתוויות. - סימון שיחות שדורשות התייחסות ספציפית, כמו
high_escalation_risk.
תוויות
כל כלל של הוספת תוויות אוטומטית מגדיר תווית ומכיל הודעות תנאי מסודרות. כל תווית משתמשת בביטויי CEL הבאים:
- תנאי: הערכה של שיחה כ-True או כ-False. אם התנאי ריק, ברירת המחדל היא true.
- Value: מחזירה את ערך המחרוזת של התווית אם התנאי מתקיים.
הערך של התווית נקבע לפי הערך הראשון של LabelingCondition שתואם.
כללי ברירת המחדל
ב-CX Insights, כללי ברירת המחדל מוחלים באופן אוטומטי על התוויות הבאות.
sessionEscalated
התווית הזו משלבת בין אותות של Dialogflow לבין אותות ברירת מחדל של העברת שיחה לטיפול ברמה גבוהה יותר, כדי לזהות אם משתמש הקצה או הנציג העבירו את השיחה לטיפול ברמה גבוהה יותר. הערך של התווית הזו משמש לחישוב מדד קצב ההסלמה בלוח בקרה שניתן להגדרה. אם אתם משתמשים בכלי מותאם אישית להעברת שיחות לטיפול ברמה גבוהה יותר, אתם יכולים להגדיר כלל משלכם שיחליף את התווית הזו.
sessionContained
התווית הזו מציינת מקרים שבהם לא בוצע העברה לטיפול ברמה גבוהה יותר. אם הערך הוא true, אי אפשר להעביר לטיפול ברמה גבוהה יותר את תוצאת השיחה עם ה-AI לבדיקת איכות. אתם יכולים להגדיר כלל משלכם כדי להחליף את התווית הזו.
isRepeatedCallerConversation
התווית הזו מחשבת את התדירות שבה משתמש מתקשר בחזרה תוך 24 שעות, ומסתמכת על התווית userIdentifier כדי לקבוע אם השיחה החוזרת היא מאותו משתמש. אתם יכולים להגדיר כלל משלכם כדי להחליף את התווית הזו.
userIdentifier
התווית הזו קובעת אם אותו משתמש מתקשר בחזרה תוך מספר שעות שצוין. לשם כך, המערכת משתמשת במשתנה obfuscated_external_user_id מ-session_params ב-Dialogflow וב-Customer Experience Agent Studio, או בבקשה CreateParticipant ב-Agent Assist. אם אתם משתמשים במשתנים שונים של פרמטרים של סשן לזיהוי משתמשים, אתם צריכים להשתמש ב-get_session_params() כדי להחליף את התווית הזו.
lastTransferSubAgentNames
התווית הזו מספקת את השם של סוכן המשנה הסופי ב-Customer Experience Agent Studio לפני שמישהו מעביר את השיחה לטיפול ברמה גבוהה יותר. ערך ברירת המחדל הוא get_last_subagent([entry_subagent]), שמניח שהסוכן המשני שצוין מטפל בהעלאת הרשאות. אם יש לכם סוכן ספציפי להעברת שיחות, אתם צריכים להגדיר כלל משלכם כדי להחליף את ערך ברירת המחדל בערך get_last_subagent([escalation_agent_name]).
הגדרת כללים
אפשר גם להגדיר כללים משלכם לתיוג אוטומטי באמצעות ה-API או מסוף CX Insights.
API
משתמשים בפעולה
Createכדי להגדירAutoLabelingRule. גוף בקשה לדוגמה:{ "displayName": "$DISPLAY_NAME", "labelKey": "$UNIQUE_KEY_NAME", "labelKeyType": LABEL_KEY_TYPE_CUSTOM "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call'" }, { "condition": "conversation.agent_id == "agent_007"", "value": "'special_agent'" } ], "active": true }פקודת Curl, אם הבקשה נשמרה ב-
auto_labeling_rule.json:curl-X POST
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @auto_labeling_rule.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules?auto_labeling_rule_id=$RULE_ID"נותנים לכלל שם בפורמט הבא:
projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. המזהה[auto_labeling_rule]הואlabel_keyשל כללים בהתאמה אישית.
אפשר גם להשתמש בכל אחת מהפעולות הבאות עם כללי תיוג אוטומטי. כלל לסימון אוטומטי יכול להכיל עד 100 תוויות לכל שיחה, וכל ערך יכול להכיל עד 256 תווים.
Get.curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID"List.curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules"Update. בהתאם לשדות שרוצים לעדכן, מציינים אתupdate_mask.curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_payload.json \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID?update_mask=displayName,active"TestAutoLabelingRule. המטען הייעודי (payload) צריך לכלול את הכלל לבדיקה ושיחה לדוגמה שעל פיה הכלל יוערך. דוגמה:{ "conversation": { "agentId": "agent_007", "turnCount": 15, "duration": "75s" /# Add other conversation fields relevant to the rule }, "autoLabelingRule": { "displayName": "Test Rule", "labelKey": "test_category", "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call_test'" } ], "active": true } }
המסוף
- עוברים למסוף CX Insights, נכנסים לחשבון ובוחרים את הפרויקט. מסוף CX Insights
- לוחצים על הגדרותהגדרות > כללים להוספת תוויות אוטומטית.
- מזינים ביטויי CEL בעורך Monaco.
- לוחצים על Save.
דוגמאות לשימוש ב-CEL
- תווית לפי מזהה הסוכן:
label_key: "agent_category" conditions { condition: "conversation.agent_id == '007'" value: "'special_agent'" } conditions { condition: "conversation.agent_id.startsWith('team_a')" value: "'tier_1_support'" } conditions { condition: "" // Default value: "'standard'" } - סימון סנטימנט שלילי:
label_key: "needs_review" conditions { // This example assumes sentiment scores are present in the conversation's latest_analysis condition: "has(conversation.latest_analysis.analysis_result.call_analysis_metadata.sentiments) && conversation.latest_analysis. analysis_result.call_analysis_metadata.sentiments.exists(s, s. sentiment_data.score < -0.5)" value: "'true'" } - שליפת פרמטר של Dialogflow:
label_key: "df_session_outcome" conditions { condition: "" // Always try to extract value: "conversation.runtime_annotations.map(a, a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters).filter(p, has(p.outcome)).map(p, p.outcome).first_element_or_empty_string()" }
שימוש בתוויות אוטומטיות במסננים של כללי ניתוח
כללי הוספת תוויות אוטומטית יכולים להוסיף תוויות שקובעות אילו שיחות יעברו עיבוד על ידי כללי הניתוח העיקריים. בשדה conversation_filter בכלל ניתוח אפשר להפנות לתוויות באמצעות מפת התוויות.
דוגמה:
// AnalysisRule to run detailed analysis on conversations labeled 'needs_review: true'
display_name: "Detailed Analysis for Reviewed Conversations"
conversation_filter: "labels.needs_review = \"true\""
annotator_selector: {
run_summarization_annotator: true
// ... other annotators
}
analysis_percentage: 1.0
active: true
כללי קורלציה
כללי קורלציה מגדירים איך Customer Experience Insights מזהה ומקשר בין פלחים קשורים בשיחה. פלח שיחה מייצג חלק אחד של שיחה, כפי שהוא נקלט, כמו סשן Dialogflow או אינטראקציה יחידה עם סוכן. שיחה מלאה מייצגת שיחה שלמה ומקושרת שמורכבת מקטע אחד או יותר. כברירת מחדל, כל השיחות החדשות מתחילות כפלחים. כללי קורלציה עוזרים ליצור היסטוריה מלאה של אינטראקציות עם לקוח, גם אם האינטראקציות מתפרסות על פני כמה נציגים, ערוצים או סשנים.
כללי קורלציה מספקים את היתרונות הבאים לניתוח שיחות עם שירות לקוחות.
- תמלול מאוחד: אפשר לראות תמלול יחיד לפי סדר כרונולוגי שמשלב אמירות מכמה מקורות, כמו שיחה עם צ'אטבוט ואחריה שיחה עם נציג שירות.
- ניתוח בין ערוצים: קישור אינטראקציות בערוצים שונים, כמו צ'אט ושיחות קוליות, כדי לנתח מגמות של סנטימנט והתקדמות של נושאים לאורך מסלול השיחה כולו.
- דיוק המדדים: חשוב לחשב מדדים כמו זמן הטיפול הכולל או שיעור הפניות שנפתרו עבור האינטראקציה המלאה, ולא רק עבור חלקים ספציפיים שלה.
- הקשר לסוכנים: מספקים לסוכנים אנושיים את ההיסטוריה המלאה של האינטראקציות האוטומטיות הקודמות.
תהליך הקורלציה
כשכללי קורלציה תואמים לכמה פלחים בשיחה, CX Insights מקבץ אותם יחד. לאחר מכן, מערכת CX Insights יוצרת רשומה חדשה שמייצגת את השיחה המלאה עם מזהה שיחה ייחודי משלה. ב-CX Insights, מזהה המתאם של שיחה מלאה מוגדר כמפתח משותף שמקשר בין הפלחים, והסוג שלו מוגדר כ-FULL. ב-CX Insights, מזהי המתאם של הפלחים המקוריים מוגדרים כמפתח המשותף, והסוגים שלהם מוגדרים כ-SEGMENT. אם פלח לא קשור לפלחים אחרים, ב-CX Insights הוא מקבל את שני סוגי המתאם: SEGMENT ו-FULL.
קישור הודעות
כללי קורלציה מקשרים בין פלחים קשורים בשיחות ממקורות ומערוצים שונים. כדי לקשר בין פלחי שיחות, CX Insights פועל לפי השלבים הבאים:
- קיבוץ לפי מפתח איחוד: CX Insights מעריך ביטוי של מפתח איחוד ב-CEL כדי לחלץ מזהה משותף מהשיחה, כמו
callId. שיחות שמשתמשות באותו מפתח הצטרפות הן מועמדות פוטנציאליות לקישור. מפתחות האיחוד צריכים להיות ספציפיים. אם מילת מפתח תואמת ליותר מ-20 שיחות, יכול להיות שהמתאם יידחה כדי למנוע בעיות בביצועים. - שיפור עם אילוצים: ביטוי האילוץ של CEL הוא בדיקה בוליאנית אופציונלית שמוערכת בזוגות בין מועמדים. הביטוי הזה עוזר לוודא שצריך לקשר בין שני פלחים שמשתפים מפתח. הבדיקה הזו היא דו-כיוונית, ולכן היא יכולה לכלול את פלח A שמקושר לפלח B ואת פלח B שמקושר לפלח A.
- קישור טרנזיטיבי: הקישור הוא טרנזיטיבי. אם שיחה א' מקושרת לשיחה ב', ושיחה ב' מקושרת לשיחה ג', אז שיחות א', ב' ו-ג' ימוזגו ל
FULLקבוצת שיחה אחת.
שיחה שמוזגה יכולה להכיל עד חמישה קטעים.
הגדרת כללי קורלציה
אפשר להגדיר כללי קורלציה באמצעות ה-API או מסוף CX Insights.
API
- מריצים את הקוד הבא כדי להגדיר
CorrelationConfig.curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_corr_config.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig?update_mask=fullConversationConfig" - נותנים לכלל שם בפורמט הבא:
projects/{project-id}/locations/{location-id}/correlationConfig. - התוצאה מוצגת בשדה
Conversation.CorrelationInfo.
אפשר להשתמש בכל אחת מהפעולות הבאות עם כללי קורלציה.
GetCorrelationConfig.curl-X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig"UpdateCorrelationConfig. גוף בקשה לדוגמה, אם הוא נשמר ב-updated_corr_config.json:{ "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.labels.uui", "active": true } ] } }TestCorrelationConfig. ב-payload צריך לציין את פרטי השיחה לדוגמה בנוסף לכלל הקורלציה שרוצים לבדוק. דוגמה:{ "correlationConfig": { "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.agent_id", "active": true } ] } }, "filter": "agent_id="agent_007"", "maxSampleCount": 100 }
המסוף
- עוברים למסוף CX Insights, נכנסים לחשבון ובוחרים את הפרויקט. מסוף CX Insights
- לוחצים על הגדרותהגדרות > הגדרת קורלציה.
- לוחצים על Save.
אדמינים יכולים להגדיר ולנהל CorrelationRule רשומות בתוך CorrelationConfig. כדי לבדוק את כללי המתאם, בוחרים שיחות. תוצאות הבדיקה מתווספות למערך נתונים לבדיקה.
דוגמה ל-CEL
קישור על ידי callId מ-Dialogflow:
join_key_expression:
// Extracts 'callId' from Dialogflow parameters, falls back to conversation name.
default(conversation.runtime_annotations.map(a,
a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters)
.filter(p, has(p.callId))
.map(p, p.callId)
.first_element_or_empty_string(), conversation.name)
פונקציות שירות של CEL
ב-CX Insights יש כמה פונקציות שימושיות שאפשר להשתמש בהן בביטויי CEL כדי להעריך שיחות.
| חתימת פונקציה | תיאור |
|---|---|
get_label(string key) |
הפונקציה מחזירה את ערך המחרוזת של התווית שמשויכת ל-key מהשיחה הנוכחית. |
exists_call_back_conversation( |
הפונקציה מחזירה true אם קיימת שיחה מסוג 'חזרה לשיחה' שתואמת לערך filter שצוין. החיפוש מתבצע בשיחות עם אותו מזהה משתמש (מזהה משתמש שעבר ערפול או תווית מוגדרת מראש של מזהה משתמש) בחלון ברירת מחדל של זמן עתידי (24 שעות). הערך filter שצוין מצורף לקריטריון הזה. |
has_same_caller_conversation_in_n_hours(has_same_caller_conversation_in_n_hours( |
הפונקציה מחזירה את הערך true אם יש שיחות מאותו מתקשר או משתמש בטווח של מספר הימים שצוין hours (ערך חיובי לעתיד, ערך שלילי לעבר). אפשר להוסיף filter כדי לצמצם עוד יותר את החיפוש. |
get_same_caller_conversations_in_n_hours(get_same_caller_conversations_in_n_hours( |
הפונקציה מחזירה רשימה של שיחות מאותו מתקשר או משתמש, במסגרת מספר הימים שצוין hours. אפשר לספק filter אופציונלי. |
get_session_params(string key) |
מאחזר את ערך המחרוזת של פרמטר סשן (מ-Dialogflow או מ-CES) שמשויך ל-key שצוין. הוא מחפש הערות בזמן ריצה והערות של תפניות CES בסדר כרונולוגי הפוך. אם לא נמצאה התאמה, הפונקציה מחזירה מחרוזת ריקה. |
get_last_subagent()get_last_subagent(list excludes) |
הפונקציה מחזירה את השם המוצג של הנציג המשני האחרון שהיה מעורב בשיחה. אפשר להחריג סוכני משנה שמופיעים ברשימה excludes (שכוללת בדרך כלל את סוכן המשנה שמטפל בהעברת הטיפול לדרג גבוה יותר), אלא אם זה סוכן המשנה היחיד. |
get_last_subagent_id()get_last_subagent_id(list excludes) |
הפונקציה מחזירה את המזהה של הסוכן המשני האחרון שהיה מעורב בשיחה. אפשר להחריג סוכני משנה שמופיעים ברשימה excludes (שכוללת בדרך כלל את סוכן המשנה שמטפל בהעברת הטיפול לדרג גבוה יותר), אלא אם זה סוכן המשנה היחיד. |
list.first_element_or_empty_string() |
אפשר להשתמש בהן ברשימות של מחרוזות. הפונקציה מחזירה את הרכיב הראשון ברשימה אם הוא מחרוזת. אחרת (או אם הרשימה ריקה), היא מחזירה מחרוזת ריקה. |
ניתוח ברמת הפלח והשיחה
בעזרת CX Insights אפשר לנתח שיחות ברמות שונות של פירוט, כולל ניתוח לפי פלח וניתוח לפי שיחה לכל התכונות. בדפים מרכז השיחות וAI לבדיקת איכות במסוף מוצגים נתונים ברמת השיחה והפלח, שמצביעים על המבנה הרב-פלחים של שיחות מקושרות.
כדי לטרגט רמות ספציפיות של ניתוח, משתמשים במסננים הבאים עם כלל ניתוח.
תצוגה ברמת הפלח
המטרה של התצוגה הזו היא לנתח חלקים ספציפיים באינטראקציה, כמו תורנות של נציג יחיד. אפשר להשתמש בפרמטר correlation_info.correlation_types:SEGMENT כדי לסנן את התצוגה ברמת הפלח.
תצוגת שיחה מלאה
בתצוגה הזו אפשר לנתח את המסלול המלא להמרת הלקוח, בין אם הוא מורכב משיחות מקושרות או משיחות עצמאיות. משתמשים בפרמטר correlation_info.correlation_types:FULL כדי לסנן את תצוגת השיחה המלאה.