ServiceNow

פלטפורמת Contact Center AI ‏ (CCAI Platform) מספקת אינטגרציה עם ServiceNow CRM.

הגדרות למפתחים ב-ServiceNow

דרישות מינימליות מומלצות לגבי גרסת ServiceNow: Tokyo patch 1

הגדרת משתמש עם אימות בסיסי

סביר להניח שבחשבון האדמין ב-ServiceNow מופעל אימות דו-שלבי שמשויך למשתמש הזה. לכן, אי אפשר להשתמש בו כדי לקבל גישת אדמין בפלטפורמת CCAI. לשם כך, צריך ליצור חשבון משתמש ב-ServiceNow.

יוצרים משתמש בסיסי עם פרטי כניסה:

  1. עוברים אל משתמש > חדש.

  2. ממלאים את הפרטים ובוחרים באפשרות 'גישה לשירותי אינטרנט בלבד'.

  3. חשוב לרשום לפניכם את מזהה המשתמש והסיסמה.

התפקידים הנדרשים ב-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 קווים אופקיים) בפינה הימנית העליונה בתצוגת האובייקט שרוצים לשנות. אפשר לעשות את זה בתצוגת השירות העצמי או בתצוגת ברירת המחדל.

  1. בתפריט, בוחרים באפשרות הגדרה > עיצוב טופס כדי לפתוח את הכלי לעיצוב טפסים.

  2. בעמודה הימנית, בוחרים בכרטיסייה סוגי שדות.

  3. גוררים את סוג השדה המותאם אישית שרוצים להוסיף.

  4. אחרי שגוררים את סוג השדה לקטע הרצוי, לוחצים על סמל גלגל השיניים כדי לראות את ההגדרות.

  5. בתוך החלון, משנים את התווית ורושמים את השם. השם הוא מה שמשמש אתכם בהגדרות האפליקציה של פלטפורמת CCAI.

  6. בפינה השמאלית העליונה של המסך, לוחצים על שמירה.

מיפוי נתוני סשנים למערכת ה-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

  1. מנווטים אל הכול > אפליקציות מערכת > כל האפליקציות הזמינות > הכול.

  2. מחפשים את OpenFrame.

  3. מתקינים את OpenFrame.

  4. אחרי ההתקנה, עוברים אל All > OpenFrame > Configurations (הכול > OpenFrame > הגדרות).

  5. יוצרים הגדרה באמצעות כתובת URL. אם יש לכם כמה הגדרות במופע של ServiceNow, יכול להיות שלמשתמש לא תהיה גישה להגדרה שנוצרה לאחרונה. כדי לדעת באיזו הגדרה המשתמש שלכם משתמש, צריך לבדוק את הקבוצות ואת רשימת ההגדרות של OpenFrame.

  6. מקלידים sys_properties.list בחיפוש.

  7. עריכה של glide.ui.concourse.onmessage_enforce_same_origin_whitelist.

  8. מוסיפים את כתובת ה-URL החדשה לרשימת הערכים.

  9. עריכה של sn_openframe.cross.origin.access.

  10. מוסיפים את autoplay לרשימת הערכים.

הפעלת חוויית המשתמש החדשה עבור משתמשים

  1. מקלידים sys_properties.list בסרגל הניווט ולוחצים על Enter.

  2. מגדירים את מאפיין המערכת glide.ui.polaris.experience לערך true.

  3. מגדירים את העדפת המשתמש glide.ui.polaris.use לערך false עבור המערכת.

  4. מגדירים את העדפת המשתמש glide.ui.polaris.use לערך true עבור משתמש. (אפשר ליצור שורה של העדפות משתמש).

עדכון מאפייני המערכת

  1. מזינים sys_properties.list בסרגל הניווט ולוחצים על Enter.

  2. עריכה של glide.ui.concourse.onmessage_enforce_same_origin_whitelist.

  3. מוסיפים את כתובת ה-URL לרשימת הערכים. אם יש כמה ערכים, צריך להפריד ביניהם באמצעות פסיקים.

  4. עריכה של sn_openframe.cross.origin.access.

  5. מוסיפים את הערך autoplay לרשימת הערכים.

  6. עריכה של glide.ui.polaris.experience.

  7. משנים ל-false, כי חלק מהתכונות לא פועלות אם ההגדרה הזו מופעלת.

הוספת 'קליק להתקשרות' לחלק העליון של הטופס

  1. עוברים אל ממשק משתמש של המערכת > פעולות בממשק המשתמש.

  2. בוחרים באפשרות יצירת פעולה חדשה.

  3. בטופס שמוצג, בוחרים את הטבלה שאליה יתווסף הרכיב 'לחץ להתקשרות'.

  4. בטפסים עם הפניה לאיש קשר או למשתמש, אפשר להשתמש ב-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);
      });
    }
    
  5. כדי לאחזר את הערכים הרלוונטיים מטפסים עם מספר טלפון שאפשר להתקשר אליו, משתמשים ב-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);
    }
    

הוספת קליק לשיחה לצד הפניות

  1. צריך לערוך את לחצן השיחה לצד הפניות לאנשי קשר בתוך הטופס. לוחצים לחיצה ימנית על השדה ועוברים אל הגדרת מילון. למאפיינים מוסיפים את הערך show_phone או show_phone_customer_service לערך ref_contributions.

  2. במאקרו של ממשק המשתמש, עורכים את show_phone ואת show_phone_customer_service.

  3. מחליפים את מה שכתוב בשדות הבאים:

הקודם:

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.

  1. בפורטל של פלטפורמת CCAI, עוברים אל הגדרות > הגדרות למפתחים > CRM.

  2. בקטע Agent Platform (פלטפורמת סוכנים), בוחרים באפשרות ServiceNow.

  3. מזינים את פרטי הדומיין של ServiceNow בשדה ServiceNow Domain (דומיין ServiceNow). יכול להיות שזו תהיה דוגמה של מפתח או דוגמה של ספק לפי הצורך, אבל יש קורלציה ישירה לדוגמה והיא החלק הראשון של כתובת ה-URL בכתובת האינטרנט של פורטל ServiceNow: ‏ https://{your instance}.servicenow.com.

  4. בשדה ServiceNow Cloud Selection, בוחרים באפשרות Incident כדי ליצור כרטיס בסיסי. אם בוחרים באפשרות Custom, מוצגות אפשרויות נוספות. אירועים הם הרחבות של טבלת המשימות; אובייקטים מותאמים אישית צריכים להיות הרחבות של אירועים.

  5. בשדות Authentication Credentials (פרטי אימות), מזינים את שם המשתמש והסיסמה.

  6. אם בחרתם באפשרות Incident בשדה סוג הבחירה ב-Cloud, יוצגו השדות הבאים:

    • האפשרות Lookup Account Object כוללת שלושה שדות נפתחים: Object Type,‏ Phone Number lookup fields ו-Phone number primary field.
  7. אם בחרתם באפשרות Custom בשדה סוג הבחירה ב-Cloud, יוצגו השדות הבאים:

    • אובייקט של רשומת חיפוש:
      • סוג אובייקט של רשומת בסיס: בוחרים בסוג טבלה task או incident.
      • סוג אובייקט של רשומה: השדה הזה יתמלא בנתונים אם טבלת האירועים הורחבה, ואפשר לבחור אותו אם צריך.
    • האפשרות Lookup Account Object כוללת שלושה שדות נפתחים: Object Type,‏ Phone Number lookup fields ו-Phone number primary field.
  8. שדות מותאמים אישית של מזהה משתמש: מסמנים את התיבה הזו אם רוצים להפעיל שדות מותאמים אישית של חיפוש משתמשים בסשנים של Mobile SDK או Web SDK.

  9. פורמט מספר טלפון: מאפשר לבחור את הפורמט שבו רוצים להציג את מספרי הטלפון.

  10. קובץ מטא-נתונים של סשן: מסמנים את התיבה הזו כדי לצרף מטא-נתונים של סשן לרשומות ב-CRM.

  11. לוחצים על שמירה כדי לשמור את הבחירות. אם סימנתם את התיבה 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

  1. בחשבון ServiceNow, עוברים אל All > System OAuth > Application Registry (הכול > מערכת OAuth > רישום אפליקציות).

  2. יוצרים אפליקציית OAuth ובוחרים באפשרות Create an OAuth API endpoint for external clients (יצירת נקודת קצה של OAuth API ללקוחות חיצוניים).

  3. מגדירים את השדות הבאים:

    • שם: מזינים שם ייחודי.

    • Client ID: מזהה הלקוח נוצר באופן אוטומטי על ידי שרת ה-OAuth של ServiceNow.

    • סוד הלקוח: זהו סוד הלקוח של אפליקציית OAuth. אפשר להשאיר את השדה ריק כדי שהמערכת תיצור את המזהה באופן אוטומטי.

    • משך החיים של טוקן הרענון: הזמן, בשניות, שבו טוקן הרענון יהיה תקף.

    • משך החיים של אסימון הגישה: משך הזמן, בשניות, שבו אסימון הגישה יהיה תקף.

    • כתובת URL להפניה אוטומטית: מזינים את כתובת ה-URL של הסביבה בתוספת ספריית המשנה. לדוגמה: https://servicenow.yourcompany.co/v1/servicenow/oauth_callback

    • אכיפת הגבלת אסימון: מגבילה את השימוש באסימון הגישה לממשקי ה-API שמוגדרים במדיניות הגישה ל-REST API שמופיעה במסמכי התיעוד של ServiceNow. אם מבטלים את הסימון של האפשרות הזו, אפשר להשתמש בטוקן הגישה בממשקי REST API אחרים.

  4. לוחצים על שליחה.

  5. אחרי שיוצרים את האפליקציה, חוזרים לרשומה ומאחזרים את מזהה הלקוח ואת סוד הלקוח החדש שנוצר.

עדכון ההגדרות בהגדרות המפתח

  1. עוברים אל הגדרות למפתחים > CRM.

  2. חשוב לוודא שההגדרות הוזנו והוגדרו בהתאם לשלבים הקודמים.

  3. בקטע 'שיטת אימות', לוחצים על OAuth.

  4. מזינים את מזהה הלקוח ב-OAuth ואת סוד הלקוח ב-OAuth. (ראו שלב 5 למעלה).

  5. לוחצים על שמירה.

  6. לוחצים על link credentials (קישור פרטי הכניסה).

מיפוי שדות מותאם אישית לסוכן וירטואלי

אם משתמשים בסוכן וירטואלי, צריך להגדיר את השדה הזה במסך מיפוי שדות בהתאמה אישית. כך אפשר להעביר את המשתנים של הסוכן הווירטואלי ממטען היישום (payload) של סשן הסוכן הווירטואלי אל ServiceNow. שמות המשתנים יכולים להיות כל מחרוזת, תוויות השדות שמפורטות כאן הן דוגמה.

במסך Custom Field Mappings (מיפוי שדות בהתאמה אישית), מגדירים את החיבור בין המשתנים שנוצרו על ידי הגדרות המטען הייעודי (payload) שבהן השתמשתם בהגדרה הראשונית של הסוכן הווירטואלי לבין המשתנה הרלוונטי ב-ServiceNow.

שם מיפוי השדות תווית שדה ב-CRM תווית של שדה נתונים בהתאמה אישית
משוב על נציג וירטואלי ccaip_custom_field_incident_feedback va_feedback

קביעת הגדרות אחרות

בתפריט הנפתח הגדרות תוכלו למצוא את ההגדרות האחרות שיאפשרו לכם לשלב את CCAI Platform בצורה נכונה במופע ServiceNow שלכם. בקישורים ברשימה הבאה אפשר לקבל מידע נוסף על הגדרת כל קטע.

בדיקת פלטים

עכשיו אפשר לאמת את הפונקציונליות של תהליכי השיחה והצ'אט בלחיצה על הלחצנים הרלוונטיים בחלק העליון של המסך בפורטל של פלטפורמת CCAI. חשוב לוודא שחוסם החלונות הקופצים מושבת כשמריצים את הבדיקה הזו.

צריך לצפות ליצירת אירוע ב-ServiceNow, עם פרטי השיחה או הצ'אט שרשומים בקטע פעילויות של האירוע. הפעילות הזו צריכה להופיע כהערה לעבודה ולא כתגובה לאירוע, כדי שהלקוחות לא יוכלו לראות את הפעילות הזו בבק-אנד.

תיאור הפנייה יאוכלס אוטומטית בטקסט 'שיחה באמצעות פלטפורמת CCAI' או 'צ'אט באמצעות פלטפורמת CCAI', ויכול להיות שהסוכנים יצטרכו לעדכן אותו.

אחרי שסיימתם את השיחה או הצ'אט ואתם מרוצים מהתוצאות, אתם יכולים להזין קוד ופתרון (אם שדות הקוד והפתרון של ServiceNow הוגדרו), ואז לסגור את הפנייה.

כדי לוודא שהכרטיסייה נסגרה, יכול להיות שתצטרכו ללחוץ על back לחצן הניווט בדפדפן. זהו אופן פעולה צפוי במופע של ServiceNow. אחרי שהבעיה נפתרת, הפנייה נסגרת באופן אוטומטי והמערכת מעבירה אתכם לדף של רשומת לקוח.