במסמך הזה מוסבר על סכימת ה-JSON שמשמשת למבנה של מטא-נתונים של סשנים של שיחות. הסכימה הזו חיונית לייצוג ולעיבוד מדויקים של סשנים של שיחות.
סכימת מטא-נתונים של סשן שיחה
הסכימה הזו מתארת את מבנה הנתונים שקשורים למטא-נתונים של סשן שיחה. הרכיבים העיקריים מתוארים בקטעים הבאים.
מידע בסיסי
המאפיינים האלה מציינים את המידע העיקרי של השיחה:
id(מספר שלם). המזהה של כל סשן שיחה. זהו המפתח הראשי שמבדיל בין שיחה אחת לשיחה אחרת.
lang(string). קוד השפה לפי תקן ISO 689 שבו נעשה שימוש במהלך השיחה, לדוגמה –enלאנגלית אוesלספרדית. ההגדרה הזו חשובה מאוד לניתוח ולדיווח ספציפיים לשפה.
call_type(string). סוג השיחה, באמצעות קבוצה מדור קודם של סוגים. דוגמאות: שיחות נכנסות (באפליקציה), שיחות יוצאות ושיחות פנימיות. כך אפשר לסווג את השיחות לפי המקור והמטרה שלהן.
session_type(string): עותק כפול של call_type
session_type_v2(string). סוג השיחה, באמצעות קבוצת הסוגים הנוכחית. המאפיין הזה דומה למאפיין call_type, אבל הוא עשוי לכלול הבחנות פרטניות יותר, כמו Voice Inbound (Mobile) או Voice Inbound (IVR using Mobile).
status(string). הסטטוס הנוכחי של השיחה. ערכים אפשריים:scheduled,queued,connected,finished,failedו-deflected. המאפיין הזה עוקב אחרי התקדמות השיחה לאורך מחזור החיים שלה.
subStatus(string). הצגת סטטוס מפורט יותר של השיחה. הערכים האפשריים כוללים אתwaiting_for_agent,in_queueו-connected_with_agent.
created_at(מחרוזת, תאריך ושעה): חותמת הזמן המדויקת שבה נוצר רשומת השיחה
queued_at(מחרוזת, תאריך ושעה או null): חותמת הזמן שבה השיחה נכנסה לתור, או null אם היא אף פעם לא הוכנסה לתור
assigned_at(מחרוזת, תאריך ושעה או null): חותמת הזמן שבה השיחה הוקצתה לסוכן, או null אם היא לא הוקצתה
connected_at(מחרוזת, תאריך ושעה או null): חותמת הזמן של מועד החיבור המוצלח של השיחה
ends_at(מחרוזת, תאריך ושעה או null): חותמת הזמן שבה השיחה הסתיימה
scheduled_at(מחרוזת, תאריך ושעה או null): חותמת הזמן של מועד התזמון של השיחה, או null אם זו הייתה שיחה מיידית
updated_at(מחרוזת, תאריך ושעה): חותמת הזמן שבה נתוני השיחות שונו בפעם האחרונה
wait_duration(מספר שלם): משך הזמן הכולל שהלקוח המתין, בשניות
call_duration(מספר שלם): משך השיחה הכולל, בשניות
hold_duration(מספר שלם): משך הזמן הכולל שהלקוח הושם בהמתנה, בשניות, או null אם לא היה זמן המתנה
rating(מספר שלם או null): דירוג שביעות רצון הלקוחות (CSAT) שסופק על ידי הלקוח, או null אם לא ניתן דירוג
has_feedback(boolean): דגל שמציין אם הלקוח סיפק משוב אחרי השיחה
voip_provider(מחרוזת): ספק ה-VoIP שבו נעשה שימוש בשיחה. השדה הזה הוצא משימוש ותמיד יחזירdeprecated.
out_ticket_id(מחרוזת): המזהה של הכרטיס שנוצר במערכת ה-CRM החיצונית
out_ticket_url(string, uri): כתובת ה-URL של הכרטיס ב-CRMis_out_ticket_account(ערך בוליאני): מציין אם הכרטיס ב-CRM מייצג לקוח (true) או אינטראקציה בשיחה (false)
verified(boolean): מציין אם האינטראקציה אומתה באמצעות הפעולה החכמה לאימות
recording_url(string, uri, or null): כתובת ה-URL של הקלטת השיחה, או null אם אין הקלטה זמינה
recording_permission(string). הסטטוס של הרשאת הלקוח להקלטה. הערכים האפשריים כולליםnot_asked,grantedאוdenied.
voicemail_reason(string). הסיבה להשארת הודעה קולית, אם רלוונטי. האפשרויות כוללותnot_voicemail,temporary_redirectionו-after_hour_deflection.
פרטי הנציג והנציג הווירטואלי
בקטעים האלה מוסבר מי או מה טיפל בשיחה:
agent_info(object). השדה הזה יכול להכיל מידע על נציג אנושי או על נציג וירטואלי. הוא משתמש במילת המפתח one of כדי לציין שהוא יכול להיות אחד משני סוגים.
agent(אובייקט): מידע על הסוכן האנושי:
id(מספר שלם): מזהה הסוכן
agent_number(מחרוזת או null): מזהה שהוקצה לסוכן
email(מחרוזת, אימייל): כתובת האימייל של הסוכן
name(מחרוזת): השם המלא של הסוכן
last_name(string): שם המשפחה של הסוכן
first_name(מחרוזת): השם הפרטי של הסוכן
avatar_url(מחרוזת, uri): כתובת ה-URL של תמונת האווטאר של הסוכן
virtual_agent(אובייקט): מידע על הנציג הווירטואלי:
id(מספר שלם): המזהה של הנציג הווירטואלי
name(string): השם של הנציג הווירטואלי
avatar_url(מחרוזת, uri): כתובת ה-URL של תמונת האווטאר של הסוכן הווירטואלי
ניווט בתפריט
selected_menu(אובייקט או null): מידע על התפריט שהלקוח בחר במהלך השיחה
id(מספר שלם): המזהה של התפריט
name(string): השם של התפריט
parent_id(מספר שלם או null): המזהה של תפריט ההורה, אם יש כזה
position(מספר שלם): מיקום התפריט ביחס לתפריטים אחרים באותה רמה
deleted(בוליאני): אם התפריט נמחק
menu_type(string): סוג התפריט. לדוגמה:ivr_menuאוsms_menu.
hidden(בוליאני): אם התפריט גלוי וזמין לשימוש
menu_path(אובייקט או null): מתאר את הנתיב ההיררכי של התפריטים שהלקוח עבר בהם
items_count(מספר שלם): מספר התפריטים בנתיב
name(string): מחרוזת של שמות תפריטים שמופרדים באמצעות לוכסן. לדוגמה — dupport או billing.
materialized_path(string): מחרוזת של מזהי תפריטים שמופרדים באמצעות לוכסן
פרטים של משתמשי קצה
end_user(אובייקט): מידע על הלקוח
id(integer): מספר הלקוח הפנימי
identifier(מחרוזת או null): מזהה חיצוני של הלקוח
out_contact_id(string או null): מזהה הלקוח במערכת ה-CRM
ניתוב שיחות
deflection(מחרוזת): מציינת אם השיחה הועברה למוקד אחר ואיך היא הועברה. לדוגמה –no_deflection,over_cap_phone,after_hours_voicemail.
deflection_details(מערך): מספק יומן מפורט של הפניות שהתרחשו במהלך השיחה. כל רשומה כוללת:
id(מספר שלם): המזהה של רשומת יומן ההפניה
call_id(מספר שלם): המזהה של השיחה
transfer_id(מספר שלם או null): המזהה של ההעברה שמשויכת להפניה, אם רלוונטי
deflection(string): סוג ההטיה
created_at(מחרוזת, תאריך ושעה): חותמת הזמן שבה התרחשה ההפניה
from_menu_path(אובייקט או null): נתיב התפריט שממנו הופנתה השיחה
to_menu_path(אובייקט או null): נתיב התפריט שאליו ההפניה הועברה
to_sip_uri(מחרוזת או null): כתובת SIP URI שאליה הופנתה השיחה, אם רלוונטי
to_sip_headers(object): כותרות SIP שבאמצעותן השיחה הופנתה למקום אחר, אם רלוונטי
משך הטיפול בשיחות
handle_durations(מערך): מערך של אובייקטים, שכל אחד מהם מייצג קטע של השיחה שטופלה על ידי נציג. הנתון הזה שימושי לניתוח זמן הטיפול של הסוכן.
id(מספר שלם): המזהה של משך הטיפול
agent_id(integer): מזהה הסוכן
acw_duration(מספר שלם): משך העבודה שבעקבות השיחה
bcw_duration(מספר שלם): משך העבודה לפני השיחה
call_duration(מספר שלם): משך השיחה במהלך הפלח הזה
menu_path_id(string or null): המזהה של נתיב התפריט
menu_path(מחרוזת): שם נתיב התפריט
lang(string): השפה שבה נעשה שימוש
barged(boolean): האם הייתה התפרצות לשיחה
transfer(בוליאני): אם התרחשה העברה
transfer_id(מחרוזת או null): מזהה ההעברה
transfer_cold(boolean or null): whether the transfer was cold
started_at(string, date-time): חותמת זמן של ההתחלה
ended_at(string, date-time): חותמת זמן של סיום
scheduled_at(מחרוזת, תאריך ושעה או null): חותמת זמן מתוזמנת
hold_duration(מספר שלם או null): משך ההמתנה במהלך המקטע הזה
assigned_connection_duration(מספר שלם): משך הזמן שמשתמש הקצה המתין בזמן שהסוכן היה מחובר במהלך השלב הזה
session_breakthrough(אובייקט): פרטים על הקצאה של ניתוק השיחה בגלל סטטוס 'לא זמין' של נציג, אם רלוונטי
משך ההמתנה בתור
queue_durations(array): מערך של אובייקטים, שכל אחד מהם מייצג פלח של השיחה שבו הלקוח היה בהמתנה בתור. הנתונים האלה חשובים מאוד לניתוח זמני ההמתנה ורמות השירות.
id(מספר שלם): המזהה של משך ההמתנה בתור
agent_id(integer): מזהה הסוכן
ended_at(string, date-time): חותמת זמן של סיום
lang(string): השפה שבה נעשה שימוש
menu_path_id(מספר שלם): מזהה של נתיב התפריט
menu_path(מחרוזת): שם נתיב התפריט
queue_duration(מספר שלם): משך פלח התור
started_at(string, date-time): חותמת זמן של ההתחלה
transfer_cold(בוליאני): אם השיחה הועברה בלי נתוני רקע
transfer(בוליאני): אם התרחשה העברה
transfer_id(מספר שלם): מזהה ההעברה
service_level_abandon_time_threshold(מספר שלם): ערך הסף של הזמן לנטוש את רמת השירות
service_level_event(מחרוזת): סטטוס האירוע ברמת השירות. לדוגמה —excluded,in_sla,not_in_sla.
service_level_target_percent(integer): אחוז היעד לתאימות ברמת השירות
service_level_target_time(מספר שלם): זמן היעד לעמידה ברמת השירות
העברה לטיפול בנציג וירטואלי
virtual_agent_deflected_escalations(מערך): פרטים על העברות משיחות עם סוכנים וירטואליים שהופנו לטיפול של סוכנים אנושיים
id(מספר שלם): המזהה
deflection(string): סוג ההפניה
escalation_id(מספר שלם): מזהה אירוע העברה לטיפול ברמה גבוהה יותרescalation_reason(string): reason for escalation
escalated_at(string, date-time): חותמת זמן של העברת הטיפול לרמה גבוהה יותר
menu_path_id(מספר שלם): מזהה נתיב בתפריט
menu_path(מחרוזת): נתיב בתפריטlang(מחרוזת): שפה
virtual_agent(אובייקט): פרטים של נציג וירטואלי
משך הטיפול של נציג וירטואלי
virtual_agent_handle_durations(array): פלחים של זמן שבהם השיחה טופלה על ידי נציג וירטואלי
id(מספר שלם): המזהה
virtual_agent(אובייקט): פרטים של נציג וירטואלי
call_duration(מספר שלם): משך הפלחescalation_reason(string): reason for escalation
finish_reason(string): הסיבה לסיום האינטראקציה
sentiment(מספר שלם): סנטימנט משתמש הקצה
response_count(integer): מספר התגובות של הסוכן הווירטואלי
fallback_response_count(מספר שלם): מספר התגובות החלופי
initiated_by(מחרוזת): איך הופעל הסשן עם הסוכן הווירטואלי
menu_path_id(מספר שלם): מזהה נתיב בתפריט
menu_path(מחרוזת): נתיב בתפריטlang(מחרוזת): שפה
transfer(בוליאני): אם השיחה הועברה
transfer_id(מספר שלם): מזהה אירוע ההעברה
started_at(string, date-time): חותמת זמן של ההתחלה
ended_at(string, date-time): חותמת זמן של סיום
משך הטיפול במשתמשי קצה
consumer_handle_durations(מערך): משכי הזמן שמשתמש הקצה היה בשיחה
id(מספר שלם): המזהה
call_duration(integer): משך הפלח של משתמש הקצה
hold_duration(integer): משך ההחזקה של נתוני משתמשי קצה
started_at(string, date-time): חותמת זמן של ההתחלה
ended_at(string, date-time): חותמת זמן של סיום
משך האירועים של משתמשי הקצה
consumer_event_durations(מערך): פרטים של אירועי שיחות של משתמשי קצה. לדוגמה – CSAT או תשלום.
id(מספר שלם): המזהה
duration(מספר שלם): משך האירוע
type(string): סוג האירוע
event(string): תוצאת האירוע
menu_path_id(מספר שלם): מזהה נתיב בתפריט
menu_path(מחרוזת): נתיב בתפריטlang(מחרוזת): שפה
started_at(string, date-time): חותמת זמן של ההתחלה
ended_at(string, date-time): חותמת זמן של סיום
משך הזמן בתפריט למשתמשי קצה
consumer_in_menu_durations(מערך): משכי הזמן של אינטראקציות של משתמשי קצה בתפריטים
id(מספר שלם): המזהה
duration(integer): משך הזמן בתפריט
event(מחרוזת): תוצאת האינטראקציה עם התפריט
menu_path_id(מספר שלם): מזהה נתיב בתפריט
menu_path(מחרוזת): נתיב בתפריטlang(מחרוזת): שפה
started_at(string, date-time): חותמת זמן של ההתחלה
ended_at(string, date-time): חותמת זמן של סיום
משתתפים
participants(מערך): מידע על כל משתתף בשיחה. לדוגמה – לקוח, נציג, נציג וירטואלי.
id(מספר שלם): המזהה של המשתתף
type(string): סוג המשתתף. לדוגמה: end_user, agent, virtual_agent, וכו'.
entry_type(string): איך המשתתף הצטרף לשיחה
user_id(מספר שלם או null): מזהה המשתמש אם המשתתף הוא סוכן
end_user_id(מספר שלם או null): מזהה משתמש הקצה אם המשתתף הוא הלקוח
virtual_agent_id(מספר שלם או null): מזהה הנציג הווירטואלי אם המשתתף הוא נציג וירטואלי
virtual_agent_params(object): מטא-נתונים בהתאמה אישית שמשמשים את הסוכן הווירטואלי
status(מחרוזת): סטטוס המשתתף. לדוגמה – waiting (בהמתנה), connected (מחובר), finished (הסתיים) וכו'.
fail_reason(מחרוזת): הסיבה לכשל, אם יש כזו
connected_at(string, date-time): חותמת זמן של מועד ההצטרפות של המשתתף
phone_number(מחרוזת): מספר הטלפון של המשתתף
call_id(מספר שלם): מזהה של השיחה
call_duration(מספר שלם): משך השיחה של המשתתף
hold_duration(מספר שלם או null): משך ההמתנה של המשתתף
ended_at(מחרוזת, תאריך ושעה): חותמת זמן שמציינת מתי ההשתתפות של המשתתף הסתיימה
adapter_fail_code(מספר שלם או null): קוד מספרי שמתאים לסיבת הכישלון
adapter_fail_message(מחרוזת או null): תיאור שלfail_reasonשקריא לאנשים, אם יש כזה.
הקלטות
recordings(array): מידע על הקלטות של שיחות
id(מספר שלם): המזהה של ההקלטה
call_id(מספר שלם): מזהה השיחה
conference_sid(מחרוזת): מזהה השיחה של ספק ה-VoIP
duration(integer): משך ההקלטהrecording_type(מחרוזת): סוג ההקלטה
redaction_times(מערך): פלחי זמן שעברו צנזורה
started_at(string, date-time): חותמת הזמן של תחילת ההקלטה
אירועים מיוחדים
offer_type(מחרוזת או null): האופן שבו השיחה הוצעה לסוכן
offer_events(מערך): אירועים שבהם ההתקשרות הוצעה לסוכנים
casting_time(date-time): השעה שבה הוצעה השיחה
group(מחרוזת): הקבוצה שאליה הוצעה השיחה
פרטים נוספים
answer_type(מחרוזת או null): איך השיחה נענתה. לדוגמה – ידני או אוטומטי.
outbound_number(מחרוזת): מספר הטלפון היוצא שנעשה בו שימוש
wait_time_sms(array): זמן ההמתנה לאינטראקציות ב-SMS
in_call_sms(array): אינטראקציות של SMS במהלך השיחה
dispositions(מערך): תוצאות שהוקלטו במהלך השיחה
email(מחרוזת, אימייל או null): כתובת האימייל של הלקוח
feedback(string or null): משוב מלקוחות
smart_action_text(string או null): הטקסט של כל פעולה חכמה שבוצעה
custom_data_secured(אובייקט או null): נתונים מותאמים אישית עם חתימה מאובטחת
custom_data_not_secured(אובייקט או null): נתונים מותאמים אישית שלא נחתמו בצורה מאובטחת
הגדרות מרכזיות
הסכימה כוללת גם קטע הגדרות שמגדיר רכיבי סכימה שאפשר לעשות בהם שימוש חוזר:
menu_path: נתיב תפריט היררכי
agent: נציג אנושי
virtual_agent: נציג וירטואלי
deflection: מגדיר את סטטוסי ההפניה האפשריים