دمج مركز اتصال Webex مع ServiceNow (الإصدار 1 - Legacy)

list-menuهل لديك ملاحظات؟
عندما تقوم بدمج مركز اتصال Webex مع وحدة تحكم ServiceNow CRM، يمكنك تشغيل سطح مكتب مركز اتصال Webex من داخل ServiceNow.

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

الحد الأدنى للحجم المدعوم لواجهة الهاتف المحمول هو 500 بكسل. قد تؤدي أي قيمة أقل من 500 بكسل إلى مشكلات في العرض أو الوظائف.

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

  • الوصول إلى مركز اتصال Webex.

  • وصول المسؤول إلى مركز التحكم على https://admin.webex.com ومركز Management Portal اتصال Webex. عناوين URL Management Portal الخاصة بـ منطقتك خاصة.

  • وكيل لديه حق الوصول إلى سطح المكتب. عنوان URL لسطح المكتب خاص بمنطقتك.

  • وصول الوكيل إلى المجال التالي الذي تمت إضافته في قائمة المسموح بها لسياسة أمان المحتوى:

    • *. الخدمة - الآن. كوم

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

  • حساب بوابة مطوري ServiceNow. لإنشاء حساب، انتقل إلى بوابة مطوري ServiceNow على https://developer.servicenow.com/dev.do وانقر فوق التسجيل وبدء الإنشاء.

  • الوصول إلى الملفات التالية على https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:

    • مجموعة تحديث سيرفيس ناو (XML)

    • تخطيط سطح المكتب لمركز اتصال ServiceNow (JSON)

  • إصدارات ServiceNow التي يدعمها مركز اتصال Webex هي فانكوفر ويوتا وتوكيا وواشنطن وزانادو. لمزيد من المعلومات، راجع تكامل مركز اتصال Webex مع ServiceNow.

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

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

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

لا يتم دعم القنوات الرقمية مثل الدردشة والبريد الإلكتروني باستخدام موصلات CRM. ينطبق هذا على جميع عمليات تكامل CRM باستخدام هذه الموصلات. يرجى تخطيط عمليات النشر ومشاركة العملاء وفقًا لذلك.

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

1

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

2

من منطقة My Instance من قائمة الحساب، انقر فوق بدء الإنشاء.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

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

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

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

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

انقر فوق التثبيت لتثبيت ملحق Openframe.

6

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

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

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

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

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

9

انقر فوق التكوينات وتأكد من ظهور ملحق OpenFrame في قائمة تكوينات OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

قم بتنزيل أحدث ملف XML لمجموعة تحديث النظام المتاح على github repo في هذا الموقع: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

اسم الملف: خدمة WebEXCC - التحديث الآن - setv (X) .xml

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

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

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

انقر فوق ارتباط استيراد مجموعة التحديث من XML.

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

4

انقر فوق اختيار ملف، وحدد ملف XML الخاص بمجموعة تحديث النظام، ثم انقر فوق تحميل.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

تظهر مجموعة التحديث في قائمة مجموعات التحديث المستردة وهي في حالة التحميل.
5

من قائمة مجموعات التحديث المستردة، انقر فوق اسم ملف مجموعة التحديث (رابط) لفتح مجموعة التحديث.

ServiceNow developer portal retrieved update sets list for an updated file.

6

في الجزء العلوي الأيسر من النافذة، انقر فوق معاينة مجموعة التحديث للتحقق من مجموعة التحديث بحثًا عن المشكلات.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

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

ServiceNow developer portal with the update set preview success notification.

8

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

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

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

ServiceNow developer portal with the update set commit success notification.

1

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

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

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

ServiceNow developer instance system properties page.

3

انقر agentdesktop_urlلفتح agentdesktop_url صفحة خصائص النظام.

4

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

ServiceNow developer instance system property details for agentdesktop_url.

5

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

6

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

في صفحة خصائص النظام، انقر فوق webexcactivitytable.

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

ServiceNow developer instance system property details for webexactivitytable.

7

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

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

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. قم بإنشاء مجموعة مستخدمين جديدة أو استخدم مجموعة موجودة.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. انقر فوق تحرير.

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

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

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

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

    ServiceNow developer instance group page with user roles assigned.

1

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

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

انقر فوق جديد.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

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

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

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

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

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

4

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

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

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

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

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

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

7

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

1

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

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

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

3

انتقل إلى مركز Management Portal اتصال Webex.

4

من شريط Management Portal التنقل، اختر التوفير > تخطيط سطح المكتب.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

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

6

قم بتحميل ملف JSON لتخطيط سطح المكتب ServiceNow.

7

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

يمكنك الآن بدء تشغيل سطح مكتب مركز اتصال Webex داخل وحدة تحكم ServiceNow.

8

من حقل متصفح التصفية، انتقل إلى مساحة عمل عمليات الخدمة.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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

1

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

2

من منطقة My Instance من قائمة الحساب، انقر فوق بدء الإنشاء.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

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

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

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

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

انقر فوق التثبيت لتثبيت ملحق Openframe.

6

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

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

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

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

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

9

انقر فوق التكوينات وتأكد من ظهور ملحق OpenFrame في قائمة تكوينات OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

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

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

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

ServiceNow developer instance system properties page results.

3

انقر agentdesktop_urlلفتح agentdesktop_url صفحة خصائص النظام.

4

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

ServiceNow developer instance system property details page for agentdesktop_url.

5

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

6

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

  1. في صفحة خصائص النظام، انقر فوق x_caci_webexcc.webexcactivitytable.

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

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

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

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

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

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

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

    • sn_openframe_user

    • x_caci_webexcc. وكيل

    • agent_workspace_user

    • x_caci_webexcc. webexcc_imp_activity_user

    • x_caci_webexcc. webex_contact_center

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

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

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

انقر فوق جديد.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

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

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

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

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

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

4

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

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

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

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

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

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

من حقل متصفح التصفية، انتقل إلى مساحة عمل عمليات الخدمة.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

8

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

9

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

1

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

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

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

3

انتقل إلى مركز Management Portal اتصال Webex.

4

من شريط Management Portal التنقل، اختر التوفير > تخطيط سطح المكتب.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

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

6

قم بتحميل ملف JSON لتخطيط سطح المكتب ServiceNow.

7

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

يمكنك الآن بدء تشغيل سطح مكتب مركز اتصال Webex داخل وحدة تحكم ServiceNow.

8

من حقل متصفح التصفية، انتقل إلى مساحة عمل عمليات الخدمة.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

1

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

2

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

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

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

ServiceNow developer instance call incident window for a Directory Entry.

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

4

من حقل متصفح التصفية، انتقل إلى مساحة عمل عمليات الخدمة.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • نحن ندعم تسجيل الدخول Agent Desktop باستخدام WebRTC لموصلات Salesforce (SFDC) وMicrosoft Dynamics (MS Dynamics) فقط.
  • حاليًا، تنطبق هذه الميزة على الوكلاء فقط.

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

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

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

  • قم بتمكين ANI الخارجي لملف تعريف الوكيل.

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

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

من حقل متصفح التصفية، انتقل إلى مساحة عمل عمليات الخدمة.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

للحصول على معلومات حول كيفية استخدام سطح المكتب، راجع علامة تبويب العامل في تعليمات مركز اتصال Webex.

نظرة عامة

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

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

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

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

توفر الأقسام التالية تفاصيل حول كيفية إعداد أداة الإجراءات وتمكينها وإدارتها لمثيلات المطور والمؤسسة.

قم بتنفيذ أداة التحديث الخاصة بمجموعة الإجراءات

بالنسبة لمثيلات المؤسسات المرخصة، قم بتثبيت أحدث تطبيق Webex Contact Center من متجر ServiceNow.

لإعداد أداة الإجراءات لمثيلات المطور، قم بتنزيل أحدث ملف XML لمجموعة تحديثات النظام المتاح على github repo في هذا الموقع: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. اسم الملف هو webexcc-servicenow-update-setv7-1-ActionsWidget.xml. لتنفيذ مجموعة التحديث لأداة الإجراءات، راجع الخطوات من 2 إلى 9 في تنفيذ مجموعة التحديث.

أداة تمكين الإجراءات

استخدم الخاصية isWidgetDisplayEnabled لتمكين أداة الإجراءات. يجب ألا تقوم بتعديل قيمة هذه الخاصية في القسم بدون رأس لتخطيط سطح المكتب المخصص. يتم دائمًا تعيين الخاصية على false في القسم بدون رأس لتخطيط سطح المكتب المخصص. يجب تحديث قيمة الخاصية فقط في قسم اللوحة في تخطيط سطح المكتب المخصص.

بمجرد تمكين أداة الإجراءات في تخطيط سطح المكتب المخصص، يمكنك تنفيذ الإجراءات التالية:

  • إدارة سجلات الأنشطة - انقر فوق عرض/تحرير سجل النشاط لعرض قائمة سجلات الأنشطة المرتبطة بالمتصل.
  • ربط كائنات CRM - انقر فوق الارتباط بسجلات الأنشطة لإضافة كائنات CRM مثل نوع المكالمة (واردة أو صادرة) وكائن المكالمة وملاحظات المكالمة وما إلى ذلك إلى سجل النشاط.
  • إدارة الحوادث - انقر فوق إنشاء حادث. يتم إنشاء حادث جديد مع ملء تفاصيل المتصل مسبقًا. يمكنك إجراء التحديثات المطلوبة للحادث. يمكنك اختيار تعديل نوع السجل من حادث إلى آخر، ووحدة الموارد البشرية، وما إلى ذلك بناءً على متطلباتك. لتغيير نوع السجل، قم بتعديل قيمة خاصية typeOfRecord في تكوين أداة الإجراءات. على سبيل المثال:
    {
                  "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" : "Create Incident" 
                      },
                      "wrapper": {
                        "title": "SNOW Actions !",
                        "maximizeAreaName": "app-maximize-area"
                      }
                    }
                  ]
                }
  • إضافة ملاحظات المكالمة المباشرة - يمكنك الحصول على معلومات إضافية حول المكالمة في منطقة النص واختتام المكالمة. يمكنك مشاهدة هذه الملاحظات المضافة كملاحظات مكالمات في سجل النشاط.

تغيير الكود على ServiceNow

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

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

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

  3. قم بتغيير الطريقة 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 : function () {
                var opened_for;
    
            //Incident related changes
                 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 = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);
            },

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

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

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

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

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

    // screen pop
    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({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });

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

    // screen pop
    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();
    
    // 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({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8'  
           });
        }
       
    }

إذا كانت معلومات المتصل موجودة في CRM، وكان هناك بالفعل حادث جديد تم فتحه مع جهة الاتصال هذه، يفتح التطبيق الحادث الجاري

في حالة عدم وجود معلومات المتصل في CRM، يفتح التطبيق حادثة جديدة

في حالة وجود معلومات المتصل في CRM، يفتح التطبيق حادثة جديدة بتفاصيل مملوءة مسبقًا

نظرة عامة

توضح حالة الاستخدام هذه عملية إضافة عمود إضافي إلى جدول ServiceNow - webexcc_imp_activity وإنشاءه sn_openframe_phone_log عند تثبيت Webex CC for ServiceNow CRM Connector.

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

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

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

من المتوقع أن يقوم مطورو الشريك+Customer ServiceNow بتكوين وإدارة هذا التكوين لأنه تخصيص للموصل الحالي.

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

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

إضافة عمود إلى نشاط WebExcc IMP

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

    ServiceNow developer instance WebexCC IMP activity table.

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

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    حدد مركز اتصال Webex

    Studio app for ServiceNow with the Select Application window open.

    أو

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. حدد جدول نشاط WebEXCC IMP

    Studio app for ServiceNow WebexCC IMP Activity table.

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

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

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

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

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

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

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

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

Studio app for ServiceNow WebexCC Activity Transform Map.

أضف عمودًا جديدًا، على سبيل المثال، تعيين حقل CustomerName.

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

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

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

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

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

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

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

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

أضف سطرًا واحدًا فقط webexcc. u_customername= Actionfo.اسم العميل لدعم ITLS.

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

نموذج نصي

انظر السطر: 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;
//            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 : 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;
                 
                // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
                 
                sys_id=webexcc.insert();
 
                //Activities on Incident record;
                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();
     
                            }
                    }
            }  
            return sys_id;
       },
 
    type: 'propUtils'
});

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

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

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

مثال

"CadName1:SnowField1,CadName2:SnowField2"
 CadName1 is CustomerName
 SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Example source code for adding the CAD variable to the Desktop Layout.

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

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

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

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

إلحاح الحادث

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

تأثير الحادث

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

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

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

  1. انتقل إلى متصفح الفلتر وابحث عن script includes

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

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. قم بتصفية الاسم باستخدام propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. قم بتغيير الطريقة UserGetSysId في حقل البرنامج النصي.

    ServiceNow developer instance Script Includes – propUtils details page.

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

    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 : function () {
                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 = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.urgency=this.getParameter('IncUrgency');
                                        inc.impact=this.getParameter('Impact');
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);//sysid;
            },

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

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

    ServiceNow developer instance filter navigator search for ‘Ui page’

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

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. قم بتغيير وظيفة screenpop في حقل البرنامج النصي.

    ServiceNow developer instance UI Page – agentdesktop details page.

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

    // screen pop
    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({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });
    
    }

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

    // screen pop
    function 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('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({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
       
    }

إذا كانت معلومات المتصل موجودة في CRM، ولم يكن هناك حادث جديد أو قيد التقدم، فسيفتح التطبيق حادثًا جديدًا

ServiceNow example of an incident.

ServiceNow example of an interaction.

قم بتغيير الكود على ServiceNow

أضف أعمدة جديدة إلى جدول نشاط WebExcc IMP

افتح جدول نشاط WebEXCC IMP

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

إضافة عمود جديد - رقم التفاعلات*

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

إضافة عمود جديد - رقم الحادث

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

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

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

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

افتح جدول سجل الهاتف

ServiceNow developer instance Phone Log table.

إضافة عمود جديد - رقم التفاعلات*

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

إضافة عمود جديد - رقم الحادث

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

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

افتح خريطة التحويل من متصفح الفلتر

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

انقر فوق خريطة تحويل نشاط WebEXCC

ServiceNow developer instance WebexCC Activity TransformMap.

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

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

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

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

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

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

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

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

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

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. قم بتصفية الاسم باستخدام PropUtils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. قم بتغيير الطريقة setWebexctable.

    ServiceNow developer instance Script includes - propUtils page

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

    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()) {
                    
                    //Activities on Incident record;
                    //var actInfoString =this.getParameter('actInfo');
                    var incsysid=actInfo.incident_sys_id;
                    var interactionsysid=actInfo.interaction_sys_id;
                    var incnum="";
                    var intenum="";
                    delete actInfo['interaction_sys_id'];
                    delete 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='Update State to closed.';
                            inte.update();
        
                        }
                    }
                    if( incsysid!= null && incsysid != undefined){
                        var inci = new GlideRecordSecure('incident');
                        inci.addQuery('sys_id', incsysid );
                        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();
    
                    
                                
                }    
                return sys_id;
           },

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

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

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

    ServiceNow developer instance filter navigator with search for ‘Ui page’

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

    ServiceNow developer instance UI Pages with Name filter applied to search.

  3. قم بتغيير وظيفة nowActivities وscreenpop في البرنامج النصي.

    ServiceNow developer instance UI Page – 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);
    
    
    }
    
    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();
          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({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
            
       
    }
    
    

النتائج بعد التحديث

ServiceNow developer instance Phone Logs page.

تنطبق التخصيصات التالية على الإصدارات 1.0.5 والإصدارات التالية. للحصول على تخصيصات الإصدارات الأحدث 1.0.7 والإصدارات الأحدث، اتبع الخطوات أعلاه.

التخصيص رقم 1 - إضافة قواعد عمل مخصصة لحالات استخدام تدفق المكالمات

قم بإنشاء سجل حوادث جديد لكل مكالمة

لكل مكالمة جديدة في موصل WebEXCC CRM في ServiceNow، قم بإنشاء سجل حوادث جديد.

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

    ServiceNow developer instance Business Rules page header.
  2. انقر فوق جديد.

    ServiceNow developer instance Business Rule – New Record.

    نموذج التعليمات البرمجية كمرجع:

    function 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", 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;
                return url;
    }
     
    function 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;
    }

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

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. تمكين العميل القابل للاستدعاء

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

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

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. قم بتحديث عنوان URL الخاص بالشاشة باستخدام قاعدة CTI المخصصة "cti.do? sysparm_cti_rule= إنشاء حادث & = "sysparm_caller_phone

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
مثال

يجب استدعاء sysparm_cti_rule=name حيث يكون 'name' هو اسم الدالة لـ CTI Processing بدلاً من استخدام البرنامج النصي الافتراضي.

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

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

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

لا تظهر خانة الاختيار القابلة للاتصال من قبل العميل افتراضيًا. للعرض، يجب تعديل الحقول التي تظهر في النموذج باستخدام أيقونة الترس وآلية الجرافة الناعمة.

المراجع

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

نظرة عامة

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

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

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

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

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

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

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

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

    ServiceNow developer instance Table – WebexCC Activity page.
  2. انتقل إلى الاستوديو > مركز اتصال Webex.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. حدد جدول أنشطة WebExcc.

    App Engine Studio WebexCC Activity table.
  4. على سبيل المثال، اسم العميل.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

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

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
إنشاء برنامج نصي جديد يتضمن

هذه الخطوة غير مطلوبة إذا كنت تستخدم تحديث Set XML - مطلوب سطر واحد فقط لإضافة "webexcc. u_customername=actinfo.customer.name "لدعم عناوين IP.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

نموذج نصي

انظر السطر مع: 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;
 
               // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
 
                sys_id=webexcc.insert();
  
                // Activities on Incident record;
                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();
                                 }
                    } 
            }    
            return sys_id;
       },
 
    type: 'propUtils2'
});
قم بتحرير صفحة واجهة المستخدم باسم برنامج نصي جديدApp Engine Studio agentdesktop UI page with new script name.

قم بإنشاء متغير CAD في مصمم التدفقWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

أضف متغير CAD إلى تخطيط سطح المكتبWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

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

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

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

يعمل موصل CRM استنادًا إلى إصدار الأداة المحدد في تخطيط سطح المكتب JSON. من المهم للغاية التأكد من تحديث إصدار الأداة داخل تخطيط سطح المكتب.

يُتوقع من المسؤولين التأكد من أن جميع تخطيطات سطح المكتب لموصل CRM هذا تستخدم إصدار الأداة هذا. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.

  • آخر تحديث للخدمة الآن - .1.0_v5.0.3.jsonServiceNow_Desktop_0. اعتبارًا من مارس 2024، إصدار الحزمة هو 1.0.9
  • آخر تحديث لـ XML - تحديث خدمة WebExcel الآن - setv7-1 - ActionsWidget.xml، يونيو 2024

هل كان هذا المقال مفيدًا؟
هل كان هذا المقال مفيدًا؟