שילוב Webex Contact Center עם ServiceNow (גירסה 1—מדור קודם)
דרישות מוקדמות
בשלב זה, תכונה זו ישימה לסוכנים בלבד.
לפני שתשלב את 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 |
הורד את קובץ עדכון המערכת העדכני ביותר הגדר 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) Connectors בלבד.
Agent Desktop בקונסולת ServiceNow
לפני שאתה מבצע שיחות חיוג, ודא שאתה עושה את הפעולות הבאות:
-
צור את נקודת הכניסה החיצונית והגדר אסטרטגיית נקודת כניסה לחיוג.
-
אפשר ANI חיוג עבור פרופיל הסוכן.
-
הגדר את ה-ANI החיוג למיפוי מספר חיוג לנקודת כניסה.
למידע נוסף, ראה את אספקה פרק של Cisco Webex Contact Center מדריך התקנה וניהול.
מהשדה נווט המסננים , נווט אל .
למידע על אופן השימוש ב-Desktop, עיין ב- Agent Tab בעזרה של Webex Contact Center.
סקירה כללית
מאמר זה מכסה מספר דרכים להתאמה אישית של כללי העסק שלך עבור מחבר ServiceNow CRM. הוא מפרט כיצד ניתן להתאים אישית את מקרי השימוש בהתבסס על כללי עסקיים ספציפיים ל-ServiceNow.
הלקוח חייב לנהל את מקרי השימוש הללו בעצמו ב-ServiceNow. התצורה ספציפית ל-ServiceNow ולא לתוכנה או למומחיות של Webex Contact Center.
זהו תיעוד עזר המסייע בשינוי כללי העסק. מפתחי ServiceNow ייצרו וינהלו את כללי העסק ויספקו תמיכה.
Cisco מספק רק תיעוד לדוגמה.
הסעיפים הבאים מספקים פרטים על אופן ההגדרה, ההפעלה והניהול של ווידג'ט הפעולות עבור מופעי מפתחים וארגונים.
אישור קבוצת העדכונים עבור ווידג'ט הפעולות
עבור מופעי ארגון מורשים, התקן את האפליקציה Webex Contact Center העדכנית ביותר מ חנות ServiceNow.
כדי להגדיר את ווידג'ט הפעולות עבור מופעי המפתחים, הורידו את קובץ XML של ערכת עדכוני המערכת העדכני ביותר הזמין במאגר github במיקום זה: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. שם הקובץ הוא webexcc-servicenow-update-setv7-1-ActionsWidget.XML. כדי לבצע את קבוצת העדכונים עבור ווידג'ט הפעולות, עיין בשלבים 2 עד 9 ב ביצוע קבוצת העדכונים.
הפעלת ווידג'ט פעולות
השתמש במאפיין isWidgetDisplayEnabled כדי להפעיל את ווידג'ט הפעולות. אסור לך לשנות את ערך המאפיין הזה במקטע headless של פריסת שולחן העבודה המותאם אישית. המאפיין תמיד מוגדר כ-false במקטע headless של פריסת שולחן העבודה המותאם אישית. עליך לעדכן את ערך המאפיין רק בחלק הפאנל של פריסת שולחן העבודה המותאם אישית.
לאחר שתפעילו את ווידג'ט הפעולות בפריסת שולחן העבודה המותאמת אישית, תוכלו לבצע את הפעולות הבאות:
- ניהול רשומות פעילות - לחץ על הצג/ערוך רשומת פעילות כדי להציג את רשימת רשומות הפעילות המשויכות למתקשר.
- שיוך אובייקטי CRM - לחץ על שיוך לרשומות פעילות כדי להוסיף אובייקטי CRM כגון סוג שיחה (נכנסת או יוצאת), אובייקט שיחה, הערות שיחה וכן הלאה לרשומת הפעילות.
- ניהול אירועים - לחץ על צור אירוע. נוצר אירוע חדש כאשר פרטי המתקשר מולאו מראש. באפשרותך לבצע את העדכונים הנדרשים לאירוע. באפשרותך לבחור לשנות את סוג הרשומה מאירוע למקרה, מודול משאבי אנוש וכן הלאה בהתבסס על הדרישות שלך. כדי לשנות את סוג הרשומה, יש לשנות את ערך המאפיין typeOfRecord בתצורת ווידג'ט הפעולות. לדוגמה:
{ "comp": "md-tab-panel", "attributes": { "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" : "יצירת אירוע" }, "wrapper": { "title": "פעולות SNOW!", "maximizeAreaName": "app-maximize-area" } } ] }
- הוסף הערות שיחה בזמן אמת - באפשרותך ללכוד מידע נוסף על השיחה באזור הטקסט ולסכם את השיחה. ניתן לראות את ההערות הללו שנוספו כהערות שיחה ברשומת הפעילות.
שינוי קוד ב-ServiceNow
התסריט כולל שינויים-
עבור אל נווט המסננים וחפש את
התסריט כולל
.בחר את הקובץ כולל תחת ממשק משתמש מערכת.
-
סנן את השם וחפש את
propUtils
. -
שנה את השיטה
מזהה משתמשGetSys
ב סקריפט.נוכחי:
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; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return sysid; },
קוד לדוגמה חדש עבור האירוע:
UserGetSysId: function () { var opened_for; //שינויים הקשורים לאירוע var sysidlist = {}; var user = new 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 = new 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 = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
עבור אל נווט המסננים וחפש את
דף ממשק המשתמש
.בחר דפי ממשק משתמש תחת ממשק משתמש מערכת.
-
סנן את השם וחפש את
סוכן שולחני
. -
שנה את
סקריןפופ
פונקציה בסקריפט לקוח .פונקציה נוכחית:
// פונקציית צץ מסך screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });
קוד לדוגמה עבור האירוע:
// פונקציית הצגת מסך screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // עבור שינוי הקשור לאירוע var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }אחרת{ openFrameAPI.openServiceNowForm({ ישות: 'אירוע', שאילתה: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
אם פרטי המתקשר קיימים ב-CRM, וכבר נפתח אירוע חדש עם איש קשר זה, היישום פותח את האירוע שמתנהל.
אם פרטי המתקשר אינם קיימים ב-CRM, היישום פותח אירוע חדש
אם פרטי המתקשר קיימים ב-CRM, היישום פותח אירוע חדש עם פרטים שמולאו מראש.
סקירה כללית
מקרה שימוש זה מפרט את התהליך להוספת עמודה נוספת לטבלת ServiceNow - webexcc_imp_activity ויצירת sn_openframe_phone_log לאחר התקנת ה-Webex CC עבור ServiceNow CRM Connector.
כברירת מחדל, הטבלה מכילה שדות וערכים מסוימים המוכנים לשימוש במערכת.
באפשרותך ליצור משתנים ספציפיים יותר לעסק (משתני CAD) בתוך מעצב הזרימה של WebexCC ולהוסיף את משתני ה-CAD בתוך יומן פעילות השיחות POST של ServiceNow, וכן לשמור זאת בנתוני טבלת פעילות השיחות POST.
זהו תיעוד עזר בלבד - והוא מראה כיצד לעשות זאת עבור משתנה CAD לדוגמה בשם שם לקוח אשר מאחסן את שם הלקוח בתוך הקובץ IVR ומפרסם אותו ב-ServiceNow.
צפוי שמפתחי Partner+Customer ServiceNow יגדירו וינהלו תצורה זו מכיוון שמדובר בהתאמה אישית של המחבר הקיים.
Cisco מספק רק את הטכניקות להתאמה אישית והרחבה של המחבר.
נכון למאמר זה, צוות Cisco אימת את התמיכה בהוספת משתנה CAD ליומן הפעילות ולטבלת הפעילות באמצעות הטכניקה המתוארת להלן:
הוסף עמודה לפעילות WebexCC IMP
-
ערוך את הטבלה בגרסת המפתחים של ServiceNow.
-
עבור אל נווט המסננים וחפש סטודיו.
בחר
Webex Contact Center
או
-
בחר את
פעילות IMP של WebexCC
לוּחַ -
הוסף עמודה חדשה, לדוגמה,
שם הלקוח
הוסף עמודה ליומן הטלפון
-
ערוך את טבלת יומן הטלפון.
-
הוסף עמודה חדשה, לדוגמה,
שם הלקוח
.
מפת טרנספורמציה של פעילות WebexCC
הוסף עמודה חדשה, לדוגמה, שם הלקוח
מיפוי שדה.
התאמה אישית של עמודות רשימה
כפי שממליץ Service Now, שנה את פעולת הבחירה מצור ל"התעלם".
הגדרת רשימת יומני טלפון
עבור אל כלול סקריפט
הוסף שורה אחת בלבד 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; // אחר // return null; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return sysid; }, setWebexcctable: function() { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); אם(!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 = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new 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(); } } } return sys_id; }, type: 'propUtils' });
יצירת משתנה CAD ב-Flow designer
הוסף את משתנה ה-CAD לפריסת שולחן העבודה
דוגמה
"CadName1:SnowField1,CadName2:SnowField2" CadName1 הוא שם הלקוח. SnowField1 משמש גם כ-CustomerName, שהוא חלק מהדוגמה המוצגת לעיל "actInfo.CustomerName".
צילומי מסך של הדגמה
הצג את משתנה ה-CAD החדש שנוסף בטבלת פעילות WebexCC.
יצירת משתנה CAD עבור Flow Designer
דחיפות האירועהשפעת אירוע
עדכון קובץ Script של Service Now
עדכונים לסקריפט כוללים
-
עבור אל נווט המסננים וחפש קבצי
Script כוללים
בחר באפשרות Script Includes תחת ממשק משתמש של המערכת.
-
סנן את השם עם
propUtils
. -
שינוי השיטה
UserGetSysId
בשדה ״ תסריט״ .תסריט נוכחי:
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; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return sysid; },
קוד לדוגמה חדש עבור האירוע:
UserGetSysId: function () { var opened_for; var sysidlist = {}; var user = new 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 = new 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='טלפון'; 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
.
-
שנה את
פופ מסך
בשדה קובץ ה- Script.פונקציה נוכחית:
פונקציית פופ מסך screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: '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 = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('שדה', 'טלפון'); gaout.addParam('ערך', callerani); gaout.addParam('IncUrgency', 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
לחץ על עדכן .
שינויים בסקריפט כוללים
-
עבור אל נווט המסנן וחפש "סקריפט כולל".
בחר את קובץ ה - 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 של פופ המסך עם כלל 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 לדוגמה בשם שם לקוח המאחסן את שם הלקוח בתוך 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.
