دمج Webex Contact Center مع ServiceNow (الإصدار 1 - Legacy) < / h1>
المتطلبات الأساسية
يعمل موصل CRM استنادا إلى إصدار عنصر واجهة المستخدم المحدد في تخطيط سطح المكتب JSON. من المهم للغاية التأكد من تحديث إصدار عنصر واجهة المستخدم داخل تخطيط سطح المكتب. اعتبارا من نوفمبر 2025 ، أحدث إصدار من الأداة هو 5.0.0 (V5).
يتوقع من المسؤولين التأكد من أن جميع تخطيطات سطح المكتب لموصل CRM هذا تستخدم إصدار عنصر واجهة المستخدم هذا. إذا لم يتم تحديث التخطيط لاستخدام أحدث إصدار، فلن يتم دعم الوظائف بعد ذلك وقد تتوقف عن العمل بشكل صحيح.
قبل دمج 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 داخل وحدة تحكم 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 ، انقر فوق الزر تأمين وأضف
|
| 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.
من حقل متصفح عامل التصفية، انتقل إلى عمليات الخدمة.
لمزيد من المعلومات حول كيفية استخدام سطح المكتب، راجع العامل Tab في تعليمات Webex Contact Center.
نظرة عامة
تتناول هذه المقالة عدة طرق لتخصيص قواعد العمل لموصل ServiceNow CRM. يوضح بالتفصيل كيف يمكنك تخصيص حالات الاستخدام استنادا إلى قواعد العمل الخاصة ب ServiceNow.
يجب على العميل إدارة حالات الاستخدام هذه ذاتيا على ServiceNow. التكوين خاص ب ServiceNow وليس Webex Contact Center برنامج أو خبرة.
هذه وثائق مرجعية للمساعدة في تعديل قواعد العمل. سيقوم مطورو ServiceNow بإنشاء وإدارة قواعد العمل وتقديم الدعم.
Cisco يوفر فقط عينة من الوثائق.
توفر الأقسام التالية تفاصيل حول كيفية إعداد عنصر واجهة مستخدم الإجراءات وتمكينه وإدارته لمثيلات المطور والمؤسسة.
تنفيذ مجموعة التحديث لعنصر واجهة المستخدم "الإجراءات"
بالنسبة لمثيلات المؤسسة المرخصة، قم بتثبيت أحدث تطبيق Webex Contact Center من متجر ServiceNow.
لإعداد عنصر واجهة المستخدم Actions لمثيلات المطور، قم بتنزيل أحدث ملف System Update Set XML المتاح على github repo في هذا الموقع: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. اسم الملف هو webexcc-servicenow-update-setv7-1-ActionsWidget.XML. لتنفيذ مجموعة التحديث لعنصر واجهة المستخدم "إجراءات"، راجع الخطوات من 2 إلى 9 في تنفيذ مجموعة التحديثات.
تمكين عنصر واجهة المستخدم "الإجراءات"
استخدم الخاصية isWidgetDisplayEnabled لتمكين عنصر واجهة المستخدم "الإجراءات". يجب عدم تعديل قيمة هذه الخاصية في قسم مقطوعة الرأس في تخطيط سطح المكتب المخصص. يتم تعيين الخاصية دائما على false في قسم مقطوعة الرأس في تخطيط سطح المكتب المخصص. يجب عليك تحديث قيمة الخاصية فقط في قسم اللوحة الخاص بتخطيط سطح المكتب المخصص.
بمجرد تمكين عنصر واجهة المستخدم "الإجراءات" في تخطيط سطح المكتب المخصص، يمكنك تنفيذ الإجراءات التالية:
- إدارة سجلات النشاط—انقر فوق عرض/تحرير سجل النشاط لعرض قائمة سجلات النشاط المقترنة بالمتصل.
- إقران كائنات CRM—انقر فوق إقران بسجلات النشاط لإضافة كائنات CRM مثل نوع الاتصال (وارد أو صادر) وكائن المكالمة وملاحظات المكالمة وما إلى ذلك إلى سجل النشاط.
- إدارة الحوادث—انقر على إنشاء حادث. يتم إنشاء حادث جديد مع ملء تفاصيل المتصل مسبقا. يمكنك إجراء التحديثات المطلوبة على الحادث. يمكنك اختيار تعديل نوع السجل من حادث إلى آخر ، ووحدة الموارد البشرية ، وما إلى ذلك بناء على متطلباتك. لتغيير نوع السجل، قم بتعديل قيمة الخاصية typeOfRecord في تكوين عنصر واجهة المستخدم Actions. على سبيل المثال:
{ "comp": "md-tab-panel" ، "السمات": { "فتحة": "لوحة" ، "فئة": "جزء عنصر واجهة المستخدم" } ، "الأطفال": [ { "شركات": "agentx-custom-desktop" ، "البرنامج النصي": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js" ، "خصائص": { "isWidgetDisplayEnabled": true ، "typeOfRecord": "إنشاء حادث" } ، "غلاف": { "title": "إجراءات SNOW!" ، "maximizeAreaName": "app-maximize-area" } } ] } - إضافة ملاحظات المكالمة المباشرة—يمكنك الحصول على معلومات إضافية حول المكالمة في منطقة النص وإنهاء المكالمة. يمكنك رؤية هذه الملاحظات المضافة كملاحظات مكالمة في سجل النشاط.
تغيير الرمز على سيرفس ناو
يتضمن البرنامج النصي تغييرات-
انتقل إلى متصفح التصفية وابحث عن
يتضمن البرنامج النصي
.حدد البرنامج النصي المتضمن ضمن واجهة مستخدم النظام.
-
تصفية الاسم والبحث عنه
بروب وتيلز
. -
تغيير الطريقة
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.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(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) للحادث على أنها صحيحة.

قم بتحديث عنوان 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.

هذه الخطوة غير مطلوبة إذا كنت تستخدم Update Set 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.












































