שילוב Webex Contact Center עם ServiceNow (גירסה 1—מדור קודם)
דרישות מוקדמות
מחבר CRM פועל על בסיס גירסת הווידג'ט שצוינה בפריסת שולחן העבודה JSON. חשוב מאוד לוודא שגרסת הווידג'ט בפריסת שולחן העבודה מעודכנת. נכון לנובמבר 2025, גרסת הווידג'ט האחרונה היא 5.0.0 (V5).
מנהלי מערכת צפויים להבטיח שכל פריסות שולחן העבודה עבור מחבר CRM זה ישתמשו בגרסת יישומון זו. אם הפריסה אינה מתעדכנת כדי להשתמש בגירסה העדכנית ביותר, הפונקציונליות לא תהיה נתמכת עוד וייתכן שתפסיק לפעול כראוי.
לפני שתשלב Webex Contact Center עם מסוף ה- CRM של ServiceNow, ודא שיש לך את הפריטים הבאים:
-
גישה ל-Webex Contact Center.
-
גישת מנהל מערכת למרכז הבקרה ב- https://admin.webex.com ולפורטל הניהול Webex Contact Center. כתובות האתרים של פורטל הניהול הן ספציפיות לאזור שלך.
-
סוכן עם גישה לשולחן העבודה. כתובת האתר של שולחן העבודה היא ספציפית לאזור שלך.
-
גישת סוכן לתחום הבא שנוסף לרשימת המורשים של מדיניות אבטחת התוכן:
-
*.service-now.com
לקבלת מידע נוסף אודות אופן ההגדרה של רשימת המותרים, עיין במאמר הגדרות אבטחה עבור Webex Contact Center.
-
-
חשבון פורטל מפתחים של ServiceNow. כדי ליצור חשבון, עבור אל פורטל המפתחים של ServiceNow בכתובת https://developer.servicenow.com/dev.do ולחץ על הירשם והתחל לבנות.
-
גישה לקבצים הבאים ב- https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ערכת עדכון ServiceNow (XML)
-
פריסת שולחן העבודה של ServiceNow Contact Center (JSON)
-
- מהדורות ServiceNow ש- Webex Contact Center תומך בהן הן ונקובר, יוטה, טוקיו, וושינגטון וקסאנאדו. לקבלת מידע נוסף, ראה Webex Contact Center שילוב עם ServiceNow.
בצע אחת משתי השיטות הבאות:
עבור מופעים של מפתחים, מומלץ לבצע את השלבים תחת המדריך למופע מפתחים.
אם בבעלותך מופע ברשיון ארגוני, פעל בהתאם להנחיות עבור מופעים בעלי רשיון ארגוני.
איננו ממליצים לשלב את האפליקציה בעלת רשיון ארגוני עם מופעי ארגז חול של מפתחים.
הסעיפים הבאים מתארים את השלבים להתקנת מחבר ServiceNow עבור מופעי מפתחים.
| 1 |
היכנס לחשבון פורטל המפתחים של ServiceNow ופתח את מסוף הניהול . |
| 2 |
באזור המופע שלי בתפריט חשבון , לחץ על התחל לבנות.
|
| 3 |
במופע המפתח שלך, מהשדה נווט סינון בפינה השמאלית העליונה של החלון, נווט אל תוספים.
|
| 4 |
חפש את תוסף Openframe בעל הכותרת Openframe. ייתכן שיהיה עליך לגלול ברשימה.
|
| 5 |
לחץ על התקן כדי להתקין את תוסף Openframe. |
| 6 |
בתיבת הדו-שיח Activate Plugin , לחץ על Activate.
|
| 7 |
לאחר השלמת הפעלת התוסף, לחץ על סגור וטען מחדש טופס בתיבת הדו-שיח הפעלת התוסף .
|
| 8 |
כדי לוודא את הפעלת התוסף, מהשדה Filter navigator בפינה השמאלית העליונה של החלון, נווט אל OpenFrame. |
| 9 |
לחץ על תצורות וודא שהתוסף OpenFrame מופיע ברשימה תצורות OpenFrame.
|
| 1 |
הורד את קובץ עדכון המערכת האחרון Set XML הזמין במאגר github במיקום זה : https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. שם קובץ: webexcc-servicenow-update-setV(X).XML
|
| 2 |
במופע ServiceNow שלך, מהשדה נווט סינון בפינה השמאלית העליונה של החלון, נווט אל .
|
| 3 |
לחץ על הקישור ייבוא ערכת עדכונים מ- XML .
|
| 4 |
לחץ על בחר קובץ, בחר את הקובץ System Update Set XML ולאחר מכן לחץ על העלה.
ערכת העדכונים מופיעה ברשימה ערכות עדכון מאוחזרות ונמצאת במצב טעון .
|
| 5 |
מהרשימה ערכות עדכון מאוחזרות, לחץ על שם הקובץ Update Set (קישור) כדי לפתוח את Update Set.
|
| 6 |
בפינה השמאלית העליונה של החלון, לחץ על Preview Update Set כדי לבדוק אם קיימות בעיות בערכת העדכונים.
|
| 7 |
לחץ על סגור בתיבת הדו-שיח Update Set Preview לאחר השלמת התצוגה המקדימה.
|
| 8 |
לחץ על Commit Update Set.
|
| 9 |
לחץ על סגור בתיבת הדו-שיח Update Set Commit לאחר השלמת פעולת ה- Commit של Update Set.
|
| 1 |
בשדה נווט סינון בפינה השמאלית העליונה של החלון, הקלד
|
| 2 |
בדף מאפייני מערכת, מיין את המאפיינים לפי תאריך עדכון. ודא שאתה יכול לראות את המאפיינים הבאים Webex Contact Center:
|
| 3 |
לחץ על agentdesktop_url כדי לפתוח את הדף System Property agentdesktop_url . |
| 4 |
בשדה ערך , הזן את כתובת ה-URL של שולחן העבודה Webex Contact Center בהתאם לאזור הפעולה.
|
| 5 |
לחץ על עדכן כדי לשמור את השינויים. |
| 6 |
(אופציונלי) כדי לשנות את שם טבלת הפעילות, ערוך את מאפייני webexccactivitytable כנדרש. בדף מאפייני מערכת, לחץ על webexccactivitytable. שנה את השדה ערך כנדרש.
|
| 7 |
(אופציונלי) הוסף קבוצות משתמשים בדרכים הבאות:
|
| 1 |
משדה Filter navigator , נווט אל .
|
| 2 |
נְקִישָׁה חָדָשׁ.
|
| 3 |
הזן את המאפיינים הבאים עבור כתובת ה-URL:
|
| 4 |
משמאל לשדה כתובת האתר , לחץ על לחצן נעל והוסף
|
| 5 |
(אופציונלי) בחר את קבוצות המשתמשים / סוכנים כדי להקצות את התצורה.
|
| 6 |
לחץ על שלח. כתובת ה-URL מופיעה כקישור.
|
| 7 |
לפני שתנסה להשתמש בטלפון OpenFrame, הקפד להעלות את קובץ ה- JSON של פריסת שולחן העבודה המותאמת אישית של ServiceNow לפורטל הניהול Webex Contact Center. לקבלת מידע נוסף, ראה הגדרת פריסת שולחן העבודה של ServiceNow ב- Webex Contact Center. |
| 1 |
הורד את פריסת שולחן העבודה עבור ServiceNow מ - https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.
|
| 2 |
עדכן את המאפיינים בקובץ פריסת שולחן העבודה, במידת הצורך. |
| 3 |
עבור אל פורטל הניהול Webex Contact Center. |
| 4 |
בסרגל הניווט של פורטל הניהול, בחר שולחן עבודה.
|
| 5 |
נְקִישָׁה פריסה חדשה והזן את הפרטים עבור פריסת שולחן העבודה. |
| 6 |
העלה את קובץ JSON של פריסת שולחן העבודה של ServiceNow. |
| 7 |
לחץ על שמור כדי לשמור את התצורה. כעת באפשרותך להפעיל את שולחן העבודה Webex Contact Center בתוך מסוף ServiceNow. |
| 8 |
משדה נווט המסננים, נווט אל של פעולות שירות.
|
הסעיפים הבאים מתארים את השלבים להתקנת מחבר ServiceNow עבור מופעים ארגוניים מורשים.
| 1 |
היכנס לחשבון פורטל המפתחים של ServiceNow ופתח את מסוף הניהול . |
| 2 |
באזור המופע שלי בתפריט חשבון , לחץ על התחל לבנות.
|
| 3 |
במופע המפתח שלך, מהשדה נווט סינון בפינה השמאלית העליונה של החלון, נווט אל תוספים.
|
| 4 |
חפש את תוסף Openframe בעל הכותרת Openframe. ייתכן שיהיה עליך לגלול ברשימה.
|
| 5 |
לחץ על התקן כדי להתקין את תוסף Openframe. |
| 6 |
בתיבת הדו-שיח Activate Plugin , לחץ על Activate.
|
| 7 |
לאחר השלמת הפעלת התוסף, לחץ על סגור וטען מחדש טופס בתיבת הדו-שיח הפעלת התוסף .
|
| 8 |
כדי לוודא את הפעלת התוסף, מהשדה Filter navigator בפינה השמאלית העליונה של החלון, נווט אל OpenFrame. |
| 9 |
לחץ על תצורות וודא שהתוסף OpenFrame מופיע ברשימה תצורות OpenFrame.
|
מופעים בעלי רשיונות ארגוניים יכולים להתקין את היישום Webex Contact Center ישירות מחנות ServiceNow.
|
הורד והתקן את חבילת Webex Contact Center מחנות ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947.
|
| 1 |
בשדה Filter navigator בפינה השמאלית העליונה של החלון, הזן
|
| 2 |
בדף מאפייני מערכת, מיין את המאפיינים לפי תאריך עדכון. ודא שאתה יכול לראות את המאפיינים הבאים Webex Contact Center:
|
| 3 |
לחץ על agentdesktop_url כדי לפתוח את הדף System Property agentdesktop_url . |
| 4 |
בשדה ערך , הזן את כתובת ה-URL של שולחן העבודה Webex Contact Center בהתאם לאזור הפעולה.
|
| 5 |
לחץ על עדכן כדי לשמור את השינויים. |
| 6 |
(אופציונלי) כדי לשנות את שם טבלת הפעילות, ערוך את המאפיינים x_caci_webexcc.webexccactivitytable כנדרש.
|
| 7 |
(אופציונלי) הוסף קבוצות משתמשים בדרכים הבאות:
|
| 1 |
משדה Filter navigator , נווט אל .
|
| 2 |
נְקִישָׁה חָדָשׁ.
|
| 3 |
הזן את המאפיינים הבאים עבור כתובת ה-URL:
|
| 4 |
משמאל לשדה כתובת האתר , לחץ על לחצן נעל והוסף
|
| 5 |
(אופציונלי) בחר את קבוצות המשתמשים / סוכנים כדי להקצות את התצורה.
|
| 6 |
לחץ על שלח. כתובת ה-URL מופיעה כקישור.
|
| 7 |
משדה נווט המסננים, נווט אל של פעולות שירות.
|
| 8 |
(אופציונלי) ברשימה קבוצת משתמשים, העבר את קבוצות המשתמשים שיכולות לגשת לשולחן העבודה Webex Contact Center מזמין לנבחר. |
| 9 |
לפני שתנסה להשתמש בטלפון OpenFrame, הקפד להעלות את קובץ JSON של פריסת שולחן העבודה המותאמת אישית של ServiceNow לפורטל הניהול Webex Contact Center. לקבלת מידע נוסף, ראה הגדרת פריסת שולחן העבודה של ServiceNow ב- Webex Contact Center. |
| 1 |
הורד את פריסת שולחן העבודה עבור ServiceNow מ - https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.
|
| 2 |
עדכן את המאפיינים בקובץ פריסת שולחן העבודה, במידת הצורך. |
| 3 |
עבור אל פורטל הניהול Webex Contact Center. |
| 4 |
בסרגל הניווט של פורטל הניהול, בחר .
|
| 5 |
נְקִישָׁה פריסה חדשה והזן את הפרטים עבור פריסת שולחן העבודה. |
| 6 |
העלה את קובץ JSON של פריסת שולחן העבודה של ServiceNow. |
| 7 |
לחץ על שמור כדי לשמור את התצורה. כעת באפשרותך להפעיל את שולחן העבודה Webex Contact Center בתוך מסוף ServiceNow. |
| 8 |
משדה נווט המסננים, נווט אל של פעולות שירות.
|
| 1 |
משדה נווט המסננים, נווט אל אירועים> תקרית פתוחה . |
| 2 |
לחץ לחיצה ימנית על שדה המתקשר ולחץ על הגדר מילון.
|
| 3 |
הוסף תכונות המופרדות באמצעות פסיקים
כעת תוכל להתחיל להשתמש בשולחן העבודה Webex Contact Center בתוך מסוף ServiceNow. |
| 4 |
משדה נווט המסננים, נווט אל של פעולות שירות.
|
- אנו תומכים בכניסה ל- Agent Desktop באמצעות WebRTC עבור מחברי Salesforce (SFDC) ו- Microsoft Dynamics (MS Dynamics) בלבד.
- בשלב זה, תכונה זו ישימה לסוכנים בלבד.
Agent Desktop במסוף ServiceNow
לפני שאתה מבצע שיחות חיוג, ודא שאתה עושה את הפעולות הבאות:
-
צור את נקודת הכניסה החיצונית והגדר אסטרטגיית נקודת כניסה לחיוג.
-
אפשר ANI חיוג עבור פרופיל הסוכן.
-
הגדר את ה-ANI החיוג למיפוי מספר חיוג לנקודת כניסה.
למידע נוסף, ראה את אספקה פרק של Cisco Webex Contact Center מדריך התקנה וניהול.
משדה נווט המסננים, נווט אל של פעולות שירות.
לקבלת מידע אודות אופן השימוש בשולחן העבודה, עיין בעזרה של Agent Tab בעזרה Webex Contact Center.
סקירה כללית
מאמר זה מכסה מספר דרכים להתאמה אישית של הכללים העסקיים שלך עבור מחבר ServiceNow CRM. הוא מפרט כיצד באפשרותך להתאים אישית את מקרי השימוש בהתבסס על כללים עסקיים ספציפיים ל- ServiceNow.
הלקוח חייב לנהל באופן עצמאי מקרי שימוש אלה ב- ServiceNow. התצורה היא ספציפית ל- ServiceNow ולא Webex Contact Center תוכנה או מומחיות.
זהו תיעוד התייחסות כדי לסייע בשינוי כללים עסקיים. מפתחי ServiceNow ייצרו וינהלו את הכללים העסקיים ויספקו תמיכה.
Cisco מספק תיעוד לדוגמה בלבד.
הסעיפים הבאים מספקים פרטים אודות אופן ההגדרה, ההפעלה והניהול של רכיב widget מסוג פעולות עבור מופעים של מפתחים וארגונים.
Commit the Update Set for Actions Widget
עבור מופעי הארגון המורשים, התקן את היישום Webex Contact Center העדכני ביותר מחנות ServiceNow.
כדי להגדיר את הווידג'ט פעולות עבור מופעי המפתחים, הורד את הקובץ האחרון System Update Set XML הזמין במאגר github במיקום זה: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. שם הקובץ הוא webexcc-servicenow-update-setv7-1-ActionsWidget.XML. כדי לבצע פעולת Commit לערכת העדכונים עבור רכיב widget מסוג פעולות, ראה שלבים 2 עד 9 ב-Commit the Update Set.
הפעל רכיב widget מסוג פעולות
השתמש במאפיין isWidgetDisplayEnabled כדי להפעיל את רכיב widget מסוג פעולות. אין לשנות את הערך של מאפיין זה במקטע חסר הראש של פריסת שולחן העבודה המותאמת אישית. המאפיין מוגדר תמיד כ- false במקטע חסר הראש של פריסת שולחן העבודה המותאמת אישית. יש לעדכן את ערך המאפיין רק באזור החלונית של פריסת שולחן העבודה המותאמת אישית.
לאחר שתפעיל את רכיב widget מסוג פעולות בפריסת שולחן העבודה המותאמת אישית, תוכל לבצע את הפעולות הבאות:
- ניהול רשומות פעילות - לחץ על הצג/ערוך רשומת פעילות כדי להציג את רשימת רשומות הפעילות המשויכות למתקשר.
- שיוך אובייקטי CRM - לחץ על שייך לרשומות פעילות כדי להוסיף אובייקטי CRM כגון סוג שיחה (נכנסת או יוצאת), אובייקט שיחה, הערות שיחה וכן הלאה לרשומת הפעילות.
- ניהול אירועים – לחץ על צור אירוע. אירוע חדש נוצר כאשר פרטי המתקשר מאוכלסים מראש. באפשרותך לבצע את העדכונים הדרושים לאירוע. באפשרותך לבחור לשנות את סוג הרשומה מאירוע לאירוע, מודול משאבי אנוש וכן הלאה בהתאם לדרישות שלך. לשינוי סוג הרשומה, שנה את הערך של המאפיין typeOfRecord בתצורת רכיב widget מסוג פעולות. לדוגמה:
{ "comp": "md-tab-panel", "תכונות": { "slot": "panel", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions !", "maximizeAreaName": "app-maximize-area" } } ] } - הוספת הערות לשיחה חיה – באפשרותך ללכוד מידע נוסף אודות השיחה באזור הטקסט ולסיים את השיחה. באפשרותך לראות הערות אלה שנוספו כהערות שיחה ברשומת הפעילות.
שינוי קוד ב- ServiceNow
קובץ ה-script כולל שינויים-
עבור אל מסנן נווט וחפש
הסקריפט כולל
.בחר את קובץ ה - Script הנכלל תחת ממשק המשתמש של המערכת.
-
סנן את השם וחפש
propUtils
. -
שנה את השיטה
משתמשGetSysId
בתסריט.קורנט:
UserGetSysId: פונקציה () { var opened_for; var user = חדש GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = חדש GlideRecord('אינטראקציה'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'טלפון'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); להחזיר sysid; },קוד לדוגמה חדש לאירוע:
UserGetSysId: פונקציה () { var opened_for; //שינויים הקשורים לאירוע var sysidlist = {}; var user = חדש GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = חדש GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='שיחה שהתקבלה מ- '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } } var grInt = חדש GlideRecordSecure('אינטראקציה'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'טלפון'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; להחזיר JSON.stringify(sysidlist); },
-
עבור אל מסנן נווט וחפש
דף ממשק משתמש.בחר דפי ממשק משתמש תחת ממשק משתמש מערכת.
-
סנן את השם וחפש
AgentDesktop
. -
שנה את
Screenpop
פונקציה בסקריפט לקוח.פונקציה נוכחית:
פונקציית פופ מסך screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('שדה', 'טלפון'); gaout.addParam('ערך', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ ישות: 'אינטראקציה', שאילתה: 'sys_id='+sysid });קוד לדוגמה לאירוע:
פונקציית פופ מסך screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('שדה', 'טלפון'); gaout.addParam('ערך', callerani); gaout.getXMLWait(); // עבור שינוי הקשור לאירוע var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ ישות: 'incident', שאילתה: 'sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
אם פרטי המתקשר קיימים ב- CRM, וכבר נפתח אירוע חדש עם איש קשר זה, היישום פותח את אירוע ההתקדמות
אם פרטי המתקשר אינם קיימים ב- CRM, היישום פותח אירוע חדש
אם פרטי המתקשר קיימים ב- CRM, היישום פותח אירוע חדש עם פרטים שמולאו מראש
סקירה כללית
מקרה שימוש זה מפרט את התהליך להוספת עמודה נוספת לטבלת ServiceNow - webexcc_imp_activity ויצירת sn_openframe_phone_log עם התקנת Webex CC עבור מחבר ה- CRM של ServiceNow.
כברירת מחדל, הטבלה מכילה שדות מערכת וערכים מסוימים מוכנים לשימוש.
באפשרותך ליצור משתנים ספציפיים יותר לעסק (משתני CAD) בתוך מעצב WebexCC Flow ולהוסיף את משתני CAD בתוך יומן פעילות השיחות של ServiceNow POST, וכן לשמור זאת על נתוני טבלת פעילות השיחות POST.
זהו תיעוד עזר בלבד - ומראה כיצד לעשות זאת עבור משתנה CAD לדוגמה בשם שם לקוח המאחסן את שם הלקוח בתוך IVR ומפרסם זאת ב- ServiceNow.
צפוי שמפתחי Partner+customer ServiceNow יגדירו וינהלו תצורה זו מכיוון שהיא התאמה אישית למחבר הקיים.
Cisco מספק רק את הטכניקות כיצד להתאים אישית ולהרחיב את המחבר.
נכון למאמר זה, צוות Cisco אימת תמיכה בהוספת משתנה CAD ליומן הפעילות ולטבלת הפעילות באמצעות הטכניקה המתוארת להלן:
הוספת עמודה לפעילות WebexCC IMP
-
ערוך את הטבלה בגירסת המפתחים של ServiceNow.

-
עבור אל נווט המסנן וחפש סטודיו.

בחר
Webex Contact Center

או



-
בחר בלחצן
פעילות WebexCC IMP
שולחן
-
הוסף עמודה חדשה, לדוגמה,
שם לקוח


הוספת עמודה ליומן הטלפון
-
ערוך את טבלת יומן הרישום של הטלפון.


-
הוסף עמודה חדשה, לדוגמה,
שם לקוח
.

מפת המרת פעילות WebexCC

הוסף עמודה חדשה, לדוגמה, שם לקוח
מיפוי שדות.


התאמה אישית של עמודות רשימה

כפי שהשירות כעת ממליץ, שנה את פעולת הבחירה מיצירה להתעלמות.


קביעת תצורה של רשימת יומני רישום של טלפונים

עבור אל קובץ Script כלול
הוספת שורה אחת בלבד webexcc.u_customername=actInfo.CustomerName
כדי propUtils.



ראה את השורה: webexcc.u_customername=actInfo.CustomerName; עם הערה תומכת.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id;//return user.sys_id; אחרת // להחזיר null; var grInt = חדש GlideRecord ('אינטראקציה'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'טלפון'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); להחזיר סיסיד; }, setWebexcctable: פונקציה () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = חדש GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; שורה זו נוספת - כדי ללכוד אותה ביומן הפעילות webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); פעילויות בנושא תיעוד אירועים; var actInfoString =this.getParameter('actInfo'); var suser = חדש GlideRecordSecure("sys_user"); suser.addQuery("טלפון", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = חדש GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } להחזיר sys_id; }, הקלד: 'propUtils' });
יצירת משתנה CAD במעצב Flow

הוספת משתנה CAD לפריסת שולחן העבודה
דוגמה
"CadName1:SnowField1,CadName2:SnowField2" CadName1 הוא CustomerName SnowField1 משמש גם כ- CustomerName שהוא חלק מ- scirpt לדוגמה המוצג לעיל "actInfo.CustomerName".

צילומי מסך של הדגמה
הצג את משתנה ה- CAD החדש שנוסף בטבלה WebexCC Activity.



יצירת משתנה CAD עבור Flow Designer
דחיפות האירוע
השפעת האירוע

עדכון סקריפט של Service Now
עדכונים לסקריפט כוללים:
-
עבור אל נווט הסינון וחפש
קבצי Script כלוליםבחר באפשרות Script כולל תחת ממשק משתמש מערכת.

-
סנן את השם באמצעות
propUtils.
-
שנה את השיטה
משתמשGetSysId
בשדה Script .
תסריט נוכחי:
UserGetSysId: פונקציה () { var opened_for; var user = חדש GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = חדש GlideRecord('אינטראקציה'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'טלפון'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); להחזיר sysid; },קוד לדוגמה חדש לאירוע:
UserGetSysId: פונקציה () { var opened_for; var sysidlist = {}; var user = חדש GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = חדש GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='שיחה שהתקבלה מ- '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } } var grInt = חדש GlideRecordSecure('אינטראקציה'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'טלפון'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; החזר JSON.stringify(sysidlist);//sysid; },
-
עבור אל נווט הסינון וחפש
דפיממשק משתמש.בחר באפשרות דפי ממשק משתמש תחת ממשק משתמש מערכת.

-
סנן את דפי ממשק המשתמש עם שם וחפש
את agentdesktop.
-
שנה את
Screenpop
פונקציה בשדה סקריפט.
פונקציה נוכחית:
פונקציית פופ מסך screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('שדה', 'טלפון'); gaout.addParam('ערך', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ ישות: 'אינטראקציה', שאילתה: 'sys_id='+sysid }); }קוד לדוגמה לאירוע:
פונקציית פופ מסך screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null &&; callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null &&; callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam ('שדה', 'טלפון'); gaout.addParam('ערך', callerani); gaout.addParam('דחיפות', IncUrgency); gaout.addParam ('השפעה', השפעה); gaout.getXMLWait(); var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
אם פרטי המתקשר קיימים ב- CRM, ואין אירוע חדש או לא מתקדם, היישום פותח אירוע חדש


שינוי הקוד ב- ServiceNow
הוספת עמודות חדשות ללחצן פעילות WebexCC IMP
שולחן
פתח את הלחצן פעילות WebexCC IMPשולחן





לחץ על עדכן.


הוספת עמודות חדשות ללחצן יומן טלפונים
שולחן
פתח את הלחצן יומן טלפונים
שולחן





מפת המרת פעילות WebexCC
פתוח שינוי מפה
מנווט המסננים


לחץ על WebexCC Activity TransformMap




לחץ על עדכן .

שינויים בסקריפט כוללים
-
עבור אל נווט מסנן וחפש "סקריפט כולל".
בחר את קובץ ה - Script הנכלל תחת ממשק המשתמש של המערכת.

-
סינון השם באמצעות
propUtils
.
-
שנה את השיטה
setWebexcctable
.
קוד לדוגמה חדש עבור אירוע:
setWebexcctable: פונקציה () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = חדש GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; מחק את actInfo['incident_sys_id']; if( interactionsysid!= null &&; interactionsysid != undefined){ var inte = חדש GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','closed complete'); inte.work_notes='עדכן מצב לסגור.'; inte.update(); } } if( incsysid!= null && incsysid != undefined){ var inci = חדש GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = חדש GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = חדש GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=אינטנום; sys_id=webexcc.Insert(); } להחזיר sys_id; },
שינויי שיטה בדפי ממשק משתמש
-
עבור אל מסנן נווט וחפש
דפי ממשק משתמש
בחר באפשרות דפי ממשק משתמש תחת ממשק משתמש מערכת.

-
סנן את דפי ממשק המשתמש עם שם וחפש את agentdesktop
.
-
שנה את
nowפעילויות ו screenpop
פונקציה בסקריפט.
פונקציה נוכחית:
הפונקציה nowActivities(actInfo, ani) { var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }קוד לדוגמה לאירוע:
function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null &&; sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML (SetCCsysId); } הפונקציה screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = חדש GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('שדה', 'טלפון'); gaout.addParam('ערך', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
תוצאות לאחר העדכון

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

נְקִישָׁה חָדָשׁ.

קוד לדוגמה לעיון:
פונקציה customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null &&; eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null &&; name != null &&; name != '') { userID = UserGetSysId("name", שם); } if (userID == null &&; phone != null &&; phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } תשובה = כתובת URL; כתובת URL החזרה; } הפונקציה UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }תצורה לדוגמה של הכלל העסקי

הפיכת לקוח לזמין ניתן לקריאה

שילוב טלפוניה ממוחשבת (CTI) עיבוד עבור אירוע מסומן כ - True.

עדכן את כתובת ה- URL של ה- screenpop עם כלל CTI המותאם אישית" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

יש להפעיל את sysparm_cti_rule=name כאשר 'name' הוא שם הפונקציה עבור CTI עיבוד במקום להשתמש בסקריפט ברירת המחדל.
הגדר את הפונקציה בערך sys_script המסומן כניתן לקריאה של לקוח.
אם עליך Insert, לעדכן או למחוק רשומות GlideRecords בפונקציה, התקשר לפונקציה נפרדת שאינה ניתנת לקריאה של לקוח כדי לבצע את העדכונים.
כדי להפוך קובץ script לניתן לקריאה באמצעות לקוח, עליך לסמן את תיבת הסימון לקוח-ניתן לקריאה בטופס המוצגת כאשר הערך sys_script מוצג.
תיבת הסימון הניתנת להתקשרות ללקוח אינה מופיעה כברירת מחדל. כדי להציג, עליך לשנות את השדות המופיעים בטופס באמצעות סמל גלגל השיניים ומנגנון דלי הברד.
התאמה אישית # 2 - הוספת משתנה CAD בטבלת הפעילות Webex Contact Center
סקירה כלליתמאמר זה מפרט את התהליך להוספת עמודה נוספת לטבלת ServiceNow - webexcc_activity שנוצר עם התקנת Webex CC עבור מחבר ה- CRM של ServiceNow.
כברירת מחדל, הטבלה מכילה שדות מערכת וערכים מוכנים לשימוש.
באפשרותך ליצור משתנים ספציפיים יותר לעסק (משתני CAD) בתוך מעצב WebexCC Flow ולהוסיף משתני CAD אלה בתוך יומן פעילות השיחות של ServiceNowPOST, ולשמור זאת על נתוני טבלת פעילות השיחה POST.
-
זהו תיעוד עזר בלבד - ומראה כיצד לעשות זאת עבור משתנה CAD לדוגמה בשם Customer Name המאחסן את שם הלקוח בתוך IVR ומפרסם זאת ב- ServiceNow.
-
מפתחי שותפים+לקוחות ServiceNow יגדירו וינהלו תצורה זו מכיוון שהיא התאמה אישית למחבר הקיים.
-
Cisco תספק רק את הטכניקות כיצד להתאים אישית ולהרחיב את המחבר.
-
נכון למאמר זה, צוות Cisco אימת תמיכה בהוספת משתנה CAD ליומן הפעילות ולטבלת הפעילות באמצעות הטכניקה המתוארת להלן.
ערוך את הטבלה בגירסת המפתחים של ServiceNow.

עבור אל .



בחר טבלת פעילות WebexCC.

לדוגמה, CustomerName.


בחר פריסת רשימה עבור פעילות WebexCC.

שלב זה אינו נדרש אם אתה משתמש בערכת העדכון XML - יש להוסיף רק שורה אחת "webexcc.u_customername=actInfo.CustomerName" ל- propUtils.



סקריפט לדוגמה
ראה את השורה עם:webexcc.u_customername=actInfo.CustomerName; עם הערה תומכת.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = חדש GlideRecordSecure(gs.getProperty('x_caci_ webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // שורה זו נוספת - כדי ללכוד אותה ביומן הפעילות webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); פעילויות בנושא תיעוד אירועים; var actInfoString =this.getParameter('actInfo'); var suser = חדש GlideRecordSecure("sys_user"); suser.addQuery("טלפון", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = חדש GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } להחזיר sys_id; }, הקלד: 'propUtils2' });
עריכת דף ממשק המשתמש עם שם קובץ Script חדש
יצירת משתנה CAD במעצב Flow
הוספת משתנה CAD לפריסת שולחן העבודה
צילומי מסך של הדגמה
הצג את משתנה ה- CAD החדש שנוסף בטבלה WebexCC Activity.












































