المتطلبات الأساسية

قبل دمج مركز الاتصال Webex مع وحدة تحكم ServiceNow CRM، تأكد من أن لديك ما يلي:


 

اتبع إحدى الطريقتين أدناه:

بالنسبة لمثيلات المطورين، نوصي باتباع الخطوات الواردة في دليل مثيل المطور.

إذا كنت تمتلك مثيلًا مرخصًا للمؤسسة، فاتبع الإرشادات الخاصة بالمثيلات المرخصة للمؤسسة.

لا نوصي بخلط التطبيق المرخص من قبل المؤسسة مع مثيلات وضع الحماية للمطورين.

تصف الأقسام التالية خطوات تثبيت موصل 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

انقر فوق إغلاق في مربع الحوار Update Set Preview بمجرد اكتمال المعاينة.

8

انقر فوق تنفيذ مجموعة التحديث.

9

انقر فوق إغلاق في مربع الحوار متابعة مجموعة التحديث بمجرد اكتمال الالتزام بمجموعة التحديثات.

1

في الحقل متصفح التصفية في الجزء العلوي الأيسر من النافذة، اكتب sys_properties.list واضغط على Enter.

2

في صفحة خصائص النظام ، قم بفرز الخصائص حسب تاريخ التحديث. تأكد من أنه يمكنك رؤية خصائص مركز الاتصال Webex التالية:

3

انقر فوق agentdesktop_url لفتح الصفحة وكيل خاصية النظامdesktop_url .

4

في الحقل القيمة ، أدخل عنوان URL لسطح مكتب مركز الاتصال Webex وفقًا لمنطقة التشغيل.

5

انقر فوق تحديث لحفظ التغييرات.

6

(اختياري) لتغيير اسم جدول النشاط، قم بتحرير خصائص webexccactivitytable كما هو مطلوب.

في صفحة خصائص النظام ، انقر على webexccactivitytable.

غيّر الحقل القيمة كما هو مطلوب.

7

(اختياري) قم بإضافة مجموعات المستخدمين بالطرق التالية:

  1. في الحقل متصفح المرشح في الجزء العلوي الأيسر من النافذة، انتقل إلى المجموعات ضمن أمان النظام.

  2. أنشئ مجموعة مستخدمين جديدة أو استخدم مجموعة موجودة.

  3. انقر فوق تعديل.

  4. ابحث عن sn_openframe_user ضمن المجموعة وانقله إلى مجموعة المستخدمين الخاصة بك.

  5. انقر فوق حفظ.

  6. إضافة المستخدم كعضو في المجموعة.

1

من الحقل متصفح التصفية ، انتقل إلى OpenFrame > التكوينات.

2

انقر فوق New (جديد).

3

أدخل الخصائص التالية لعنوان URL:

  • الاسم: Webex سطح مكتب مركز الاتصال

  • العنوان: Webex مركز الاتصال

  • العرض: 550 (موصى به)

  • الارتفاع: 600 (موصى به)

4

على يسار الحقل URL ، انقر فوق الزر قفل وأضف agentdesktop.do كعنوان URL. (قم بهذه الخطوة لتوجيه التكوين إلى صفحة واجهة المستخدم)

5

(اختياري) حدد مجموعات المستخدمين/الوكلاء لتعيين التكوين.

6

انقر فوق إرسال. يظهر عنوان URL كرابط.

7

قبل أن تحاول استخدام هاتف OpenFrame، تأكد من تحميل ملف ServiceNow المخصص لتخطيط سطح المكتب JSON إلى Webex Contact Center Management Portal. لمزيد من المعلومات، راجع إعداد تخطيط سطح المكتب ServiceNow على Webex مركز الاتصال.

1

قم بتنزيل تخطيط سطح المكتب لـ ServiceNow من https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

قم بتحديث الخصائص في ملف تخطيط سطح المكتب، إذا لزم الأمر.

3

انتقل إلى Webex بوابة إدارة مركز الاتصال.

4

من شريط التنقل في بوابة الإدارة، اختر التزويد > تخطيط سطح المكتب.

5

انقر فوق New Layout (تخطيط جديد) وأدخل تفاصيل تخطيط سطح المكتب.

6

قم بتحميل ملف ServiceNow Desktop Layout JSON.

7

انقر فوق حفظ لحفظ التكوين.

يمكنك الآن بدء تشغيل Webex Contact Center Desktop ضمن وحدة تحكم ServiceNow.

8

من الحقل متصفح عامل التصفية ، انتقل إلى مساحة عمل الوكيل > الصفحة الرئيسية لمساحة عمل الوكيل.

انقر على أيقونة الهاتف السفلية اليسرى.

تصف الأقسام التالية خطوات تثبيت موصل ServiceNow لمثيلات المؤسسة المرخصة.

1

قم بتسجيل الدخول إلى حساب بوابة مطور ServiceNow الخاص بك وافتح الإدارة وحدة التحكم.

2

من منطقة مثيلاتي في قائمة الحساب ، انقر على بدء الإنشاء.

3

في مثيل المطور الخاص بك، من الحقل متصفح المرشح في الجزء العلوي الأيسر من النافذة، انتقل إلى المكونات الإضافية.

4

ابحث عن المكون الإضافي Openframe الذي يحمل العنوان Openframe. قد تحتاج إلى التمرير عبر القائمة.

5

انقر على تثبيت لتثبيت المكون الإضافي Openframe.

6

في مربع الحوار تنشيط المكون الإضافي ، انقر فوق تنشيط.

7

عند اكتمال تنشيط المكون الإضافي، انقر فوق إغلاق & تحديث النموذج في مربع الحوار تنشيط البرنامج المساعد .

8

للتحقق من تنشيط المكون الإضافي، من الحقل متصفح المرشح في الجزء العلوي الأيسر من النافذة، انتقل إلى OpenFrame.

9

انقر على التكوينات وتأكد من ظهور المكون الإضافي OpenFrame في قائمة تكوينات OpenFrame .

1

في الحقل متصفح التصفية في الجزء العلوي الأيسر من النافذة، أدخل sys_properties.list.

2

في الصفحة خصائص النظام ، قم بفرز الخصائص حسب تاريخ التحديث. تأكد من أنه يمكنك رؤية خصائص مركز الاتصال Webex التالية:

3

انقر فوق agentdesktop_url لفتح الصفحة وكيل خاصية النظامdesktop_url .

4

في الحقل القيمة ، أدخل عنوان URL لسطح مكتب مركز الاتصال Webex وفقًا لمنطقة التشغيل.

5

انقر فوق تحديث لحفظ التغييرات.

6

(اختياري) لتغيير اسم جدول النشاط، قم بتحرير x_caci_webexcc.webexccactivitytable كما هو مطلوب.

  1. في صفحة خصائص النظام ، انقر على x_caci_webexcc.webexccactivitytable.

  2. قم بتغيير الحقل القيمة كما هو مطلوب.

7

(اختياري) قم بإضافة مجموعات المستخدمين بالطرق التالية:

  1. في الحقل متصفح التصفية في الجزء العلوي الأيسر من النافذة، انتقل إلى المجموعات ضمن أمان النظام.

  2. انقر فوق تحرير وأضف الأدوار التالية:

    • sn_openframe_user

    • x_caci_webexcc.agent

    • Agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

من الحقل متصفح التصفية ، انتقل إلى OpenFrame > التكوينات.

2

انقر فوق New (جديد).

3

أدخل الخصائص التالية لعنوان URL:

  • الاسم: Webex سطح مكتب مركز الاتصال

  • العنوان: Webex مركز الاتصال

  • العرض: 550 (موصى به)

  • الارتفاع: 600 (موصى به)

4

على يسار الحقل عنوان URL ، انقر فوق الزر قفل وأضف x_caci_webexcc_agentdesktop .do كعنوان URL. (قم بهذه الخطوة لتوجيه التكوين إلى صفحة واجهة المستخدم)

5

(اختياري) حدد مجموعات المستخدمين/الوكلاء لتعيين التكوين.

6

انقر فوق إرسال. يظهر عنوان URL كرابط.

7

من الحقل متصفح التصفية ، انتقل إلى مساحة عمل الوكيل > الصفحة الرئيسية لمساحة عمل الوكيل.

انقر على أيقونة الهاتف السفلية اليسرى.

8

(اختياري) في قائمة مجموعة المستخدمين ، انقل مجموعات المستخدمين التي يمكنها الوصول إلى Webex سطح مكتب مركز الاتصال من المتاح إلى محدد.

9

قبل أن تحاول استخدام هاتف OpenFrame، تأكد من تحميل ملف ServiceNow المخصص لتخطيط سطح المكتب JSON إلى Webex Contact Center Management Portal. لمزيد من المعلومات، راجع إعداد تخطيط سطح المكتب ServiceNow في مركز الاتصال Webex.

1

قم بتنزيل تخطيط سطح المكتب لـ ServiceNow من https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

قم بتحديث الخصائص في ملف تخطيط سطح المكتب، إذا لزم الأمر.

3

انتقل إلى Webex بوابة إدارة مركز الاتصال.

4

من شريط التنقل في مدخل الإدارة، اختر التزويد > تخطيط سطح المكتب.

5

انقر فوق New Layout (تخطيط جديد) وأدخل تفاصيل تخطيط سطح المكتب.

6

قم بتحميل ملف ServiceNow Desktop Layout JSON.

7

انقر فوق حفظ لحفظ التكوين.

يمكنك الآن بدء تشغيل Webex Contact Center Desktop ضمن وحدة تحكم ServiceNow.

8

من الحقل متصفح عامل التصفية ، انتقل إلى مساحة عمل الوكيل > الصفحة الرئيسية لمساحة عمل الوكيل.

انقر على أيقونة الهاتف السفلية اليسرى.

1

من الحقل متصفح عامل التصفية ، انتقل إلى الحوادث > حادثة مفتوحة.

2

انقر بزر الماوس الأيمن على حقل المتصل وانقر على تكوين القاموس.

3

أضف سمات مفصولة بفواصل "ref_contributions=show_phone,.

يمكنك الآن البدء في استخدام Webex Contact Center Desktop ضمن وحدة تحكم ServiceNow.

4

من الحقل متصفح التصفية ، انتقل إلى مساحة عمل الوكيل > الصفحة الرئيسية لمساحة عمل الوكيل.

انقر على أيقونة الهاتف السفلية اليسرى.

Agent Desktop في وحدة تحكم ServiceNow

قبل إجراء مكالمات صادرة، تأكد من القيام بما يلي:

  • إنشاء نقطة إدخال صادرة وقم بإعداد استراتيجية نقطة الإدخال الصادرة.

  • تمكين ANI صادر لملف تعريف الوكيل.

  • ضبط ANI صادر على تعيين رقم الطلب إلى نقطة الإدخال.

لمزيد من المعلومات، راجع فصل التزويد من دليل الإدارة وإعداد Cisco Webex Contact Center.

من الحقل متصفح التصفية ، انتقل إلى مساحة عمل الوكيل > الصفحة الرئيسية لمساحة عمل الوكيل.

انقر على أيقونة الهاتف السفلية اليسرى.

للحصول على معلومات حول كيفية استخدام سطح المكتب، راجع Cisco Webex Contact Center Agent Desktop دليل المستخدم.

تقسيم تخزين الطرف الثالث

قد تؤدي مشكلة محتملة في التحديث الأخير لـ Google Chrome وEdge 116 أو الإصدارات الأحدث إلى تعطيل تجربة تسجيل الدخول إلى موصلات CRM في مركز الاتصال Webex. تؤثر هذه المشكلة على تسجيل الدخول إلى سطح المكتب على وحدة تحكم ServiceNow CRM.

لحل هذه المشكلة على متصفح Google Chrome:

  1. افتح متصفح Google Chrome وأدخل chrome://flags/#third-party-storage-partitioning في شريط العناوين.

  2. قم بتعطيل علامة تقسيم التخزين التجريبي لجهة خارجية .

  3. أغلق وأعد تشغيل Chrome.

  4. قم بتسجيل الدخول مرة أخرى إلى سطح المكتب داخل وحدة تحكم ServiceNow CRM.

لحل هذه المشكلة على متصفح Edge:

  1. افتح المتصفح وأدخل edge://flags/#third-party-storage-partitioning في شريط العناوين.

  2. قم بتعطيل علامة تقسيم التخزين التجريبي لجهة خارجية .

  3. احفظ التغييرات وأعد تشغيل المتصفح.

  4. قم بتسجيل الدخول مرة أخرى إلى سطح المكتب داخل وحدة تحكم ServiceNow CRM.

لحل هذه المشكلة على متصفح Firefox:

  1. افتح المتصفح وأدخل about:config في شريط العناوين.

    قد تظهر صفحة تحذير. انقر على قبول المخاطرة والمتابعة للانتقال إلى صفحة حول:config .

  2. يدخل Network.cookie.cookieBehavior في ال اسم تفضيل البحث المربع في الجزء العلوي حول: التكوين الصفحة للعثور على التفضيل.

  3. انقر نقرًا مزدوجًا على التفضيل أو انقر يحرر أيقونة لتحرير التفضيلات.

  4. قم بتغيير القيمة إلى 0.

  5. احفظ التغييرات وأعد تشغيل المتصفح.

  6. قم بتسجيل الدخول مرة أخرى إلى سطح المكتب داخل وحدة تحكم ServiceNow CRM.

نظرة عامة

تتناول هذه المقالة عدة طرق لتخصيص قواعد العمل الخاصة بك لموصل ServiceNow CRM. وهو يوضح بالتفصيل كيف يمكنك تخصيص حالات الاستخدام بناءً على قواعد العمل الخاصة بـ ServiceNow.

يجب على العميل إدارة حالات الاستخدام هذه ذاتيًا على ServiceNow. التكوين خاص بـ ServiceNow وليس برنامج Webex لمركز الاتصال أو الخبرة.


 

هذه وثيقة مرجعية للمساعدة في تعديل قواعد العمل. سيقوم مطورو ServiceNow بإنشاء وإدارة قواعد العمل وتقديم الدعم.

توفر Cisco نماذج وثائق فقط.

تغيير الكود في ServiceNow

يتضمن البرنامج النصي التغييرات
  1. انتقل إلى متصفح التصفية وابحث عن يتضمن البرنامج النصي.

    حدد يتضمن البرنامج النصي ضمن واجهة مستخدم النظام.

  2. قم بتصفية الاسم وابحث عنه com.propUtils.

  3. تغيير الطريقة معرف المستخدم في البرنامج النصي.

    الحالي:

    UserGetSysId: function () { var open_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); إذا (user.next()) open_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assisted_to= gs.getUserID(); grInt.type= 'الهاتف'; grInt.opened_for= open_for; var sysid=grInt.insert(); عودة النظام؛ },

    نموذج التعليمات البرمجية الجديد للحادث:

    UserGetSysId: function () { var open_for; // التغييرات المتعلقة بالحادث var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { open_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', open_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='الهاتف'; inc.short_description='تم تلقي مكالمة من'+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assisted_to= gs.getUserID(); grInt.type= 'الهاتف'; grInt.opened_for= open_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; إرجاع JSON.stringify(sysidlist); },

تغيير الأسلوب على صفحات واجهة المستخدم
  1. انتقل إلى متصفح التصفية وابحث عن صفحة واجهة المستخدم.

    حدد صفحات واجهة المستخدم ضمن واجهة مستخدم النظام.

  2. قم بتصفية الاسم وابحث عن com.agentdesktop.

  3. غير ال Screenpop الوظيفة في البرنامج النصي للعميل.

    الوظيفة الحالية:

    // شاشة منبثقة function 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({ الكيان: 'التفاعل'، الاستعلام: 'sys_id='+sysid });

    نموذج رمز للحادث:

    // شاشة منبثقة function 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({ الكيان: '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

  1. قم بتحرير الجدول في إصدار المطور من ServiceNow.

  2. انتقل إلى متصفح المرشح وابحث عن الاستوديو.

    تحديد Webex Contact Center

    أو

  3. حدد نشاط WebexCC IMP طاولة

  4. أضف عمودًا جديدًا، على سبيل المثال، اسم الزبون

إضافة عمود إلى سجل الهاتف

  1. تحرير جدول سجل الهاتف.

  2. أضف عمودًا جديدًا، على سبيل المثال، اسم الزبون.

خريطة تحويل نشاط WebexCC

أضف عمودًا جديدًا، على سبيل المثال، اسم الزبون رسم الخرائط الميدانية.

تخصيص أعمدة القائمة

كما توصي Service Now، قم بتغيير إجراء الاختيار من الإنشاء إلى التجاهل.

تكوين قائمة سجلات الهاتف

انتقل إلى تضمين البرنامج النصي


 

إضافة سطر واحد فقط webexcc.u_customername=actInfo.CustomerName لدعمUtils.

عينة من البرنامج النصي

انظر السطر: webexcc.u_customername=actInfo.CustomerName; مع تعليق مؤيد.

varpropUtils = 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 open_for; var user = new GlideRecord("sys_user"); user.addQuery( this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) open_for=user.sys_id;//return user.sys_id; // else / / return null; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.signed_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= open_for; var sysid=grInt. Insert(); return sysid; }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc. webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); 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 = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id',suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } إرجاع sys_id; }، اكتب: 'propUtils' });

قم بإنشاء متغير CAD في مصمم التدفق

أضف متغير CAD إلى تخطيط سطح المكتب

مثال

"CadName1:SnowField1,CadName2:SnowField2" CadName1 هو CustomerName يتم استخدام SnowField1 أيضًا كـ CustomerName وهو جزء من نموذج النص الموضح أعلاه "actInfo.CustomerName".

لقطات تجريبية

اعرض متغير CAD المضاف حديثًا في جدول نشاط WebexCC.

إنشاء متغير CAD لمصمم التدفق

إلحاح الحادث

تأثير الحادث

تحديث البرنامج النصي للخدمة الآن

تتضمن التحديثات على البرنامج النصي

  1. انتقل إلى متصفح التصفية وابحث عن يتضمن البرنامج النصي

    حدد يتضمن البرنامج النصي الخيار تحت واجهة مستخدم النظام.

  2. تصفية اسم مع com.propUtils.

  3. تغيير الطريقة معرف المستخدم في ال النصي مجال.

    البرنامج النصي الحالي:

    UserGetSysId: function () { var open_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); إذا (user.next()) open_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assisted_to= gs.getUserID(); grInt.type= 'الهاتف'; grInt.opened_for= open_for; var sysid=grInt.insert(); عودة النظام؛ },

    نموذج التعليمات البرمجية الجديد للحادث:

    UserGetSysId: function () { var open_for; فار sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { open_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', open_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='الهاتف'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='تم تلقي مكالمة من'+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assisted_to= gs.getUserID(); grInt.type= 'الهاتف'; grInt.opened_for= open_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; إرجاع JSON.stringify(sysidlist);//sysid; },

تغيير الطريقة على صفحات واجهة المستخدم
  1. انتقل إلى متصفح التصفية وابحث عن صفحات واجهة المستخدم.

    حدد صفحات واجهة المستخدم الخيار تحت واجهة مستخدم النظام.

  2. تصفية صفحات واجهة المستخدم مع اسم والبحث عن com.agentdesktop.

  3. غير ال Screenpop وظيفة في مجال البرنامج النصي.

    الوظيفة الحالية:

    // شاشة منبثقة function 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({ الكيان: 'التفاعل'، الاستعلام: 'sys_id='+sysid }); }

    نموذج رمز للحادث:

    // انبثاق الشاشة function screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != unified) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != uncategorized) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } 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.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); 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

إضافة جديد - لخريطة أرقام التفاعل

إضافة جديد - لخريطة رقم الحادث

انقر فوق تحديث.

تتضمن التغييرات في البرنامج النصي

  1. انتقل إلى متصفح التصفية وابحث عن "يتضمن البرنامج النصي".

    حدد يتضمن البرنامج النصي تحت واجهة مستخدم النظام.

  2. تصفية اسم مع com.propUtils.

  3. تغيير الطريقة setWebexcctable.

    نموذج التعليمات البرمجية الجديد للحادث:

    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; فار Incnum = ""؛ فار إنتينوم = ""; حذف actInfo['interaction_sys_id']; حذف actInfo['incident_sys_id']; if( Interactionsysid!= null && Interactionsysid != unified){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', Interactionsysid ); inte.addQuery('sys_id', Interactionsysid ); inte.query(); إذا (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes='تحديث الحالة إلى مغلق.'; inte.update(); } } if( incsysid!= null && incsysid != uncategorized){ 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 = 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; },

يتغير الأسلوب على صفحات واجهة المستخدم

  1. انتقل إلى متصفح التصفية وابحث عن صفحات واجهة المستخدم

    حدد الخيار صفحات واجهة المستخدم ضمن واجهة مستخدم النظام.

  2. قم بتصفية صفحات واجهة المستخدم باستخدام الاسم وابحث عن agentdesktop.

  3. غير ال الآن الأنشطة وscreenpop وظيفة في البرنامج النصي.

    الوظيفة الحالية:

    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 != غير محدد) { 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({ الكيان: '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، قم بإنشاء سجل حادث جديد.

  1. ابحث عن قواعد العمل في متصفح التصفية

  2. انقر فوق New (جديد).

    رمز العينة كمرجع:

    وظيفة customcti() { var url = null; اسم فار = sysparm_caller_name؛ العيد = sysparm_caller_id; var phone = sysparm_caller_phone; var TaskID = sysparm_task_id; var fQuery = sysparm_query; إذا (fQuery == null) fQuery = ''; فار عرض = 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"، name); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone"، phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + معرف المستخدم; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery!= null) url += "&sysparm_query=" + fQuery; } الإجابة = url; عنوان URL للإرجاع؛ } وظيفة UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); إذا قام (user.next()) بإرجاع user.sys_id; وإلا يعود فارغًا؛ }

    نموذج لتكوين قاعدة العمل

  3. تمكين العميل للاستدعاء

    تكامل الاتصالات الهاتفية بالكمبيوتر (CTI) معالجة الحوادث تم وضع علامة على أنها حقيقي.

  4. قم بتحديث عنوان URL الخاص بـ screenpop باستخدام القاعدة المخصصة CTI " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone= "

مثال

ال sysparm_cti_rule=name أين ' اسم "هو اسم أ وظيفة هو أن يتم الاحتجاج ل CTI المعالجة بدلاً من استخدام البرنامج النصي الافتراضي.

تحديد الوظيفة في أ sys_script تم وضع علامة على الإدخال العميل قابل للاستدعاء.

إذا كان يجب عليك إدراج أو تحديث أو حذف أي GlideRecords في الوظيفة، فاستدعاء وظيفة منفصلة غير تابعة للعميل قابلة للاستدعاء لإجراء التحديثات.


 

لجعل البرنامج النصي قابلاً للاستدعاء من قبل العميل، يجب عليك تحديد خانة الاختيار القابلة للاستدعاء من قبل العميل في النموذج الذي يتم عرضه عند عرض إدخال sys_script.

لا تظهر خانة الاختيار القابلة للاستدعاء من قبل العميل بشكل افتراضي. للعرض، يجب عليك تعديل الحقول التي تظهر في النموذج باستخدام رمز الترس وآلية الجرافة البطيئة.

مراجع

التخصيص رقم 2 - أضف متغير CAD في جدول نشاط مركز الاتصال Webex

نظرة عامة

توضح هذه المقالة تفاصيل عملية إضافة عمود إضافي إلى جدول ServiceNow - webexcc_activity الذي تم إنشاؤه عند تثبيت Webex CC لـ ServiceNow CRM Connector.

بشكل افتراضي، يحتوي الجدول على حقول وقيم النظام الجاهزة.

يمكنك إنشاء المزيد من المتغيرات الخاصة بالأعمال (متغيرات CAD) داخل مصمم WebexCC Flow وإضافة متغيرات CAD تلك داخل ServiceNow سجل أنشطة ما بعد المكالمة، والاستمرار في ذلك إلى جدول أنشطة ما بعد المكالمة البيانات.


 
  • هذه وثائق مرجعية فقط - وتوضح كيفية القيام بذلك لنموذج متغير CAD يسمى اسم العميل الذي يخزن اسم العميل داخل IVR وينشره في ServiceNow.

  • سيقوم مطورو Partner+Customer ServiceNow بتكوين هذا التكوين وإدارته لأنه تخصيص للموصل الموجود.

  • ستوفر Cisco فقط التقنيات الخاصة بكيفية تخصيص الموصل وتوسيعه.

  • اعتبارًا من هذه المقالة، قام فريق Cisco بالتحقق من صحة الدعم لإضافة متغير CAD إلى سجل الأنشطة وجدول الأنشطة باستخدام التقنية الموضحة أدناه.

أضف عمودًا إلى نشاط WebexCC
  1. قم بتحرير الجدول في إصدار المطور من ServiceNow.

  2. انتقل إلى الاستوديو > Webex مركز الاتصال.

  3. حدد جدول نشاط WebexCC .

  4. على سبيل المثال، اسم العميل.

  5. حدد تخطيط القائمة لـ نشاط WebexCC.

إنشاء برنامج نصي جديد يتضمن

 

هذه الخطوة غير مطلوبة إذا كنت تستخدم مجموعة التحديث XML - يلزم إضافة سطر واحد فقط "webexcc.u_customername=actInfo.CustomerName" إلى PropUtils.

عينة من البرنامج النصي

راجع السطر الذي يحتوي على:webexcc.u_customername=actInfo.CustomerName; مع تعليق داعم.

varpropUtils2 = 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 = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id',suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } إرجاع sys_id; }، اكتب: 'propUtils2' });
قم بتحرير صفحة واجهة المستخدم باستخدام اسم البرنامج النصي الجديد

قم بإنشاء متغير CAD في مصمم التدفق

أضف متغير CAD إلى تخطيط سطح المكتب

لقطات تجريبية

اعرض متغير CAD المضاف حديثًا في جدول نشاط WebexCC.