دمج Webex Contact Center مع ServiceNow (الإصدار 1 - قديم) < / h1>
المتطلبات الأساسية
في الوقت الحالي، تنطبق هذه الميزة على الوكلاء فقط.
قبل دمج Webex Contact Center مع وحدة تحكم ServiceNow CRM، تأكد من أن لديك ما يلي:
-
الوصول إلى مركز اتصال Webex.
-
وصول المسؤول إلى مركز التحكم في https://admin.webex.com ومدخل إدارة Webex Contact Center. تعد عناوين URL لمدخل الإدارة خاصة بمنطقتك.
-
وكيل لديه حق الوصول إلى سطح المكتب. يعد عنوان URL لسطح المكتب خاصًا بمنطقتك.
-
وصول العامل إلى المجال التالي المضاف في القائمة المسموح بها لنهج أمان المحتوى:
-
*.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 (JSON)
-
- إصدارات ServiceNow التي يدعمها Webex Contact Center هي فانكوفر ويوتا وطوكيو وواشنطن وزانادو. لمزيد من المعلومات، راجع Webex Contact Center التكامل مع ServiceNow.
اتبع إحدى الطريقتين التاليتين:
بالنسبة لمثيلات المطور، نوصي باتباع الخطوات الواردة في دليل مثيل المطور.
إذا كنت تمتلك مثيلا مرخصا من المؤسسة، فاتبع الإرشادات الخاصة بالمثيلات المرخصة من قبل المؤسسة.
لا نوصي بمزج التطبيق المرخص من قبل المؤسسة مع مثيلات وضع الحماية للمطورين.
تصف الأقسام التالية خطوات تثبيت موصل ServiceNow لمثيلات المطور.
1 |
قم بتسجيل الدخول إلى حساب مدخل مطور ServiceNow الخاص بك وافتح وحدة تحكم الإدارة . |
2 |
من منطقة المثيل الخاص بي في قائمة الحساب ، انقر فوق بدء البناء. |
3 |
في مثيل المطور الخاص بك، من حقل متصفح عامل التصفية في الجزء العلوي الأيسر من النافذة، انتقل إلى المكونات الإضافية. |
4 |
ابحث عن المكون الإضافي Openframe الذي يحمل العنوان Openframe. قد تحتاج إلى التمرير خلال القائمة. |
5 |
انقر فوق تثبيت لتثبيت المكون الإضافي Openframe. |
6 |
في مربع الحوار تنشيط المكون الإضافي ، انقر فوق تنشيط. |
7 |
عند اكتمال تنشيط المكون الإضافي، انقر فوق إغلاق النموذج وإعادة تحميله في مربع الحوار تنشيط المكون الإضافي. |
8 |
للتحقق من تنشيط المكون الإضافي ، من حقل متصفح التصفية في الجزء العلوي الأيسر من النافذة ، انتقل إلى OpenFrame. |
9 |
انقر فوق التكوينات وتأكد من ظهور المكون الإضافي OpenFrame في قائمة تكوينات OpenFrame. |
1 |
قم بتنزيل أحدث ملف System Update Set XML المتاح على github repo في هذا الموقع: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. اسم الملف: webexcc-servicenow-update-setV(X).XML |
2 |
في مثيل ServiceNow الخاص بك، من حقل متصفح عامل التصفية في الجزء العلوي الأيسر من النافذة، انتقل إلى . |
3 |
انقر فوق الارتباط استيراد مجموعة تحديث من XML . |
4 |
انقر فوق اختيار ملف، وحدد ملف XML تعيين تحديث النظام، ثم انقر فوق تحميل.
تظهر مجموعة التحديث في قائمة مجموعات التحديث المستردة وهي في حالة التحميل .
|
5 |
من قائمة مجموعات التحديث المستردة، انقر فوق اسم ملف مجموعة التحديث (رابط) لفتح مجموعة التحديث. |
6 |
في الجزء العلوي الأيسر من النافذة، انقر فوق معاينة مجموعة التحديث للتحقق من مجموعة التحديث للمشكلات. |
7 |
انقر فوق إغلاق في مربع الحوار تحديث مجموعة المعاينة بمجرد اكتمال المعاينة. |
8 |
انقر فوق الالتزام بمجموعة التحديثات. |
9 |
انقر فوق إغلاق في مربع الحوار تحديث مجموعة الالتزام بمجرد اكتمال تنفيذ مجموعة التحديث. |
1 |
في حقل متصفح عامل التصفية في الجزء العلوي الأيسر من النافذة، اكتب |
2 |
في صفحة خصائص النظام، قم بفرز الخصائص حسب تاريخ التحديث. تأكد من إمكانية رؤية خصائص Webex Contact Center التالية: |
3 |
انقر فوق agentdesktop_url لفتح صفحة agentdesktop_url خاصية النظام. |
4 |
في حقل القيمة ، أدخل عنوان URL لسطح المكتب Webex Contact Center وفقا لمنطقة التشغيل.
|
5 |
انقر فوق تحديث لحفظ التغييرات. |
6 |
(اختياري) لتغيير اسم جدول النشاط، قم بتحرير خصائص webexccactivitytable كما هو مطلوب. في صفحة خصائص النظام ، انقر فوق webexccactivitytable. قم بتغيير حقل القيمة كما هو مطلوب. |
7 |
(اختياري) أضف مجموعات المستخدمين بالطرق التالية:
|
1 |
من حقل متصفح التصفية، انتقل إلى . |
2 |
انقر فوق New (جديد). |
3 |
أدخل الخصائص التالية لعنوان URL:
|
4 |
على يسار حقل عنوان URL ، انقر فوق الزر "تأمين " وأضف |
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 |
انقر فوق New Layout (تخطيط جديد) وأدخل تفاصيل تخطيط سطح المكتب. |
6 |
قم بتحميل ملف JSON لتخطيط سطح المكتب ServiceNow. |
7 |
انقر فوق حفظ لحفظ التهيئة. يمكنك الآن بدء تشغيل Webex Contact Center Desktop داخل وحدة تحكم ServiceNow. |
8 |
من حقل متصفح عامل التصفية، انتقل إلى عمليات الخدمة. |
تصف الأقسام التالية خطوات تثبيت موصل ServiceNow لمثيلات المؤسسة المرخصة.
1 |
قم بتسجيل الدخول إلى حساب مدخل مطور ServiceNow الخاص بك وافتح وحدة تحكم الإدارة . |
2 |
من منطقة المثيل الخاص بي في قائمة الحساب ، انقر فوق بدء البناء. |
3 |
في مثيل المطور الخاص بك، من حقل متصفح عامل التصفية في الجزء العلوي الأيسر من النافذة، انتقل إلى المكونات الإضافية. |
4 |
ابحث عن المكون الإضافي Openframe الذي يحمل العنوان Openframe. قد تحتاج إلى التمرير خلال القائمة. |
5 |
انقر فوق تثبيت لتثبيت المكون الإضافي Openframe. |
6 |
في مربع الحوار تنشيط المكون الإضافي ، انقر فوق تنشيط. |
7 |
عند اكتمال تنشيط البرنامج الإضافي، انقر فوق إغلاق النموذج وإعادة تحميله في مربع الحوار تنشيط البرنامج الإضافي . |
8 |
للتحقق من تنشيط البرنامج المساعد، من حقل متصفح المرشحات في الجزء العلوي الأيسر من النافذة، انتقل إلى OpenFrame. |
9 |
انقر فوق التكوينات وتأكد من ظهور مكون OpenFrame في القائمة تكوينات OpenFrame . |
يمكن للمثيلات التي لديها تراخيص مؤسسية تثبيت تطبيق Webex Contact Center مباشرة من متجر ServiceNow.
قم بتنزيل حزمة Webex Contact Center وتثبيتها من متجر ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
في حقل متصفح المرشحات في الجزء العلوي الأيسر من النافذة، أدخل |
2 |
في صفحة خصائص النظام ، قم بفرز الخصائص حسب تاريخ التحديث. تأكد من أنك تستطيع رؤية خصائص Webex Contact Center التالية: |
3 |
انقر فوق agentdesktop_url لفتح صفحة خصائص النظام agentdesktop_url . |
4 |
في حقل القيمة ، أدخل عنوان URL لسطح المكتب Webex Contact Center وفقًا لمنطقة التشغيل.
|
5 |
انقر فوق تحديث لحفظ التغييرات. |
6 |
(اختياري) لتغيير اسم جدول النشاط، قم بتعديل خصائص x_caci_webexcc.webexccactivitytable كما هو مطلوب.
|
7 |
(اختياري) قم بإضافة مجموعات المستخدمين بالطرق التالية:
|
1 |
من حقل متصفح التصفية ، انتقل إلى . |
2 |
انقر فوق New (جديد). |
3 |
أدخل الخصائص التالية لعنوان URL:
|
4 |
على يمين حقل URL ، انقر فوق الزر Lock وأضف |
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 |
انقر فوق New Layout (تخطيط جديد) وأدخل تفاصيل تخطيط سطح المكتب. |
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 يوفر فقط وثائق نموذجية.
توفر الأقسام التالية تفاصيل حول كيفية إعداد عنصر واجهة المستخدم الرسومية "الإجراءات" وتمكينه وإدارته للمطورين ونسخ المؤسسات.
قم بتثبيت مجموعة التحديثات لأداة الإجراءات
بالنسبة لحالات المؤسسة المرخصة، قم بتثبيت أحدث تطبيق 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 لتمكين عنصر واجهة المستخدم Actions. لا يجوز لك تعديل قيمة هذه الخاصية في قسم بدون رأس في تخطيط سطح المكتب المخصص. يتم تعيين الخاصية دائمًا على false في قسم بدون رأس في تخطيط سطح المكتب المخصص. ينبغي عليك تحديث قيمة الخاصية فقط في قسم اللوحة في تخطيط سطح المكتب المخصص.
بمجرد تمكين عنصر واجهة المستخدم "الإجراءات" في تخطيط سطح المكتب المخصص، يمكنك تنفيذ الإجراءات التالية:
- إدارة سجلات النشاط—انقر فوق عرض/تحرير سجل النشاط لعرض قائمة سجلات النشاط المرتبطة بالمتصل.
- ربط كائنات 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 Actions!", "maximizeAreaName": "app-maximize-area" } } ] }
- إضافة ملاحظات المكالمة المباشرة—يمكنك التقاط معلومات إضافية حول المكالمة في منطقة النص وإنهاء المكالمة. يمكنك رؤية هذه الملاحظات المضافة كملاحظات مكالمة في سجل النشاط.
تغيير الكود على ServiceNow
يتضمن البرنامج النصي التغييرات-
انتقل إلى متصفح التصفية وابحث عن
يتضمن النص
.حدد يتضمن البرنامج النصي ضمن واجهة المستخدم للنظام.
-
قم بتصفية الاسم وابحث عن
أدوات الدعم
. -
تغيير الطريقة
معرف المستخدمGetSysId
في النص.الحالي:
UserGetSysId: دالة () { 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: دالة () { 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; //إرجاع 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='Call Received From'+ 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); },
-
انتقل إلى متصفح التصفية وابحث عن
صفحة واجهة المستخدم
.حدد صفحات واجهة المستخدم ضمن واجهة مستخدم النظام.
-
تصفية الاسم والبحث عنه
AgentDesktop
. -
قم بتغيير
الشاشة المنبثقة
في البرنامج النصي للعميل.الوظيفة الحالية:
وظيفة الشاشة المنبثقة 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(); // For Incident-related change 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({ الكيان: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
إذا كانت معلومات المتصل موجودة في CRM، وكان هناك بالفعل حادث جديد تم فتحه مع جهة الاتصال هذه، يفتح التطبيق الحادث غير الجاري
في حالة عدم وجود معلومات المتصل في CRM ، يفتح التطبيق حادثة جديدة
إذا كانت معلومات المتصل موجودة في CRM ، يفتح التطبيق حادثة جديدة بتفاصيل مملوءة مسبقا
نظرة عامة
توضح حالة الاستخدام هذه تفاصيل عملية إضافة عمود إضافي إلى جدول ServiceNow - webexcc_imp_activity وإنشاء sn_openframe_phone_log عند تثبيت Webex CC لموصل ServiceNow CRM.
بشكل افتراضي، يحتوي الجدول على بعض حقول وقيم النظام الجاهزة.
يمكنك إنشاء المزيد من المتغيرات الخاصة بالأعمال (متغيرات 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
إضافة عمود جديد، على سبيل المثال، اسم العميل
رسم الخرائط الميدانية.
تخصيص أعمدة القائمة
كما توصي 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; آخر // إرجاع فارغ ؛ var grInt = سجل انزلاقي جديد ("تفاعل") ؛ grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'الهاتف'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); إرجاع 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(); 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 = 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(); } } } عودة sys_id } ، اكتب: 'propUtils' }) ؛
إنشاء متغير CAD في مصمم التدفق
إضافة متغير CAD إلى تخطيط سطح المكتب
مثال
"CadName1: SnowField1، CadName2: SnowField2" CadName1 هو اسم العميل يستخدم SnowField1 أيضا باسم العميل وهو جزء من نموذج scirpt الموضح أعلاه "actInfo.CustomerName".
لقطات الشاشة التجريبية
عرض متغير CAD المضاف حديثا في جدول نشاط WebexCC.
إنشاء متغير CAD لمصمم التدفق
إلحاح الحادثتأثير الحادث
تحديث البرنامج النصي للخدمة الآن
تتضمن تحديثات البرنامج النصي
-
انتقل إلى متصفح التصفية وابحث عن
البرنامج النصي يتضمن
حدد خيار يتضمن البرنامج النصي ضمن واجهة مستخدم النظام.
-
تصفية الاسم باستخدام
propUtils
. -
تغيير الطريقة
UserGetSysId
في حقل البرنامج النصي .السيناريو الحالي:
UserGetSysId: الدالة () { 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(); إرجاع sysid; },
نموذج جديد للكود للحادث:
UserGetSysId: الدالة () { 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 = جديد 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(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('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam ("التأثير" ، التأثير) ؛ gaout.getXMLWait(); var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ الكيان: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ الكيان: '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
انقر فوق تحديث.
تتضمن التغييرات التي تم إجراؤها على البرنامج النصي
-
انتقل إلى متصفح التصفية وابحث عن "يتضمن البرنامج النصي".
حدد البرنامج النصي المتضمن ضمن واجهة مستخدم النظام.
-
تصفية الاسم باستخدام
بروب وتيلز
. -
تغيير الطريقة
مجموعةويب قابل للإزالة
.نموذج جديد لرمز الحادث:
setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //الأنشطة في سجل الحوادث; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete أكت إنفو['interaction_sys_id']; حذف actInfo['incident_sys_id']؛ if( interactionsysid!= null && interactionsysid != undefined){ var inte = new 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 = new GlideRecordSecure('incident'); inci.addQuery('sys_id', إنسيسيد ); 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 = 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.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 = intenum ؛ sys_id=webexcc.Insert(); } إرجاع sys_id ؛ },
تغييرات الأسلوب على صفحات واجهة المستخدم
-
انتقل إلى متصفح التصفية وابحث عن
صفحات واجهة المستخدم
حدد خيار صفحات واجهة المستخدم ضمن واجهة مستخدم النظام.
-
قم بتصفية صفحات واجهة المستخدم بالاسم وابحث عن
agentdesktop
. -
قم بتغيير
الآنالأنشطة والشاشة المنبثقة
وظيفة في البرنامج النصي.الوظيفة الحالية:
function nowActivities(actInfo, ani) { var gaout = new 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 = new 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 = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', 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({ الكيان: '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، قم بإنشاء سجل حادث جديد.
البحث عن قواعد العمل على متصفح عامل التصفية
انقر فوق New (جديد).
نموذج التعليمات البرمجية كمرجع:
الدالة 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; } answer = 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 في الدالة، فاتصل بوظيفة منفصلة غير قابلة للاستدعاء لإجراء التحديثات.
لجعل البرنامج النصي قابلا للاستدعاء من قبل العميل، يجب تحديد خانة الاختيار "العميل قابل للاستدعاء" في النموذج الذي يتم عرضه عند عرض إدخال sys_script.
لا تظهر خانة الاختيار القابلة للاتصال من قبل العميل بشكل افتراضي. للعرض، يجب عليك تعديل الحقول التي تظهر في النموذج باستخدام رمز الترس وآلية دلو طين.
التخصيص # 2 - إضافة متغير CAD في جدول النشاط Webex Contact Center
نظرة عامةتوضح هذه المقالة تفاصيل عملية إضافة عمود إضافي إلى جدول ServiceNow - webexcc_activity التي تم إنشاؤها عند تثبيت Webex CC لموصل ServiceNow CRM.
بشكل افتراضي، يحتوي الجدول على حقول وقيم نظام مبتكرة.
من المحتمل أن تقوم بإنشاء المزيد من المتغيرات الخاصة بالأعمال (متغيرات CAD) داخل مصمم WebexCC Flow وإضافة متغيرات CAD هذه داخل سجل نشاط مكالمة ServiceNowPOST، واستمرار ذلك إلى بيانات جدول نشاط المكالمة POST.
-
هذه وثائق مرجعية فقط - وتوضح كيفية القيام بذلك لمتغير CAD نموذجي يسمى اسم العميل الذي يخزن اسم العميل داخل IVR وينشره على ServiceNow.
-
سيقوم مطورو Partner + Customer ServiceNow بتكوين هذا التكوين وإدارته لأنه تخصيص للموصل الحالي.
-
Cisco سيوفر فقط التقنيات الخاصة بكيفية تخصيص الموصل وتوسيعه.
-
اعتبارا من هذه المقالة ، تحقق فريق Cisco من صحة الدعم لإضافة متغير CAD إلى سجل النشاط وجدول النشاط باستخدام التقنية الموضحة أدناه.
قم بتحرير الجدول في إصدار المطور من ServiceNow.
اذهب إلى
.حدد جدول نشاط WebexCC.
على سبيل المثال، اسم العميل.
حدد تخطيط قائمة لنشاط 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 = new 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 = 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(سلسلة التمثيل),null,2); inc.comments =jsonPretty; inc.update(); } } } عودة sys_id } ، اكتب: 'propUtils2' }) ؛
تحرير صفحة واجهة المستخدم باسم برنامج نصي جديد
إنشاء متغير CAD في مصمم التدفق
إضافة متغير CAD إلى تخطيط سطح المكتب
لقطات الشاشة التجريبية
عرض متغير CAD المضاف حديثا في جدول نشاط WebexCC.
