دمج Webex Contact Center مع ServiceNow (الإصدار 1 — إصدار قديم)
المتطلبات المسبقة
في الوقت الحالي، تنطبق هذه الميزة على الوكلاء فقط.
قبل أن تقوم بدمج Webex Contact Center مع وحدة تحكم ServiceNow CRM، تأكد من أن لديك ما يلي:
-
الوصول إلى مركز اتصال Webex.
-
وصول المسؤول إلى Control Hub في 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.wxcc-anz1.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
-
آسيا والمحيط الهادئ: 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 Contact Center (JSON)
-
- إصدارات ServiceNow التي يدعمها Webex Contact Center هي فانكوفر ويوتا وتوكيا وواشنطن وشانادو. للحصول على مزيد من المعلومات، ارجع إلى دمج مركز اتصال Webex مع ServiceNow.
اتبع إحدى الطريقتين التاليتين:
بالنسبة لمثيلات المطورين، نوصي باتباع الخطوات الواردة ضمن دليل مثيل المطورين.
إذا كان لديك مثيل مرخص من قبل مؤسسة، فاتبع الإرشادات الخاصة بالمثيلات المرخصة من قبل المؤسسة.
لا نوصي بخلط التطبيق المرخص له بالمؤسسة بمثيلات sandbox الخاصة بالمطورين.
تصف الأقسام التالية خطوات تثبيت موصل ServiceNow لمثيلات المطورين.
1 |
سجّل الدخول إلى حساب مدخل مطور ServiceNow الخاص بك وافتح وحدة التحكم في الإدارة . |
2 |
من منطقة المثيل الخاص بي في قائمة الحساب ، انقر على بدء البناء. |
3 |
في مثيل المطور الخاص بك، من حقل التصفية المتصفح في أعلى يسار النافذة، انتقل إلى المكونات الإضافية. |
4 |
ابحث عن الوظيفة الإضافية Openframe التي تحمل العنوان Openframe. قد تحتاج إلى التمرير خلال القائمة. |
5 |
انقر على تثبيت لتثبيت المكون الإضافي Openframe. |
6 |
في مربع الحوار تنشيط الوظيفة الإضافية ، انقر على تنشيط. |
7 |
عند اكتمال تنشيط الوظيفة الإضافية، انقر على إغلاق النموذج وإعادة تحميل في مربع الحوار تنشيط الوظيفة الإضافية . |
8 |
للتحقق من تنشيط الوظيفة الإضافية، من حقل عامل التصفية في أعلى يسار النافذة، انتقل إلى OpenFrame. |
9 |
انقر على التكوينات وتأكد من ظهور الوظيفة الإضافية OpenFrame في قائمة تكوينات OpenFrame . |
1 |
قم بتنزيل أحدث ملف XML لتعيين تحديث النظام متاح على repo github في هذا الموقع: 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 كما هو مطلوب. في صفحة خصائص النظام ، انقر على webexccactivitytable. قم بتغيير حقل القيمة كما هو مطلوب. |
7 |
(اختياري) أضف مجموعات المستخدمين بالطرق التالية:
|
1 |
من حقل التصفية في المتصفح ، انتقل إلى . |
2 |
انقر على جديد. |
3 |
أدخل الخصائص التالية لعنوان URL:
|
4 |
إلى يمين حقل URL ، انقر على الزر تأمين وقم بإضافة |
5 |
(اختياري) حدد مجموعة (مجموعات) المستخدمين / الوكلاء لتعيين التكوين. |
6 |
انقر على إرسال. يظهر عنوان URL كارتباط. |
7 |
قبل محاولة استخدام هاتف OpenFrame، تأكد من تحميل ملف JSON لتخطيط سطح المكتب المخصص ServiceNow إلى مدخل إدارة مركز اتصال Webex. للحصول على مزيد من المعلومات، ارجع إلى إعداد تخطيط سطح المكتب ServiceNow في Webex Contact Center. |
1 |
قم بتنزيل تخطيط سطح المكتب لخدمة ServiceNow من https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
قم بتحديث الخصائص الموجودة في ملف تخطيط سطح المكتب، إذا لزم الأمر. |
3 |
انتقل إلى مدخل إدارة مركز اتصال Webex. |
4 |
من شريط تنقل مدخل الإدارة، اختر |
5 |
انقر على تخطيط جديد وأدخل تفاصيل تخطيط سطح المكتب. |
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 Contact Center مباشرةً من ServiceNow Store.
قم بتنزيل وتثبيت حزمة Webex Contact Center من متجر ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
في حقل تصفية المتصفح في الجزء العلوي الأيسر من النافذة، أدخل |
2 |
في صفحة خصائص النظام ، افرز الخصائص حسب التاريخ المحدّث. تأكد من أنك تستطيع رؤية خصائص مركز اتصال Webex التالية: |
3 |
انقر على agentdesktop_url لفتح صفحة خاصية النظام agentdesktop_url . |
4 |
في حقل القيمة ، أدخل عنوان URL الخاص بسطح مكتب مركز اتصال Webex وفقًا لمنطقة التشغيل.
|
5 |
انقر على تحديث لحفظ التغييرات. |
6 |
(اختياري) لتغيير اسم جدول النشاط، قم بتحرير خصائص x_caci_webexcc.webexccactivitytable كما هو مطلوب.
|
7 |
(اختياري) أضف مجموعات المستخدمين بالطرق التالية:
|
1 |
من حقل التصفية في المتصفح ، انتقل إلى . |
2 |
انقر على جديد. |
3 |
أدخل الخصائص التالية لعنوان URL:
|
4 |
إلى يمين حقل URL ، انقر على الزر تأمين وإضافة |
5 |
(اختياري) حدد مجموعة (مجموعات) المستخدمين / الوكلاء لتعيين التكوين. |
6 |
انقر على إرسال. يظهر عنوان URL كارتباط. |
7 |
من حقل عامل التصفية ، انتقل إلى . |
8 |
(اختياري) في قائمة مجموعة المستخدمين ، قم بنقل مجموعات المستخدمين التي يمكنها الوصول إلى سطح مكتب Webex Contact Center من متاح إلى محدد. |
9 |
قبل محاولة استخدام هاتف OpenFrame، تأكد من تحميل ملف JSON لتخطيط سطح المكتب المخصص ServiceNow إلى مدخل إدارة مركز اتصال Webex. للحصول على مزيد من المعلومات، ارجع إلى إعداد تخطيط سطح المكتب ServiceNow في Webex Contact Center. |
1 |
قم بتنزيل تخطيط سطح المكتب لخدمة ServiceNow من https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
قم بتحديث الخصائص الموجودة في ملف تخطيط سطح المكتب، إذا لزم الأمر. |
3 |
انتقل إلى مدخل إدارة مركز اتصال Webex. |
4 |
من شريط تنقل مدخل الإدارة، اختر |
5 |
انقر على تخطيط جديد وأدخل تفاصيل تخطيط سطح المكتب. |
6 |
قم بتحميل ملف JSON الخاص بتخطيط ServiceNow. |
7 |
انقر على حفظ لحفظ التهيئة. يمكنك الآن بدء سطح مكتب مركز اتصال Webex من خلال وحدة تحكم ServiceNow. |
8 |
من حقل عامل التصفية ، انتقل إلى . |
1 |
من حقل التصفية في المتصفح، انتقل إلى الحوادث > الحدث المفتوح. |
2 |
انقر بزر الماوس الأيمن على حقل المتصل وانقر على تكوين القاموس. |
3 |
أضف سمات مفصولة بفواصل يمكنك البدء الآن في استخدام سطح مكتب مركز اتصال Webex داخل وحدة تحكم ServiceNow. |
4 |
من حقل عامل التصفية ، انتقل إلى . |
لا ندعم حاليًا تسجيل الدخول إلى Agent Desktop باستخدام خيار سطح المكتب (WebRTC).
سطح مكتب الوكيل في وحدة تحكم ServiceNow
قبل إجراء مكالمات طلب خارجي، تأكد من القيام بما يلي:
-
قم بإنشاء نقطة دخول الطلب الخارجي وإعداد استراتيجية نقطة دخول الطلب الخارجي.
-
تمكين ANI الخاص بالطلب الخارجي لملف تعريف الوكيل.
-
قم بتعيين ANI الخاص بالطلب الخارجي على ربط رقم للاتصال بنقطة الدخول.
للحصول على مزيد من المعلومات، ارجع إلى فصل التوفير من دليل إعداد وإدارة Cisco Webex Contact Center.
من حقل عامل التصفية ، انتقل إلى .
لمعرفة معلومات عن كيفية استخدام سطح المكتب، ارجع إلى علامة تبويب الوكيل في تعليمات مركز اتصال Webex.
نظرة عامة
تغطي هذه المقالة عدة طرق لتخصيص قواعد عملك من أجل موصل ServiceNow CRM. وهو يشرح كيفية تخصيص حالات الاستخدام بناءً على قواعد العمل الخاصة بـ ServiceNow.
يجب أن يقوم العميل بإدارة حالات الاستخدام هذه ذاتيًا على ServiceNow. التكوين خاص بـ ServiceNow وليس ببرنامج أو خبرة مركز اتصال Webex.
هذه وثائق مرجعية للمساعدة في تعديل قواعد الأعمال. سيقوم مطورو ServiceNow بإنشاء وإدارة قواعد الأعمال وتقديم الدعم.
توفر Cisco عينة من الوثائق فقط.
تقدم الأقسام التالية تفاصيل حول كيفية إعداد عنصر واجهة المستخدم "الإجراءات" وتمكينها وإدارتها لمثيلات المطورين والمؤسسات.
تنفيذ عنصر واجهة مستخدم "مجموعة التحديث" للإجراءات
بالنسبة لمثيلات المؤسسات المرخصة، قم بتثبيت أحدث تطبيق Webex Contact Center من متجر ServiceNow.
لإعداد عنصر واجهة المستخدم "الإجراءات" لمثيلات المطورين، قم بتنزيل أحدث ملف XML لتعيين تحديث النظام متاح على repo github في هذا الموقع: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. اسم الملف هو webexcc-servicenow-update-setv7-1-ActionsWidget.xml. لتنفيذ مجموعة التحديث لعنصر واجهة المستخدم "الإجراءات"، ارجع إلى الخطوات من 2 إلى 9 في تطبيق مجموعة التحديث.
تمكين عنصر واجهة المستخدم الخاص بالإجراءات
استخدم خاصية isWidgetDisplayEnabled لتمكين عنصر واجهة المستخدم "الإجراءات". يجب ألا تقوم بتعديل قيمة هذه الخاصية في قسم بدون رأس الخاص بتخطيط سطح المكتب المخصص. يتم تعيين الخاصية دائمًا على خطأ في قسم بدون عنوان في تخطيط سطح المكتب المخصص. يجب عليك تحديث قيمة السمة فقط في قسم اللوحة من تخطيط سطح المكتب المخصص.
بمجرد تمكين عنصر واجهة المستخدم "الإجراءات" في تخطيط سطح المكتب المخصص، يمكنك تنفيذ الإجراءات التالية:
- إدارة سجلات النشاط - انقر على عرض/تحرير سجل النشاط لعرض قائمة سجلات النشاط المرتبطة بالمتصل.
- كائنات 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
يتضمن البرنامج النصي تغييرات-
انتقل إلى عامل التصفية في المتصفح وابحث عن
يتضمن البرنامج النصي
.حدد يتضمن البرنامج النصي ضمن واجهة مستخدم النظام.
-
تصفية الاسم وابحث عن
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(); return sysid; },
رمز عينة جديدة للحدث:
UserGetSysId: الوظيفة () { var opened_for; //التغييرات ذات الصلة بالحادث var sysidlist = {}; var user = جديد GlideRecordSecure("sys_user")؛ user.addQuery(this.getParameter('field')،this.getParameter('value'))؛ user.query()؛ if(user.next()) { opened_for=مستخدم.sys_id;//إعادة المستخدم.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()؛ إذا (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='Call Received من '+ 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: "التفاعل"، استعلام: 'sys_id='+sysid })؛
عينة رمز للحدث:
// شاشة منبثقة وظيفة screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // للتغيير المتعلق بالحوادث var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident'، استعلام: 'sys_id='+sysObj.incsysid، 'interaction_sys_id': sysObj.sysid })؛ }else{ openFrameAPI.openServiceNowForm({ entity: 'incident'، استعلام: '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
أو
-
حدد جدول
نشاط WebexCC IMP
-
إضافة عمود جديد، على سبيل المثال،
CustomerName
إضافة عمود إلى سجل الهاتف
-
قم بتحرير جدول سجل الهاتف.
-
إضافة عمود جديد، على سبيل المثال،
CustomerName
.
خريطة تحويل نشاط WebexCC
أضِف عمود جديد، على سبيل المثال، عملية ربط حقل CustomerName
.
تخصيص أعمدة القائمة
كما توصي الخدمة الآن، قم بتغيير إجراء الاختيار من الإنشاء إلى التجاهل.
تكوين قائمة سجلات الهاتف
انتقل إلى تضمين البرنامج النصي
أضف سطر واحد فقط webexcc.u_customername=actInfo.CustomerName
إلى propUtils.
مثال على البرنامج النصي
راجع الخط: webexcc.u_customername=actInfo.CustomerName; مع تعليق داعم.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp : الوظيفة () { 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 : الدالة () { 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; // else // return null; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; }, setWebexcctable : الوظيفة () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = GlideRecordSecure(gs.getProperty(' جديدx_caci_webexcc.webexccactivitytable'))؛ webexcc.addQuery("callobject", actInfo.CallObject)؛ webexcc.query()؛ if(!webexcc.next()) { webexcc.ani = actInfo.ani؛ webexcc.dnis =actInfo.queuename؛ webexcc.queuename =actInfo.queuename؛ webexcc.wrapuptime =actInfo.wrapuptime؛ webexcc.callduration =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(); //Activities on record incident; var actInfoString =this.getParameter('actInfo'); var suser = جديد GlideRecordSecure("sys_user")؛ suser.addQuery("phone"، this.getParameter('ani'))؛ suser.query()؛ if(suser.next()) { var inc = جديد GlideRecordSecure('incident'); inc.addQuery('caller_id"سوزر".sys_id)؛ inc.orderByDesc('sys_created_on')؛ inc.query()؛ إذا (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 is CustomerName SnowField1 is also used as CustomerName which is part of the sample srpt showen above "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(); return sysid; },
رمز عينة جديدة للحدث:
UserGetSysId: الوظيفة () { var opened_for; var sysidlist = {}; var user = جديد GlideRecordSecure("sys_user")؛ user.addQuery(this.getParameter('field')،this.getParameter('value'))؛ user.query()؛ if(user.next()) { opened_for=مستخدم.sys_id;//إعادة المستخدم.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()؛ إذا (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='Call Received من '+ 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);//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: "التفاعل"، استعلام: 'sys_id='+sysid })؛ }
عينة رمز للحدث:
// شاشة منبثقة وظيفة screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam 'incident'، استعلام: 'sys_id='+sysObj.incsysid، 'interaction_sys_id': sysObj.sysid })؛ }else{ openFrameAPI.openServiceNowForm({ entity: 'incident'، استعلام: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid })؛ } window.localStorage.setItem("screenpopinteraction"،JSON.stringify(sysObj))؛ }
إذا كانت معلومات المتصل موجودة في CRM، ولم يكن هناك حادث جديد أو لم يتم إحراز تقدم، فإن التطبيق يفتح حادثة جديدة
تغيير الرمز في ServiceNow
إضافة أعمدة جديدة إلى جدول نشاط WebexCC IMP
فتح جدول نشاط WebexCC IMPإضافة عمود جديد - InteractionsNumber إضافة عمود جديد - IncidentNumber
انقر على تحديث.
إضافة أعمدة جديدة إلى جدول سجل الهاتف
فتح جدول سجل الهاتف
خريطة تحويل نشاط WebexCC
فتح خريطة التحويل
من متصفح التصفية
انقر على WebexCC Activity TransformMap
انقر فوق Update (تحديث).
تتضمن التغييرات على البرنامج النصي
-
انتقل إلى متصفح التصفية وابحث عن "يتضمن البرنامج النصي".
حدد يتضمن البرنامج النصي ضمن واجهة مستخدم النظام.
-
قم بتصفية الاسم باستخدام
propUtils
. -
قم بتغيير الطريقة
setWebexcctable
.رمز عينة جديدة للحادث:
تعيين Webexcctable: الوظيفة () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = جديد GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject)؛ webexcc.query()؛ if(!webexcc.next()) { //Activities on record incident; //var actInfoString =this.getParameter('actInfo')؛ var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; حذف actInfo['interaction_sys_id']؛ حذف actInfo['incident_sys_id']; if( interactionsysid!= null & interactionsysid != غير محدد){ var int = GlideRecordSecure new('interaction'); //int.get('sys_id'، interactionsysid )؛ int.addQuery('sys_id', interactionsysid )؛ int.query()؛ إذا (int.next()) { intenum=int.number; // int.setValue('state','إغلاق مكتمل')؛ int.work_notes='تحديث الحالة إلى الإغلاق.'; int.update(); } } if( incsysid!= null & & incsysid != غير محدد){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid )؛ inci.query()؛ إذا (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2)؛ //JSON.stringify(JSON.parse(actInfoString),null,2)؛ inci.comments =jsonPretty; inci.update(); } }else{ var suser = جديد GlideRecordSecure("sys_user")؛ suser.addQuery("phone"، this.getParameter('ani'))؛ suser.query()؛ if(suser.next()) { var inc = جديد GlideRecordSecure('incident'); inc.addQuery('caller_id"سوزر".sys_id)؛ inc.addQuery('state'،'IN'،'1,2')؛ inc.orderByDesc('sys_created_on')؛ inc.query()؛ إذا (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= Intum; sys_id=webexcc.insert(); } عودة sys_id; }،
تغييرات الأسلوب على صفحات واجهة المستخدم
-
انتقل إلى عامل التصفية في المتصفح وابحث عن
صفحات واجهة المستخدم
حدد خيار صفحات واجهة المستخدم ضمن واجهة مستخدم النظام.
-
قم بتصفية صفحات واجهة المستخدم باستخدام الاسم وابحث عن
agentdesktop
. -
قم بتغيير وظيفة
nowActivities وscreenpop
في البرنامج النصي.الوظيفة الحالية:
الوظيفة
nowActivities(actInfo, ani) { var gaout = جديد GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }
عينة رمز للحدث:
function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != غير محدد) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid؛ actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = جديد GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } وظيفة screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = 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'، استعلام: 'sys_id='+sysObj.incsysid، 'interaction_sys_id': sysObj.sysid })؛ }else{ openFrameAPI.openServiceNowForm({ entity: 'incident'، استعلام: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid })؛ } window.localStorage.setItem("screenpopinteraction"،JSON.stringify(sysObj))؛ }
النتائج بعد التحديث
تنطبق التخصيصات التالية على الإصدارات 1.0.5 والإصدارات الأحدث. بالنسبة لعمليات التخصيص للإصدارات الأحدث 1.0.7 والإصدارات الأحدث، اتبع الخطوات المذكورة أعلاه.
رقم التخصيص 1 - إضافة قواعد عمل مخصصة لحالات استخدام تدفق المكالمات
إنشاء سجل أحداث جديد لكل مكالمةلكل مكالمة جديدة إلى موصل WebexCC CRM في ServiceNow، قم بإنشاء سجل أحداث جديد.
البحث عن "قواعد العمل" في متصفح التصفية
انقر على جديد.
رمز عينة للرجوع إليه:
الدالة customcti () { var url = فارغ; var name = sysparm_caller_name؛ العيد = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; إذا (fQuery == فارغ) fQuery = ''; var view = sysparm_view; إذا (العرض == فارغ || عرض == '') عرض = "itil"; var userID = فارغ; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null && name != '') { userID = UserGetSysId("name", name); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } إذا (url == فارغ) { url = "incident.do؟sys_id= -1"؛ إذا كان عنوان URL += "&sysparm_query=" + fQuery; } answer = url; return url; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user")؛ user.addQuery(حقل، قيمة)؛ user.query()؛ إذا (user.next()) أرجع المستخدم.sys_id; وإلا أرجع فارغًا؛ }
تكوين عينة لقاعدة العمل
تمكين اتصال العميل
تم وضع علامة على معالجة دمج الاتصالات الهاتفية الحاسوبية (CTI) للحوادث على أنها True.
تحديث عنوان url للنافذة المنبثقة للشاشة باستخدام قاعدة CTI المخصصة " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule=name حيث "name" هو اسم وظيفة يجب استدعاؤه من أجل معالجة CTI بدلاً من استخدام البرنامج النصي الافتراضي.
حدد الوظيفة في sys_script إدخال محدد بعلامة قابلة للاتصال بالعميل.
إذا يجب عليك إدراج أو تحديث أو حذف أي (سجلات) GlideRecord في الوظيفة، فاتصل بوظيفة منفصلة قابلة للاستخدام غير عميل لإجراء التحديثات.
لجعل برنامج نصي client-callable (client-callable)، يجب تحديد خانة الاختيار client-callable في النموذج الذي يتم عرضه عند عرض sys_script الإدخال.
لا تظهر خانة الاختيار القابلة للاتصال بالعميل بشكل افتراضي. لعرض ، يجب عليك تعديل الحقول التي تظهر على النموذج باستخدام أيقونة التروس وآلية دلو slush.
رقم التخصيص 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.
انتقل إلى
.حدد جدول نشاط WebexCC .
على سبيل المثال، CustomerName.
حدد تخطيط القائمة لنشاط WebexCC.
هذه الخطوة غير مطلوبة إذا كنت تستخدم XML الخاصة بمجموعة التحديث - مطلوب سطر واحد فقط لإضافة "webexcc.u_customername=actInfo.CustomerName" إلى propUtils.
مثال على البرنامج النصي
راجع السطر الذي يحتوي على:webexcc.u_customername=actInfo.CustomerName; مع تعليق داعم.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp : الوظيفة () { 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 : الوظيفة () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = GlideRecordSecure(gs.getProperty(' جديدx_caci_webexcc.webexccactivitytable'))؛ webexcc.addQuery("callobject", actInfo.CallObject)؛ webexcc.query()؛ if(!webexcc.next()) { webexcc.ani = actInfo.ani؛ webexcc.dnis =actInfo.queuename؛ webexcc.queuename =actInfo.queuename؛ webexcc.wrapuptime =actInfo.wrapuptime؛ webexcc.callduration =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(); // Activities on record incident; var actInfoString =this.getParameter('actInfo'); var suser = جديد GlideRecordSecure("sys_user")؛ suser.addQuery("phone"، this.getParameter('ani'))؛ suser.query()؛ if(suser.next()) { var inc = جديد GlideRecordSecure('incident'); inc.addQuery('caller_id"سوزر".sys_id)؛ inc.orderByDesc('sys_created_on')؛ inc.query()؛ إذا (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2)؛ inc.comments =jsonPretty; inc.update()؛ } } } إرجاع sys_id; }، النوع: 'propUtils2' })؛
تحرير صفحة واجهة المستخدم باسم برنامج نصي جديدإنشاء متغير CAD في مصمم التدفق
إضافة متغير CAD إلى تخطيط سطح المكتب
لقطات شاشة العرض التوضيحي
اعرض متغير CAD المضافة حديثًا في جدول نشاط WebexCC.