دمج مركز الاتصال Webex مع ServiceNow
عند دمج مركز الاتصال Webex مع وحدة تحكم ServiceNow CRM، يمكنك تشغيل Webex Contact Center Desktop من داخل ServiceNow.
المتطلبات الأساسية
قبل دمج مركز اتصال Webex مع وحدة تحكم ServiceNow CRM، تأكد من توفر ما يلي:
-
الوصول إلى مركز اتصال Webex.
-
وصول المسؤول إلى مركز التحكم في https://admin.webex.com ومدخل إدارة مركز اتصال Webex. تعد عناوين URL لمدخل الإدارة خاصة بمنطقتك.
-
أمريكا الشمالية: https://portal.wxcc-us1.cisco.com
-
المملكة المتحدة: https://portal.wxcc-eu1.cisco.com
-
الاتحاد الأوروبي: https://portal.wxcc-eu2.cisco.com
-
اليابان: https://portal-v2.wxcc-jp1.cisco.com
-
سنغافورة: https://portal-v2.wxcc-sg1.cisco.com
-
-
وكيل لديه حق الوصول إلى سطح المكتب. يعد عنوان URL لسطح المكتب خاصًا بمنطقتك.
-
أمريكا الشمالية: https://desktop.wxcc-us1.cisco.com
-
المملكة المتحدة: https://desktop.wxcc-eu1.cisco.com
-
الاتحاد الأوروبي: https://desktop.wxcc-eu2.cisco.com
-
آسيا والمحيط الهادئ واليابان والصين (APJC): https://desktop.wxcc-anz1.cisco.com
-
اليابان: https://desktop.wxcc-jp1.cisco.com
-
سنغافورة: https://desktop.wxcc-sg1.cisco.com
-
-
وصول العامل إلى المجال التالي المضاف في القائمة المسموح بها لنهج أمان المحتوى:
-
*.service-now.com
لمزيد من المعلومات حول كيفية تحديد القائمة المسموح بها، راجع المقالة إعدادات الأمان لمركز اتصال Webex.
-
-
حساب مدخل مطور 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 هي فانكوفر ويوتا وطوكيو وواشنطن وزانادو. لمزيد من المعلومات، راجع Webex تكامل مركز الاتصال مع ServiceNow.
اتبع إحدى الطريقتين التاليتين:
بالنسبة لمثيلات المطور، نوصي باتباع الخطوات الواردة في دليل مثيل المطور.
إذا كنت تمتلك مثيلا مرخصا من المؤسسة، فاتبع الإرشادات الخاصة بالمثيلات المرخصة من قبل المؤسسة.
لا نوصي بمزج التطبيق المرخص من قبل المؤسسة مع مثيلات وضع الحماية للمطورين.
تصف الأقسام التالية خطوات تثبيت موصل ServiceNow لمثيلات المطور.
1 |
قم بتسجيل الدخول إلى حساب مدخل مطور ServiceNow الخاص بك وافتح وحدة تحكم الإدارة . |
2 |
من منطقة المثيل الخاص بي في قائمة الحساب ، انقر فوق بدء البناء. |
3 |
في مثيل المطور الخاص بك، من حقل متصفح عامل التصفية في الجزء العلوي الأيسر من النافذة، انتقل إلى المكونات الإضافية. |
4 |
ابحث عن المكون الإضافي Openframe الذي يحمل العنوان Openframe. قد تحتاج إلى التمرير خلال القائمة. |
5 |
انقر فوق تثبيت لتثبيت المكون الإضافي Openframe. |
6 |
في مربع الحوار تنشيط المكون الإضافي ، انقر فوق تنشيط. |
7 |
عند اكتمال تنشيط المكون الإضافي، انقر فوق إغلاق النموذج وإعادة تحميله في مربع الحوار تنشيط المكون الإضافي. |
8 |
للتحقق من تنشيط المكون الإضافي ، من حقل متصفح التصفية في الجزء العلوي الأيسر من النافذة ، انتقل إلى OpenFrame. |
9 |
انقر فوق التكوينات وتأكد من ظهور المكون الإضافي OpenFrame في قائمة تكوينات OpenFrame. |
1 |
قم بتنزيل أحدث ملف 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 التالية: |
3 |
انقر فوق agentdesktop_url لفتح صفحة خصائص النظام agentdesktop_url . |
4 |
في حقل القيمة ، أدخل عنوان URL لسطح مكتب مركز الاتصال Webex وفقًا لمنطقة التشغيل.
|
5 |
انقر فوق تحديث لحفظ التغييرات. |
6 |
(اختياري) لتغيير اسم جدول النشاط، قم بتعديل خصائص webexccactivitytable كما هو مطلوب. في صفحة خصائص النظام ، انقر فوق جدول نشاط الويب. قم بتغيير حقل القيمة حسب الحاجة. |
7 |
(اختياري) قم بإضافة مجموعات المستخدمين بالطرق التالية:
|
1 |
من حقل متصفح المرشحات ، انتقل إلى . |
2 |
انقر فوق New (جديد). |
3 |
أدخل الخصائص التالية لعنوان URL:
|
4 |
على يمين حقل URL ، انقر فوق الزر القفل وأضف |
5 |
(اختياري) حدد مجموعات المستخدم/الوكيل لتعيين التكوين. |
6 |
انقر فوق إرسال. يظهر عنوان URL كرابط. |
7 |
قبل محاولة استخدام هاتف OpenFrame، تأكد من تحميل ملف JSON الخاص بتخطيط سطح المكتب المخصص لـ ServiceNow إلى بوابة إدارة مركز الاتصال Webex. لمزيد من المعلومات، راجع إعداد تخطيط سطح مكتب ServiceNow على مركز الاتصال Webex. |
1 |
قم بتنزيل تخطيط سطح المكتب لـ ServiceNow من https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
قم بتحديث الخصائص في ملف تخطيط سطح المكتب، إذا لزم الأمر. |
3 |
انتقل إلى بوابة إدارة مركز الاتصال Webex. |
4 |
من شريط التنقل في بوابة الإدارة، اختر . |
5 |
انقر فوق New Layout (تخطيط جديد) وأدخل تفاصيل تخطيط سطح المكتب. |
6 |
قم بتحميل ملف JSON الخاص بتخطيط سطح المكتب الخاص بـ ServiceNow. |
7 |
انقر فوق حفظ لحفظ التكوين. يمكنك الآن بدء تشغيل سطح مكتب مركز الاتصال Webex داخل وحدة التحكم ServiceNow. |
8 |
من حقل متصفح التصفية ، انتقل إلى . |
تتناول الأقسام التالية الخطوات اللازمة لتثبيت موصل ServiceNow لنسخ المؤسسة المرخصة.
1 |
قم بتسجيل الدخول إلى حساب بوابة مطور ServiceNow الخاص بك وافتح وحدة التحكم الإدارية . |
2 |
من منطقة مثيلاتي في القائمة الحساب ، انقر فوق بدء البناء. |
3 |
في نسخة المطور الخاصة بك، من حقل متصفح المرشحات في الجزء العلوي الأيسر من النافذة، انتقل إلى المكونات الإضافية. |
4 |
ابحث عن البرنامج الإضافي Openframe الذي يحمل العنوان Openframe. قد تحتاج إلى التمرير خلال القائمة. |
5 |
انقر فوق تثبيت لتثبيت البرنامج الإضافي Openframe. |
6 |
في مربع الحوار تنشيط البرنامج الإضافي ، انقر فوق تنشيط. |
7 |
عند اكتمال تنشيط البرنامج الإضافي، انقر فوق إغلاق النموذج وإعادة تحميله في مربع الحوار تنشيط البرنامج الإضافي . |
8 |
للتحقق من تنشيط البرنامج المساعد، من حقل متصفح المرشحات في الجزء العلوي الأيسر من النافذة، انتقل إلى OpenFrame. |
9 |
انقر فوق التكوينات وتأكد من ظهور البرنامج المساعد OpenFrame في القائمة تكوينات OpenFrame . |
يمكن للمثيلات التي لديها تراخيص مؤسسية تثبيت تطبيق مركز الاتصال Webex مباشرة من متجر ServiceNow.
قم بتنزيل وتثبيت حزمة مركز الاتصال Webex من متجر ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
في حقل متصفح عامل التصفية أعلى يمين النافذة، أدخل |
2 |
في صفحة خصائص النظام، قم بفرز الخصائص حسب تاريخ التحديث. تأكد من إمكانية الاطلاع على خصائص مركز اتصال Webex التالية: |
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 Desktop من "متاح " إلى "محدد". |
9 |
قبل محاولة استخدام هاتف OpenFrame، تأكد من تحميل ملف JSON لتخطيط سطح المكتب المخصص ServiceNow إلى مدخل إدارة مركز اتصال Webex. لمزيد من المعلومات، راجع إعداد تخطيط سطح المكتب ServiceNow على Webex مركز الاتصال. |
1 |
قم بتنزيل تخطيط سطح المكتب ل ServiceNow من https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
قم بتحديث الخصائص في ملف "تخطيط سطح المكتب"، إذا لزم الأمر. |
3 |
انتقل إلى مدخل إدارة مركز اتصال Webex. |
4 |
من شريط تنقل مدخل الإدارة، اختر سطح المكتب. |
5 |
انقر فوق New Layout (تخطيط جديد) وأدخل تفاصيل تخطيط سطح المكتب. |
6 |
قم بتحميل ملف JSON لتخطيط سطح المكتب ServiceNow. |
7 |
انقر فوق حفظ لحفظ التهيئة. يمكنك الآن بدء تشغيل Webex Contact Center Desktop داخل وحدة تحكم ServiceNow. |
8 |
من حقل متصفح عامل التصفية، انتقل إلى عمليات الخدمة. |
1 |
من حقل متصفح عامل التصفية، انتقل إلى الحوادث > حادث مفتوح. |
2 |
انقر بزر الماوس الأيمن على حقل المتصل وانقر فوق تكوين القاموس. |
3 |
أضف سمات مفصولة يمكنك الآن البدء في استخدام Webex Contact Center Desktop داخل وحدة تحكم ServiceNow. |
4 |
من حقل متصفح عامل التصفية، انتقل إلى عمليات الخدمة. |
Agent Desktop في وحدة تحكم ServiceNow
قبل إجراء مكالمات صادرة، تأكد من القيام بما يلي:
-
إنشاء نقطة إدخال صادرة وقم بإعداد استراتيجية نقطة الإدخال الصادرة.
-
تمكين ANI صادر لملف تعريف الوكيل.
-
ضبط ANI صادر على تعيين رقم الطلب إلى نقطة الإدخال.
لمزيد من المعلومات، راجع فصل التزويد من دليل الإدارة وإعداد Cisco Webex Contact Center.
من حقل متصفح عامل التصفية، انتقل إلى عمليات الخدمة.
للحصول على معلومات حول كيفية استخدام سطح المكتب، راجع علامة التبويب "العامل " في تعليمات مركز اتصال Webex.
نظرة عامة
تتناول هذه المقالة عدة طرق لتخصيص قواعد العمل لموصل ServiceNow CRM. يوضح بالتفصيل كيف يمكنك تخصيص حالات الاستخدام استنادا إلى قواعد العمل الخاصة ب ServiceNow.
يجب على العميل إدارة حالات الاستخدام هذه ذاتيا على ServiceNow. التكوين خاص ب ServiceNow وليس Webex برنامج أو خبرة مركز الاتصال.
هذه وثائق مرجعية للمساعدة في تعديل قواعد العمل. سيقوم مطورو ServiceNow بإنشاء وإدارة قواعد العمل وتقديم الدعم.
لا توفر Cisco سوى نماذج من الوثائق.
توفر الأقسام التالية تفاصيل حول كيفية إعداد عنصر واجهة مستخدم الإجراءات وتمكينه وإدارته لمثيلات المطور والمؤسسة.
تنفيذ مجموعة التحديث لعنصر واجهة المستخدم "الإجراءات"
بالنسبة لمثيلات المؤسسة المرخصة، قم بتثبيت أحدث تطبيق Webex Contact Center من متجر ServiceNow.
لإعداد عنصر واجهة المستخدم "الإجراءات" لمثيلات المطور، قم بتنزيل أحدث ملف XML "مجموعة تحديث النظام" المتاح على مستودع جيثب في هذا الموقع: 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: 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: الدالة () { 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، بالإضافة إلى استمرار ذلك في بيانات جدول نشاط ما بعد المكالمة.
هذه وثائق مرجعية فقط - وتوضح كيفية القيام بذلك لمتغير 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: 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: الدالة () { 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 يحمل علامة العميل قابل للاستدعاء.
إذا كان يجب عليك إدراج أو تحديث أو حذف أي GlideRecords في الدالة، فقم باستدعاء دالة منفصلة غير قابلة للاستدعاء لإجراء التحديثات.
لجعل البرنامج النصي قابلا للاستدعاء من قبل العميل، يجب تحديد خانة الاختيار "العميل قابل للاستدعاء" في النموذج الذي يتم عرضه عند عرض إدخال sys_script.
لا تظهر خانة الاختيار القابلة للاتصال من قبل العميل بشكل افتراضي. للعرض، يجب عليك تعديل الحقول التي تظهر في النموذج باستخدام رمز الترس وآلية دلو طين.
التخصيص # 2 - إضافة متغير CAD في جدول نشاط مركز الاتصال Webex
نظرة عامةتوضح هذه المقالة بالتفصيل عملية إضافة عمود إضافي إلى الجدول ServiceNow - webexcc_activity التي تم إنشاؤها عند تثبيت Webex CC لموصل ServiceNow CRM.
بشكل افتراضي، يحتوي الجدول على حقول وقيم نظام مبتكرة.
من المحتمل أن تقوم بإنشاء المزيد من المتغيرات الخاصة بالأعمال (متغيرات CAD) داخل مصمم WebexCC Flow وإضافة متغيرات CAD هذه داخل سجل نشاط مكالمة ما بعد ServiceNow، والاستمرار في ذلك إلى بيانات جدول نشاط ما بعد المكالمة.
-
هذه وثائق مرجعية فقط - وتوضح كيفية القيام بذلك لمتغير CAD نموذجي يسمى اسم العميل الذي يخزن اسم العميل داخل IVR وينشره إلى ServiceNow.
-
سيقوم مطورو Partner + Customer ServiceNow بتكوين هذا التكوين وإدارته لأنه تخصيص للموصل الحالي.
-
ستوفر Cisco فقط التقنيات الخاصة بكيفية تخصيص الموصل وتوسيعه.
-
اعتبارا من هذه المقالة، تحقق فريق Cisco من صحة الدعم لإضافة متغير CAD إلى سجل النشاط وجدول النشاط باستخدام التقنية الموضحة أدناه.
قم بتحرير الجدول في إصدار المطور من ServiceNow.
انتقل إلى
Webex.حدد جدول نشاط 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.