במסמך הזה מוסבר על סכימת ה-JSON שמשמשת למבנה של מטא-נתונים בתמלילי צ'אטים. הסכימה הזו נחוצה כדי לייצג ולעבד שיחות בצורה מדויקת.
סכימת מטא-נתונים של תמליל הצ'אט
הסכמה הזו מתארת את מבנה הנתונים של תמלילי צ'אטים. הרכיבים העיקריים מתוארים בקטעים הבאים:
מידע ליבה בתמליל
המאפיינים הבאים מספקים את המידע הבסיסי על התמליל עצמו:
comm_type(string). סוג התקשורת שאליה שייך התמליל הזה. השיחה יכולה להיות בצ'אט או בטלפון, אם יש לכם אפשרות לשלוח SMS.comm_id(מספר שלם). מזהה של התקשורת, לדוגמה — צ'אט או שיחה שהתמליל הזה קשור אליהם.
transcript_version(string). הגרסה של פורמט התמליל. המאפיין הזה נדרש לצורך תאימות לאחור כשמנתחים תמלילים.
assigned_at(מחרוזת, תאריך ושעה). חותמת הזמן של מועד הקצאת הצ'אט.
timezone(string). אזור הזמן שבו התנהלה שיחת הצ'אט.
הגדרות של הודעות
הקטע definitions מכיל רכיבי סכימה לשימוש חוזר שמגדירים את המבנה של סוגים שונים של הודעות בתמליל. כך אפשר לטפל בפורמטים שונים של תוכן:
text(object): מייצג הודעת טקסט
type(מחרוזת): הערך חייב להיות 'text'
content(מחרוזת): תוכן הטקסט בפועל של ההודעה
lang(מחרוזת): שפת תוכן הטקסט
text_template(object): מייצג הודעת טקסט עם תבנית
type(string): צריך להיותtext_template
content(מחרוזת): תוכן תבנית הטקסט, שעשוי לכלול placeholders
markdown(object): מייצג הודעה באמצעות עיצוב Markdown
type(string): צריך להיותMarkdown
content(מחרוזת): תוכן תבנית ה-Markdown
markdown_template(object): מייצג הודעת Markdown עם תבנית
type(string): צריך להיותmarkdown_template.
content(string): תוכן תבנית Markdown, יכול להיות עם placeholders
photo(אובייקט): מייצג הודעה שמכילה תמונה
type(string): צריך להיותphoto
media_id(מספר שלם): המזהה של קובץ המדיה של התמונה
video(אובייקט): מייצג הודעה שמכילה סרטון
title(string): שם הסרטון
video(object): פרטים על הסרטון
url(string): כתובת ה-URL של הסרטון
text(string): טקסט חלופי לכתובת ה-URL של הסרטון
media_id(מספר שלם): מזהה המדיה לאחזור כתובת ה-URL של הסרטון אם היא לא סופקה ישירות
image(object): מייצג הודעה שמכילה תמונה
title(string): שם התמונה
image(אובייקט): פרטים על התמונה
url(string): כתובת ה-URL של התמונה
text(string): טקסט חלופי לכתובת ה-URL של התמונה
document(object): מייצג הודעה שמכילה מסמך
title(string): שם המסמך
document(object): פרטים על המסמך
url(string): כתובת ה-URL של המסמך.
text(string): טקסט חלופי לכתובת ה-URL של המסמך
inline_button(object): מייצג קבוצה של לחצנים בתוך השורה
title(מחרוזת): הכותרת של קבוצת הלחצנים בתוך השורה
buttons(array): מערך של אובייקטים של כפתורים
title(string): שם הכפתור
action(string): שם הפעולה שמצוינת על ידי הלחצן
link(string): כתובת URL של קישור לפעולות של תשובה מהירה
sticky_button(אובייקט): מייצג קבוצה של כפתורים קבועים
title(מחרוזת): הכותרת של קבוצת הלחצנים הקבועה
buttons(array): מערך של אובייקטים של כפתורים
title(string): שם הכפתור
action(string): שם הפעולה שמצוינת על ידי הלחצן
link(string): כתובת URL של קישור לפעולות של תשובה מהירה
content_card(אובייקט): מייצג כרטיס תוכן
cards(array): מערך של אובייקטים של כרטיסי תוכן
title(מחרוזת): הכותרת של כרטיס התוכן
body(string): גוף הטקסט של כרטיס התוכן
server_message(object): מייצג הודעה שאוחזרה מהשרת
message_id(מספר שלם): המזהה של הודעת השרת המאוחסנת
content(string): תוכן ההודעה שאוחזר מהשרת
action(אובייקט): מייצג פעולה שבוצעה במהלך הצ'אט. יכול להיות אחד מהערכים הבאים:
action_escalation(object): מייצג פעולת הסלמה
action(מחרוזת): הערך חייב להיות 'העברה לטיפול ברמה גבוהה יותר'
escalation_reason(string): הסיבה להעברה לטיפול ברמה גבוהה יותר.
menu_id(מספר שלם): המזהה שאליו צריך להעביר את הפנייה
language(מחרוזת): קוד השפה בפורמט ISO 689 של התור שאליו יש להעביר את הפנייה
action_deflection(object): מייצג פעולת הפניה
action(string): צריך להיותdeflection
deflection_type(string): סוג ההטיה
sip_parameters(אובייקט או null): פרמטרים של SIP להעברה כחלק מההפניה, אם קיימים
action_end(אובייקט): מייצג פעולת סיום-
action(string): צריך להיותend
-
noti(object): מייצג הודעת התראה. יכול להיות שזה אחד מסוגי ההתראות הבאים:
noti_transfer_started(object): התראה על התחלת העברה.
type(string): צריך להיותnoti
event(string): חייב להיות transferStartedtarget(מחרוזת): יעד ההעברה, לדוגמה: — תפריט או נציג.
agent(object): הסוכן שהתחיל את ההעברה
id(integer): מזהה הסוכן
email(מחרוזת): האימייל של הסוכן
name(string): שם הסוכן
noti_verification_requested(אובייקט): התראה על בקשת אימות
type(string): צריך להיותnoti
event(string): צריך להיותverificationRequested
agent(object): הנציג שמבקש אימות
id(מספר שלם): המזהה של הסוכן שמבקש אימות
email(מחרוזת): כתובת האימייל של הנציג שמבקש אימות
name(מחרוזת): שם הנציג שמבקש אימות
noti_end_user_verified(object): התראה על אימות משתמש קצה
type(string): צריך להיותnoti
event(string): צריך להיותendUserVerified
סוגים אחרים של
noti_\*מגדירים התראות לאירועים שונים, כמו בקשות לצילום תמונות, בקשות לצילום סרטונים, אירועים של גלישה משותפת, אירועים של סוכן וירטואלי למשימות, הצטרפות של סוכן ושינויים בסטטוס של העברה או של העלאת רמת הטיפול.
noti_custom(object): מייצג התראה בהתאמה אישית.
type(string): צריך להיותnoti
event(string): צריך להיותcustom
detail(אובייקט): פרטים של אירוע מותאם אישית
key(מחרוזת): מפתח שמייצג את הפרטים של האירוע המותאם אישית
data(object): מטען ייעודי (payload) של אירוע שהוגדר בהתאמה אישית
רשומות בתמליל
entries(מערך): מערך של אובייקטים, שכל אובייקט מייצג הודעה ספציפית שנשלחה בצ'אט.
timestamp(string): חותמת הזמן שבה ההודעה נשלחה
type(מחרוזת): סוג ההודעה, עם הפניה לאחת ההגדרות שמתוארות למעלה, לדוגמה –text, photo, noti.
body(אובייקט): התוכן של ההודעה, בהתאם למבנה שמוגדר לפי סוג ההודעה. הוא משתמש ב-oneOfכדי להתאים לסוגים שונים של מבני גוף.
role(מחרוזת): התפקיד של המשתתף ששלח את ההודעה. הערכים האפשריים כולליםend_user, agent, manager, virtual_agent,external_agent, task_virtual_agent, system.
user_data(אובייקט): נתונים של המשתמש ששלח את ההודעה, אלא אם מדובר בהודעה של משתמש קצה או בהודעת מערכת.
name(string): שם המשתמש
id(integer): המזהה הייחודי של המשתמש
avatar_url(string): כתובת URL של האחסון של הדמות של המשתמש