פלטפורמת Contact Center AI (CCAI Platform) מספקת אינטגרציה עם ServiceNow CRM.
הגדרות למפתחים ב-ServiceNow
דרישות מינימליות מומלצות לגבי גרסת ServiceNow: Tokyo patch 1
הגדרת משתמש עם אימות בסיסי
סביר להניח שבחשבון האדמין ב-ServiceNow מופעל אימות דו-שלבי שמשויך למשתמש הזה. לכן, אי אפשר להשתמש בו כדי לקבל גישת אדמין בפלטפורמת CCAI. לשם כך, צריך ליצור חשבון משתמש ב-ServiceNow.
יוצרים משתמש בסיסי עם פרטי כניסה:
עוברים אל משתמש > חדש.
ממלאים את הפרטים ובוחרים באפשרות 'גישה לשירותי אינטרנט בלבד'.
חשוב לרשום לפניכם את מזהה המשתמש והסיסמה.
התפקידים הנדרשים ב-ServiceNow
תפקידי ברירת המחדל ב-ServiceNow מוגדרים מראש כדי לספק גישה והרשאות ספציפיות בפלטפורמה. אדמינים יכולים ליצור ולהגדיר תפקידים שנותנים הרשאות ספציפיות, שקובעות מה משתמשים וקבוצות עם התפקיד הזה יכולים לעשות.
כדי לבצע את השילוב הזה, אתם צריכים את התפקידים הבאים ב-ServiceNow:
user_admin: התפקיד הזה מיועד לאדמינים שצריכים לנהל משתמשים, קבוצות, מיקומים וחברות במופע של ServiceNow.
sn_incident_read: התפקיד הזה מספק גישה לקריאה בלבד לאפליקציית ניהול האירועים ולפונקציות שקשורות אליה. היא מאפשרת למשתמשים לצפות ברשומות של אירועים.
sn_incident_write: התפקיד הזה מעניק הרשאת כתיבה לאפליקציית ניהול האירועים ולפונקציות שקשורות אליה, ומאפשר למשתמשים ליצור ולשנות רשומות של אירועים.
personalize_dictionary: התפקיד הזה מאפשר להתאים אישית את הערכים והתוויות במילון כדי לעמוד בדרישות עסקיות ספציפיות.
function_field_admin: התפקיד הזה מיועד למשתמשים שצריכים ליצור, לערוך ולהציג שדות פונקציה באופן ספציפי בכלי לעיצוב דוחות. היא לא מאפשרת ליצור או למחוק שדות של פונקציות מרשימת הפלטפורמות או מהטופס.
הגדרת תצוגות מפורטות של מכונות
בקטעים הבאים מפורטים שינויי ההגדרה שנדרשים לתצוגות מקרים.
(אופציונלי) הוספה למועדפים
המועדפים הם דרך מהירה למצוא את הקישורים הנפוצים ביותר במופע ServiceNow. כדי להוסיף מועדף, לוחצים על סמל הכוכב לצד שדה בחלונית הניווט. אם רוצים לסנן את חלונית הניווט בהמשך כדי לראות רק את המועדפים, אפשר ללחוץ על סמל הכוכב שמופיע ישירות מתחת לשדה של מסנן הניווט בחלונית הניווט.
דוגמאות למועדפים שימושיים:
- אירועים: שיוכים לרשומות ב-CRM בהתאמה אישית.
- משתמשים: שיוכים לחשבונות של מערכת CRM בהתאמה אישית.
- Rest API Explorer: דרך טובה לבדוק את ה-API.
הוספת שדות מותאמים אישית באופן ידני
לוחצים על סמל החץ להרחבה (3 קווים אופקיים) בפינה הימנית העליונה בתצוגת האובייקט שרוצים לשנות. אפשר לעשות את זה בתצוגת השירות העצמי או בתצוגת ברירת המחדל.
בתפריט, בוחרים באפשרות הגדרה > עיצוב טופס כדי לפתוח את הכלי לעיצוב טפסים.
בעמודה הימנית, בוחרים בכרטיסייה סוגי שדות.
גוררים את סוג השדה המותאם אישית שרוצים להוסיף.
אחרי שגוררים את סוג השדה לקטע הרצוי, לוחצים על סמל גלגל השיניים כדי לראות את ההגדרות.
בתוך החלון, משנים את התווית ורושמים את השם. השם הוא מה שמשמש אתכם בהגדרות האפליקציה של פלטפורמת CCAI.
בפינה השמאלית העליונה של המסך, לוחצים על שמירה.
מיפוי נתוני סשנים למערכת ה-CRM
אתם צריכים למפות את נתוני ההפעלה המתאימים מ-CCAIP באמצעות Dialogflow ולהשתמש בפרמטרים הבאים:
נתונים של סוכן וירטואלי
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"payload": {
"value_one": "$session.params.payload_value_one"
};
"capture_type": [ "comment", "field" ] // optional, default of ["comment"]
}
}
}
מטא-נתונים
https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dsys_user https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dincident
תווית: column_label
מפתח API: element
השדות המותאמים אישית נמצאים באותה רמה כמו השדות הרגילים בתשובה של sys_user או incident.
העלאת קובץ מ-CCAI Platform אל ה-CRM
https://INSTANCE_URL.service-now.com/api/now/attachment/upload
שיטה: POST
פורמט נתוני הבקשה: property
מיקום נתוני התגובה: data.result
סוג: Multi-part form
סוג הקובץ המצורף: Attachment Url
כתובת URL של קובץ מצורף: download_link
פרמטרים: table below
דוגמה לבקשה:
{
file: FILE_DATA,
table_name: incident,
table_sys_id: RECORD_ID
}
שילוב מתאמי סוכנים (טפסים בהתאמה אישית)
בשלבים הבאים מוסבר איך להפעיל את מתאמי הנציגים ואת הפונקציה Click to Call במופע של ServiceNow.
התקנה והגדרה של OpenFrame
מנווטים אל הכול > אפליקציות מערכת > כל האפליקציות הזמינות > הכול.
מחפשים את OpenFrame.
מתקינים את OpenFrame.
אחרי ההתקנה, עוברים אל All > OpenFrame > Configurations (הכול > OpenFrame > הגדרות).
יוצרים הגדרה באמצעות כתובת URL. אם יש לכם כמה הגדרות במופע של ServiceNow, יכול להיות שלמשתמש לא תהיה גישה להגדרה שנוצרה לאחרונה. כדי לדעת באיזו הגדרה המשתמש שלכם משתמש, צריך לבדוק את הקבוצות ואת רשימת ההגדרות של OpenFrame.
מקלידים
sys_properties.listבחיפוש.עריכה של
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.מוסיפים את כתובת ה-URL החדשה לרשימת הערכים.
עריכה של
sn_openframe.cross.origin.access.מוסיפים את
autoplayלרשימת הערכים.
הפעלת חוויית המשתמש החדשה עבור משתמשים
מקלידים
sys_properties.listבסרגל הניווט ולוחצים על Enter.מגדירים את מאפיין המערכת
glide.ui.polaris.experienceלערך true.מגדירים את העדפת המשתמש
glide.ui.polaris.useלערך false עבור המערכת.מגדירים את העדפת המשתמש
glide.ui.polaris.useלערך true עבור משתמש. (אפשר ליצור שורה של העדפות משתמש).
עדכון מאפייני המערכת
מזינים
sys_properties.listבסרגל הניווט ולוחצים על Enter.עריכה של
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.מוסיפים את כתובת ה-URL לרשימת הערכים. אם יש כמה ערכים, צריך להפריד ביניהם באמצעות פסיקים.
עריכה של
sn_openframe.cross.origin.access.מוסיפים את הערך autoplay לרשימת הערכים.
עריכה של
glide.ui.polaris.experience.משנים ל-false, כי חלק מהתכונות לא פועלות אם ההגדרה הזו מופעלת.
הוספת 'קליק להתקשרות' לחלק העליון של הטופס
עוברים אל ממשק משתמש של המערכת > פעולות בממשק המשתמש.
בוחרים באפשרות יצירת פעולה חדשה.
בטופס שמוצג, בוחרים את הטבלה שאליה יתווסף הרכיב 'לחץ להתקשרות'.

בטפסים עם הפניה לאיש קשר או למשתמש, אפשר להשתמש ב-API
g_form.getReferenceכדי לגשת למספר הטלפון של המשתמש. בטבלאות מותאמות אישית, יכול להיות שיהיה הבדל בין מזהה ההפניה לבין המאפיינים שמתקבלים. התקשורת עם CCAI Platform תהיה זהה, ולכן המטען הייעודי (payload) ומבנה הנתונים חייבים להיות זהים לנתונים הבאים:function clickToDial() { var user = g_form.getReference('caller_id',function(res) { var phone = res.phone || res.mobile_phone; var payload = {"name": "clicktodial", "number": phone}; var data = {"payload": payload, "method": "openframe_communication" }; CustomEvent.fireAll("openframe_request", data); }); }כדי לאחזר את הערכים הרלוונטיים מטפסים עם מספר טלפון שאפשר להתקשר אליו, משתמשים ב-API
g_form.getValue. זוהי דוגמה מפעולת ממשק המשתמש של טבלת המשתמשים. בטבלאות בהתאמה אישית, שמות שדות הטופס עשויים להיות שונים. התקשורת עם פלטפורמת CCAI תהיה זהה, ולכן מטען הייעודי (payload) ומבנה הנתונים חייבים להיות זהים לנתונים הבאים:function clickToDial() { var phone = g_form.getValue('phone') || g_form.getValue('mobile_phone'); var payload = {"name": "clicktodial", "number": phone}; var context = {"payload": payload, "method" : "openframe_communication" }; CustomEvent.fireAll("openframe_request", context); }
הוספת קליק לשיחה לצד הפניות
צריך לערוך את לחצן השיחה לצד הפניות לאנשי קשר בתוך הטופס. לוחצים לחיצה ימנית על השדה ועוברים אל הגדרת מילון. למאפיינים מוסיפים את הערך
show_phoneאוshow_phone_customer_serviceלערךref_contributions.במאקרו של ממשק המשתמש, עורכים את
show_phoneואתshow_phone_customer_service.מחליפים את מה שכתוב בשדות הבאים:
הקודם:
var task = {"entity": p.attr('data-task-table'), "query" :"sys_id="+p.attr('data-task-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-task-value'),"label":p.attr('data-task-label')};
var company = {"entity": p.attr('data-company-table'),"query":"sys_id="+p.attr('data-company-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-company-value'),"label":p.attr('data-company-label')};
var caller = {"entity": p.attr('data-caller-table'),"query": "sys_id="+p.attr('data-caller-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-caller-value'),"label":p.attr('data-caller-label')};
var callContext = [];
callContext.push(task);
callContext.push(company);
callContext.push(caller);
var metaData = {"phoneNumber":p.attr('data-caller-phone'),"taskId":p.attr('data-task-id')};
var data = {"metaData":metaData , "data": callContext};
var payload = {"type": "OUTGOING_CALL", "data" : data};
var createInteractionData ={};
createInteractionData.interactionSysId = -1;
createInteractionData.direction = 'outbound';
createInteractionData.context_document = p.attr('data-task-id');
createInteractionData.context_table = p.attr('data-task-table');
createInteractionData.account = p.attr('data-company-id');
if(p.attr('data-caller-table') === 'customer_contact')
createInteractionData.contact = p.attr('data-caller-id');
createInteractionData.opened_for = p.attr('data-caller-id');
var ga = new GlideAjax('sn_openframe.OpenFrameAjaxUtility');
ga.addParam('sysparm_name', 'createInteractionWithPropertyCheck');
ga.addParam('context', JSON.stringify(createInteractionData));
ga.getXML(function(serverResponse) {
var result = serverResponse.responseXML.getElementsByTagName("result");
var output = JSON.parse(result[0].getAttribute("data"));
if(output.status == "success"){
var interaction = {"entity": "interaction", "query" :"sys_id="+output.fields.interactionSysId, "value":output.fields.number, "label":"Interaction", "display":false};
payload.data.data.push(interaction);
}
var context = {"payload": payload, "method" : "openframe_communication" };
jslog("context with interaction : "+ JSON.stringify(context));
CustomEvent.fireAll("openframe_request", context);
});
חדש:
var phone = p.attr('data-caller-phone')
var payload = {"name": "clicktodial", "number": phone};
var data = {"payload": payload, "method": "openframe_communication" };
CustomEvent.fireAll("openframe_request", data);
הגדרות CRM
השלבים הבאים מדגימים איך לחבר את ה-API ל-ServiceNow באמצעות פורטל CCAI Platform.
בפורטל של פלטפורמת CCAI, עוברים אל הגדרות > הגדרות למפתחים > CRM.
בקטע Agent Platform (פלטפורמת סוכנים), בוחרים באפשרות ServiceNow.
מזינים את פרטי הדומיין של ServiceNow בשדה ServiceNow Domain (דומיין ServiceNow). יכול להיות שזו תהיה דוגמה של מפתח או דוגמה של ספק לפי הצורך, אבל יש קורלציה ישירה לדוגמה והיא החלק הראשון של כתובת ה-URL בכתובת האינטרנט של פורטל ServiceNow:
https://{your instance}.servicenow.com.בשדה ServiceNow Cloud Selection, בוחרים באפשרות
Incidentכדי ליצור כרטיס בסיסי. אם בוחרים באפשרותCustom, מוצגות אפשרויות נוספות. אירועים הם הרחבות של טבלת המשימות; אובייקטים מותאמים אישית צריכים להיות הרחבות של אירועים.בשדות Authentication Credentials (פרטי אימות), מזינים את שם המשתמש והסיסמה.
אם בחרתם באפשרות
Incidentבשדה סוג הבחירה ב-Cloud, יוצגו השדות הבאים:- האפשרות Lookup Account Object כוללת שלושה שדות נפתחים:
Object Type,Phone Number lookup fieldsו-Phone number primary field.
- האפשרות Lookup Account Object כוללת שלושה שדות נפתחים:
אם בחרתם באפשרות
Customבשדה סוג הבחירה ב-Cloud, יוצגו השדות הבאים:- אובייקט של רשומת חיפוש:
- סוג אובייקט של רשומת בסיס: בוחרים בסוג טבלה
taskאוincident. - סוג אובייקט של רשומה: השדה הזה יתמלא בנתונים אם טבלת האירועים הורחבה, ואפשר לבחור אותו אם צריך.
- סוג אובייקט של רשומת בסיס: בוחרים בסוג טבלה
- האפשרות Lookup Account Object כוללת שלושה שדות נפתחים:
Object Type,Phone Number lookup fieldsו-Phone number primary field.
- אובייקט של רשומת חיפוש:
שדות מותאמים אישית של מזהה משתמש: מסמנים את התיבה הזו אם רוצים להפעיל שדות מותאמים אישית של חיפוש משתמשים בסשנים של Mobile SDK או Web SDK.
פורמט מספר טלפון: מאפשר לבחור את הפורמט שבו רוצים להציג את מספרי הטלפון.
קובץ מטא-נתונים של סשן: מסמנים את התיבה הזו כדי לצרף מטא-נתונים של סשן לרשומות ב-CRM.
לוחצים על שמירה כדי לשמור את הבחירות. אם סימנתם את התיבה Custom User ID Fields (שדות מותאמים אישית של User-ID), תהיה לכם אפשרות ליצור שדות מותאמים אישית לרשומות. פעולה זו תוסיף כרטיסיות של שדות מותאמים אישית לתחתית של כל תקרית ServiceNow, מתחת לקוד הפתרון ולקטע ההערות על הפתרון בדף.
שדות מותאמים אישית לרשומות
אלה שדות בהתאמה אישית שכבר נוצרו עבור מופע ServiceNow במעצב הטפסים. הוראות ליצירת שדות מותאמים אישית אחרים מופיעות במסמכי התיעוד של ServiceNow בקטע ServiceNow CRM Setup (הגדרת ServiceNow CRM), Add Custom Fields Manually (הוספת שדות מותאמים אישית באופן ידני).
| שדה | סוג | הגדרה |
|---|---|---|
u_ujet_custom_field_after_call_work |
String | משך זמן העבודה שבעקבות השיחה |
u_ujet_custom_field_call_duration |
String | משך שיחה |
u_ujet_custom_field_comm_id |
מספר שלם | מזהה השיחה או הצ'אט, בהתאם לסוג איש הקשר |
u_ujet_custom_field_rating |
מספר שלם | ציון שביעות רצון |
u_ujet_custom_field_email_via_web |
String | אימייל שנשלח מהאינטרנט |
u_ujet_custom_field_feedback |
String | משוב |
u_ujet_custom_field_from_phone_number |
String | מספר הטלפון של המתקשר |
u_ujet_custom_field_hold_duration |
String | משך ההמתנה הכולל |
u_ujet_custom_field_menu_path |
String | בחירת תפריט |
u_ujet_custom_field_queue_name |
String | שם התור |
u_ujet_custom_field_session_type |
String | סוג הסשן |
u_ujet_custom_field_verification |
נכון/לא נכון | אישור שהאימות הושלם |
u_ujet_custom_field_wait_time |
String | זמן המתנה כולל |
הגדרת OAuth
כדי להגדיר OAuth, צריך ליצור אפליקציית OAuth ב-ServiceNow. לאחר מכן, מזינים את פרטי הכניסה (מזהה לקוח OAuth וסוד לקוח OAuth) בקטע Developer Settings > CRM > Authentication Method.
יצירת אפליקציית OAuth ב-Service Now
בחשבון ServiceNow, עוברים אל All > System OAuth > Application Registry (הכול > מערכת OAuth > רישום אפליקציות).
יוצרים אפליקציית OAuth ובוחרים באפשרות Create an OAuth API endpoint for external clients (יצירת נקודת קצה של OAuth API ללקוחות חיצוניים).
מגדירים את השדות הבאים:
שם: מזינים שם ייחודי.
Client ID: מזהה הלקוח נוצר באופן אוטומטי על ידי שרת ה-OAuth של ServiceNow.
סוד הלקוח: זהו סוד הלקוח של אפליקציית OAuth. אפשר להשאיר את השדה ריק כדי שהמערכת תיצור את המזהה באופן אוטומטי.
משך החיים של טוקן הרענון: הזמן, בשניות, שבו טוקן הרענון יהיה תקף.
משך החיים של אסימון הגישה: משך הזמן, בשניות, שבו אסימון הגישה יהיה תקף.
כתובת URL להפניה אוטומטית: מזינים את כתובת ה-URL של הסביבה בתוספת ספריית המשנה. לדוגמה:
https://servicenow.yourcompany.co/v1/servicenow/oauth_callbackאכיפת הגבלת אסימון: מגבילה את השימוש באסימון הגישה לממשקי ה-API שמוגדרים במדיניות הגישה ל-REST API שמופיעה במסמכי התיעוד של ServiceNow. אם מבטלים את הסימון של האפשרות הזו, אפשר להשתמש בטוקן הגישה בממשקי REST API אחרים.
לוחצים על שליחה.
אחרי שיוצרים את האפליקציה, חוזרים לרשומה ומאחזרים את מזהה הלקוח ואת סוד הלקוח החדש שנוצר.
עדכון ההגדרות בהגדרות המפתח
עוברים אל הגדרות למפתחים > CRM.
חשוב לוודא שההגדרות הוזנו והוגדרו בהתאם לשלבים הקודמים.
בקטע 'שיטת אימות', לוחצים על OAuth.
מזינים את מזהה הלקוח ב-OAuth ואת סוד הלקוח ב-OAuth. (ראו שלב 5 למעלה).
לוחצים על שמירה.
לוחצים על link credentials (קישור פרטי הכניסה).
מיפוי שדות מותאם אישית לסוכן וירטואלי
אם משתמשים בסוכן וירטואלי, צריך להגדיר את השדה הזה במסך מיפוי שדות בהתאמה אישית. כך אפשר להעביר את המשתנים של הסוכן הווירטואלי ממטען היישום (payload) של סשן הסוכן הווירטואלי אל ServiceNow. שמות המשתנים יכולים להיות כל מחרוזת, תוויות השדות שמפורטות כאן הן דוגמה.
במסך Custom Field Mappings (מיפוי שדות בהתאמה אישית), מגדירים את החיבור בין המשתנים שנוצרו על ידי הגדרות המטען הייעודי (payload) שבהן השתמשתם בהגדרה הראשונית של הסוכן הווירטואלי לבין המשתנה הרלוונטי ב-ServiceNow.
| שם מיפוי השדות | תווית שדה ב-CRM | תווית של שדה נתונים בהתאמה אישית |
|---|---|---|
| משוב על נציג וירטואלי | ccaip_custom_field_incident_feedback |
va_feedback |
קביעת הגדרות אחרות
בתפריט הנפתח הגדרות תוכלו למצוא את ההגדרות האחרות שיאפשרו לכם לשלב את CCAI Platform בצורה נכונה במופע ServiceNow שלכם. בקישורים ברשימה הבאה אפשר לקבל מידע נוסף על הגדרת כל קטע.
- שפות ו-Messages
- משתמשים וצוותים
- Virtual Agent
- קמפיינים
- סקרים
- תורים
- שיחות
- Chat
- SMS
- Consumer Management
- הגדרות למפתחים
בדיקת פלטים
עכשיו אפשר לאמת את הפונקציונליות של תהליכי השיחה והצ'אט בלחיצה על הלחצנים הרלוונטיים בחלק העליון של המסך בפורטל של פלטפורמת CCAI. חשוב לוודא שחוסם החלונות הקופצים מושבת כשמריצים את הבדיקה הזו.
צריך לצפות ליצירת אירוע ב-ServiceNow, עם פרטי השיחה או הצ'אט שרשומים בקטע פעילויות של האירוע. הפעילות הזו צריכה להופיע כהערה לעבודה ולא כתגובה לאירוע, כדי שהלקוחות לא יוכלו לראות את הפעילות הזו בבק-אנד.
תיאור הפנייה יאוכלס אוטומטית בטקסט 'שיחה באמצעות פלטפורמת CCAI' או 'צ'אט באמצעות פלטפורמת CCAI', ויכול להיות שהסוכנים יצטרכו לעדכן אותו.
אחרי שסיימתם את השיחה או הצ'אט ואתם מרוצים מהתוצאות, אתם יכולים להזין קוד ופתרון (אם שדות הקוד והפתרון של ServiceNow הוגדרו), ואז לסגור את הפנייה.
כדי לוודא שהכרטיסייה נסגרה, יכול להיות שתצטרכו ללחוץ על back
לחצן הניווט בדפדפן. זהו אופן פעולה צפוי במופע של ServiceNow. אחרי שהבעיה נפתרת, הפנייה נסגרת באופן אוטומטי והמערכת מעבירה אתכם לדף של רשומת לקוח.