Коли ви інтегруєте Webex контакт-центр з консоллю CRM ServiceNow, ви можете запустити Webex Contact Center Desktop з ServiceNow.
Перш ніж інтегрувати Webex Contact Center з консоллю CRM ServiceNow переконайтеся, що у вас є:
-
Доступ до Webex Контакт-центру.
-
Доступ адміністратора до Control Hub за адресою https://admin.webex.com та порталу керування контакт-центром Webex. URL-адреси порталу керування стосуються вашого регіону.
-
Північна Америка: https://portal.wxcc-us1.cisco.com
-
Великобританія: https://portal.wxcc-eu1.cisco.com
-
-
Агент із доступом до робочого стола. URL-адреса робочого стола залежить від вашого регіону.
-
Північна Америка: https://desktop.wxcc-us1.cisco.com
-
Великобританія: https://desktop.wxcc-eu1.cisco.com
-
-
Доступ агента до такого домену, доданого до списку дозволених політик безпеки вмісту:
-
*.service-now.com
Щоб отримати додаткові відомості про визначення списку дозволених, перегляньте статтю Настройки безпеки для Webex Центру контактів.
-
-
Обліковий запис порталу розробників ServiceNow. Щоб створити обліковий запис, перейдіть на портал розробників ServiceNow за адресою https://developer.servicenow.com/dev.do та натисніть Зареєструватися та почати будівництво.
-
Доступ до наступних файлів за адресою https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Набір оновлень ServiceNow (XML)
-
Макет робочого столу контактного центру ServiceNow (JSON)
-
Будь ласка, дотримуйтесь одного з двох наведених нижче методів: Для екземплярів для розробників радимо виконати дії, наведені в посібнику розробника. Якщо у вас є інсталяція з корпоративною ліцензією, дотримуйтеся вказівок для інсталяцій із корпоративною ліцензією. Не радимо змішувати програму з корпоративною ліцензією з екземплярами ізольованого програмного середовища для розробників. |
У наступних розділах описано кроки для інсталяції з'єднувача ServiceNow для екземплярів розробників.
1 |
увійдіть у свій обліковий запис порталу розробників ServiceNow і відкрийте консоль адміністрування. |
2 |
В області Мій екземпляр меню Обліковий запис натисніть кнопку Почати будівництво . |
3 |
У екземплярі розробника в полі навігатора фільтра у верхньому лівому куті вікна перейдіть до розділу Плагіни. |
4 |
Знайдіть плагін Openframe, який має назву Openframe. Можливо, знадобиться прокрутити список. |
5 |
Натисніть кнопку Встановити , щоб встановити плагін Openframe. |
6 |
У діалоговому вікні Активувати плагін натисніть Активувати . |
7 |
Коли активація плагіна буде завершена, натисніть Закрити та перезавантажити форму в діалоговому вікні Активація плагіна.
|
8 |
Щоб перевірити активацію плагіна, у полі навігатора фільтрів у верхньому лівому куті вікна перейдіть до OpenFrame. |
9 |
Натисніть кнопку Конфігурації та переконайтеся, що плагін OpenFrame з'явиться у списку конфігурацій OpenFrame. |
1 |
Завантажте останній файл набору оновлень системи XML, доступний у сховищі 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 |
У списку Отримано набори оновлень клацніть ім'я файлу Update Set File (посилання), щоб відкрити Update Set. |
6 |
У верхньому правому куті вікна натисніть кнопку Попередній перегляд набору оновлень, щоб перевірити наявність проблем із оновленням. |
7 |
Натисніть кнопку "Закрити" в діалоговому вікні "Оновити набір для перегляду" після завершення попереднього перегляду. |
8 |
Натисніть кнопку Commit Update Set. |
9 |
Натисніть кнопку "Закрити" в діалоговому вікні "Фіксація набору оновлень" після завершення фіксації набору оновлень. |
1 |
У полі Навігатор фільтра у верхньому лівому куті вікна введіть sys_properties.list і натисніть клавішу Enter. |
2 |
На сторінці Властивості системи відсортуйте властивості за оновленою датою. Переконайтеся, що відображаються такі дані Webex Властивості контакт-центру : |
3 |
Натисніть кнопку agentdesktop_url , щоб відкрити сторінку agentdesktop_url властивостей системи. |
4 |
У полі Значення введіть URL-адресу робочого столу Contact Center Webex відповідно до регіону роботи.
|
5 |
Натисніть кнопку Оновити , щоб зберегти зміни. |
6 |
(Необов'язково) Щоб змінити ім'я таблиці активності, за потреби відредагуйте властивості webexccactivitytable . На сторінці System Properties (Властивості системи) натисніть webexccactivitytable . За потреби змініть поле Значення . |
7 |
(Необов'язково) Додайте групи користувачів такими способами:
|
1 |
У полі Навігатор фільтрів перейдіть до .
|
2 |
Натисніть кнопку Створити.
|
3 |
Введіть такі властивості URL-адреси:
|
4 |
Праворуч від поля URL-адреси натисніть кнопку Lock і додайте agentdesktop.do |
5 |
(Необов'язково) Виберіть групи користувачів / агентів, щоб призначити конфігурацію. |
6 |
Натисніть Submit (Надіслати). URL-адреса відображається як посилання. |
7 |
Перш ніж спробувати скористатися телефоном OpenFrame, переконайтеся, що ви завантажили файл JSON користувацького макета робочого столу ServiceNow на портал керування центром контактів Webex. Для отримання додаткової інформації див. розділ Налаштування макета робочого столу ServiceNow у Webex Центрі контактів. |
1 |
Завантажте макет робочого столу для ServiceNow з https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Оновіть властивості файлу макета робочого стола, якщо потрібно. |
3 |
Перейдіть до Webex Портал керування контакт-центром . |
4 |
На панелі переходів порталу керування виберіть пункт робочого стола. |
5 |
Натисніть кнопку Створити макет і введіть відомості про макет робочого стола. |
6 |
Завантажте файл JSON макета робочого столу ServiceNow. |
7 |
Натисніть кнопку Зберегти , щоб зберегти конфігурацію. Тепер ви можете запустити Webex Contact Center Desktop в консолі ServiceNow. |
8 |
У полі Навігатор фільтра перейдіть до робочої області агента. Натисніть на лівий нижній значок телефону. |
У наступних розділах описано кроки для інсталяції з'єднувача ServiceNow для ліцензованих корпоративних екземплярів.
1 |
увійдіть у свій обліковий запис порталу розробників ServiceNow і відкрийте консоль адміністрування. |
2 |
В області Мій екземпляр меню Обліковий запис натисніть кнопку Почати будівництво . |
3 |
У екземплярі розробника в полі навігатора фільтра у верхньому лівому куті вікна перейдіть до розділу Плагіни. |
4 |
Знайдіть плагін Openframe, який має назву Openframe. Можливо, знадобиться прокрутити список. |
5 |
Натисніть кнопку Встановити , щоб встановити плагін Openframe. |
6 |
У діалоговому вікні Активувати плагін натисніть Активувати . |
7 |
Коли активація плагіна буде завершена, натисніть Закрити та перезавантажити форму в діалоговому вікні Активація плагіна.
|
8 |
Щоб перевірити активацію плагіна, у полі навігатора фільтрів у верхньому лівому куті вікна перейдіть до OpenFrame. |
9 |
Натисніть кнопку Конфігурації та переконайтеся, що плагін OpenFrame з'явиться у списку конфігурацій OpenFrame. |
Екземпляри, які мають корпоративні ліцензії, можуть інсталювати програму Webex Contact Center безпосередньо з Магазину ServiceNow.
Завантажте та встановіть пакет Webex Contact Center із магазину ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947.
|
1 |
У полі Навігатор фільтра в лівому верхньому куті вікна введіть sys_properties.list. |
2 |
На сторінці Властивості системи відсортуйте властивості за оновленою датою. Переконайтеся, що відображаються такі дані Webex Властивості контакт-центру : |
3 |
Натисніть кнопку agentdesktop_url , щоб відкрити сторінку agentdesktop_url властивостей системи. |
4 |
У полі Значення введіть URL-адресу робочого столу Contact Center Webex відповідно до регіону роботи.
|
5 |
Натисніть кнопку Оновити , щоб зберегти зміни. |
6 |
(Необов'язково) Щоб змінити ім'я таблиці дій, за потреби відредагуйте властивості таблиці x_caci_webexcc.webexccactivitytable .
|
7 |
(Необов'язково) Додайте групи користувачів такими способами:
|
1 |
У полі Навігатор фільтрів перейдіть до .
|
2 |
Натисніть кнопку Створити.
|
3 |
Введіть такі властивості URL-адреси:
|
4 |
Праворуч від поля URL-адреси натисніть кнопку Заблокувати та додайте URL-адресу |
5 |
(Необов'язково) Виберіть групи користувачів / агентів, щоб призначити конфігурацію. |
6 |
Натисніть Submit (Надіслати). URL-адреса відображається як посилання. |
7 |
У полі Навігатор фільтра перейдіть до робочої області агента. Натисніть лівий нижній значок телефону. |
8 |
(Необов'язково) У списку Група користувачів перемістіть групи користувачів, які мають доступ до робочого стола Центру контактів Webex з Доступних до Вибраних. |
9 |
Перш ніж спробувати скористатися телефоном OpenFrame, переконайтеся, що ви завантажили файл JSON користувацького макета робочого столу ServiceNow на портал керування центром контактів Webex. Для отримання додаткової інформації див. розділ Налаштування макета робочого столу ServiceNow у Webex Центрі контактів. |
1 |
Завантажте макет робочого столу для ServiceNow з https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Оновіть властивості файлу макета робочого стола, якщо потрібно. |
3 |
Перейдіть до Webex Портал керування контакт-центром . |
4 |
На панелі переходів порталу керування виберіть пункт робочого стола. |
5 |
Натисніть кнопку Створити макет і введіть відомості про макет робочого стола. |
6 |
Завантажте файл JSON макета робочого столу ServiceNow. |
7 |
Натисніть кнопку Зберегти , щоб зберегти конфігурацію. Тепер ви можете запустити Webex Contact Center Desktop в консолі ServiceNow. |
8 |
У полі Навігатор фільтра перейдіть до робочої області агента. Натисніть на лівий нижній значок телефону. |
1 |
У полі Навігатор фільтрів перейдіть до Інциденти> Відкрити інцидент. |
2 |
Клацніть правою кнопкою миші на полі абонента та натисніть Налаштувати словник. |
3 |
Додайте атрибути Тепер ви можете почати використовувати робочий стіл Webex Contact Center у консолі ServiceNow. |
4 |
У полі Навігатор фільтра перейдіть до робочої області агента. Натисніть лівий нижній значок телефону. |
Перш ніж здійснювати виклики за номером, переконайтеся, що виконайте наведені нижче дії.
-
Створіть зовнішню точку входу та налаштуйте стратегію точки входу набору.
-
Увімкніть вихідний набір ANI для профілю агента.
-
Встановіть вихідну ANI на зіставлення номера набору з точкою входу.
Для отримання додаткової інформації перегляньте розділ Підготовка Cisco Webex Contact Center Посібник із налаштування та адміністрування.
У полі Навігатор фільтра перейдіть до робочої області агента.
Натисніть лівий нижній значок телефону.
Для отримання відомостей про використання робочого столу див.Cisco Webex Contact Center Agent Desktop Посібник користувача.
Огляд
У цій статті описано кілька способів настроювання бізнес-правил для з'єднувача ServiceNow CRM. У ньому детально описано, як ви можете налаштувати варіанти використання на основі бізнес-правил, характерних для ServiceNow.
Клієнт повинен самостійно керувати цими випадками використання на ServiceNow. Конфігурація специфічна для ServiceNow, а не Webex програмного забезпечення чи досвіду контактного центру.
Це довідкова документація, яка допомагає модифікувати бізнес-правила. Розробники ServiceNow створюватимуть бізнес-правила та керуватимуть ними, а також надаватимуть підтримку. Cisco надає лише зразки документації. |
Зміна коду на ServiceNow
-
Перейдіть до навігатора фільтрів і знайдіть "script includes".
Виберіть сценарій включення в розділі Системний інтерфейс користувача.
-
Відфільтруйте назву та знайдіть "propUtils".
-
Змініть метод "UserGetSysId" у скрипті.
Курент:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('взаємодія'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); повернути 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='Дзвінок, отриманий від '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('взаємодія'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; повернути JSON.stringify(sysidlist); },
-
Перейдіть до навігатора фільтрів і знайдіть сторінку інтерфейсу користувача.
Виберіть сторінки інтерфейсу користувача в розділі Системний інтерфейс користувача.
-
Відфільтруйте ім'я та знайдіть "agentdesktop".
-
Змініть функцію "screenpop" у сценарії клієнта.
Поточна функція:
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('поле', 'телефон'); gaout.addParam('значення', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });
Приблизний код інциденту:
функція screen pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('значення', callerani); gaout.getXMLWait(); // для змін, пов'язаних з інцидентами, 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 для ServiceNow CRM Connector.
За замовчуванням таблиця містить певні нестандартні системні поля та значення.
Ви можете створити більше специфічних для бізнесу змінних (змінних САПР) всередині конструктора потоку WebexCC і додати змінні CAD всередині журналу активності після дзвінків ServiceNow, а також зберегти це до даних таблиці активності після дзвінка.
Це лише довідкова документація - і показує, як це зробити для зразка змінної САПР під назвою Ім'я клієнта, яка зберігає ім'я клієнта всередині IVR та публікує його в ServiceNow. Очікується, що розробники partner+customer ServiceNow налаштують та керуватимуть цією конфігурацією, оскільки це налаштування існуючого роз'єму. Cisco надає лише методи налаштування та розширення з'єднувача. Починаючи з цієї статті, команда Cisco підтвердила підтримку додавання змінної CAD до журналу активності та таблиці активності, використовуючи метод, описаний нижче: |
Додати стовпець до активності WebexCC IMP
-
Відредагуйте таблицю у версії ServiceNow для розробників.
-
Зайдіть в навігатор фільтрів і знайдіть студію.
Виберіть "Webex Контакт-центр"
або
-
Виберіть таблицю "WebexCC IMP Activity"
-
Додавання нового стовпця, наприклад "Ім'я клієнта"
Додати стовпець до журналу дзвінків
-
Відредагуйте таблицю журналу дзвінків.
-
Додайте новий стовпець, наприклад "Ім'я клієнта".
Карта трансформації діяльності WebexCC
Додайте новий стовпець, наприклад зіставлення полів "CustomerName".
Змінення стовпців списку
Як рекомендує Service Now, змініть дію Вибір зі create на ignore.
Настроювання списку журналів дзвінків
Перейти до сценарію включення
Додайте лише один рядок "webexcc.u_customername=actInfo.CustomerName" до propUtils. |
Дивіться рядок: webexcc.u_customername=actInfo.CustomerName; з допоміжним коментарем.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(глобальний. 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: функція () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (користувач.next()) opened_for=user.sys_id;//return user.sys_id; інакше // повернути null; var grInt = new GlideRecord('взаємодія'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); повернення сисида; }, setWebexcctable: функція () { 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("телефон", 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' });
Створення змінної САПР в конструкторі потоків
Додавання змінної САПР до макета робочого столу
Приклад
"CadName1:SnowField1,CadName2:SnowField2" CadName1 – це ім'я_клієнта SnowField1 також використовується як CustomerName, який є частиною зразка scirpt, показаного вище "actInfo.CustomerName"
.
Демо скріншоти
Перегляньте нещодавно додану змінну CAD у таблиці активності WebexCC.
Створення змінної САПР для Flow Designer
Оновлення скриптів Service Now
-
Заходимо в навігатор фільтрів і шукаємо скрипт включення
Виберіть параметр "Включити сценарій" у розділі "Системний інтерфейс користувача".
-
Відфільтруйте ім'я за допомогою propUtils.
-
Змініть метод "UserGetSysId" у полі Script .
Поточний скрипт:
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('взаємодія'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); повернути 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='Виклик, отриманий від '+ this.getParameter('значення'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('взаємодія'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; повернути JSON.stringify(sysidlist);//sysid; },
-
Перейдіть до навігатора фільтрів і знайдіть сторінки інтерфейсу користувача.
Виберіть параметр Сторінки інтерфейсу користувача в розділі Системний інтерфейс користувача.
-
Відфільтруйте сторінки інтерфейсу користувача за назвою та знайдіть agentdesktop .
-
Змініть функцію "screenpop" у полі сценарію.
Поточна функція:
функція screen pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('значення', 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.Urgency.value; } if(callerani=== callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('значення', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Вплив', Вплив); 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
Додайте нові стовпці до таблиці "WebexCC IMP Activity"
Натисніть на Оновити.
Додавання нових стовпців до таблиці "Журнал дзвінків"
Карта трансформації діяльності WebexCC
Натисніть Update (Оновити).
Зміни до сценарію включають:
-
Перейдіть до навігатора фільтрів і знайдіть "скрипт включає".
Виберіть сценарій включення в розділі Системний інтерфейс користувача.
-
Відфільтруйте ім'я за допомогою "propUtils".
-
Змініть метод setWebexcctable.
Новий зразок коду інциденту:
setWebexcctable: функція () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Дії на записі інциденту; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; видалити actInfo['interaction_sys_id']; видалити actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes='Стан оновлення до закритого.'; inte.update(); } } if( incsysid!= null && incsysid != undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', 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("телефон", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('стан','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo;null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } повернення sys_id; },
Зміни методу на сторінках інтерфейсу користувача
-
Перейдіть до навігатора фільтрів і знайдіть "сторінки інтерфейсу"
Виберіть параметр Сторінки інтерфейсу користувача в розділі Системний інтерфейс користувача.
-
Відфільтруйте сторінки інтерфейсу користувача за назвою та знайдіть agentdesktop.
-
Змініть функцію "nowActivities and 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 != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } функція screenpop(callerani,callSessionInfo) { if(callerani====callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('значення', 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)); }
Результати після оновлення
Наведені нижче настроювання застосовуються до версій 1.0.5 і нижче. Щоб отримати відомості для новіших версій 1.0.7 і новіших версій, виконайте наведені вище дії. |
Налаштування # 1 - Додайте власні бізнес-правила для випадків використання потоку дзвінків
Для кожного нового дзвінка в конектор WebexCC CRM в ServiceNow створіть новий запис про інцидент.
-
Пошук бізнес-правил у навігаторі фільтрів
-
Натисніть кнопку Створити.
Зразок коду для довідки:
функція 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("ім'я", ім'я); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("телефон", телефон); } if (userID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; URL-адреса повернення; } функція UserGetSysId(поле;значення) { var user = new GlideRecord("sys_user"); user.addQuery(поле;значення); user.query(); if (user.next()) повертає user.sys_id; інакше повертає null; }
Приклад конфігурації бізнес-правила
-
Увімкнути виклик клієнта
Інтеграція комп'ютерної телефонії (CTI) Обробка для інцидентів позначається як True.
-
Оновіть URL-адресу екрана за допомогою користувацького правила CTI"cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =name , де 'name' — ім'я функції , слід викликати для CTI Обробка , а не використання сценарію за замовчуванням.
Визначте функцію в sys_script записі, позначеному клієнтом, що викликається.
Якщо потрібно вставити, оновити або видалити будь-які GlideRecords у цій функції, викличте окрему функцію, яка не є клієнтом, щоб виконати оновлення.
Щоб зробити сценарій клієнтським, потрібно встановити прапорець клієнтський виклик у формі, яка відображатиметься під час відображення запису sys_script. Прапорець, який можна викликати клієнтом, не відображається за замовчуванням. Для перегляду необхідно змінити поля, які відображаються на формі, використовуючи значок шестерінки та механізм ковша сльоти. |
Customization # 2 - Додати змінну CAD в таблицю активності Webex Contact Center
У цій статті докладно описано процес додавання додаткового стовпця до таблиці ServiceNow - webexcc_activity, який створюється після встановлення конектора CRM Webex CC for ServiceNow.
За промовчанням таблиця містить готові системні поля та значення.
Ви потенційно можете створити більше специфічних для бізнесу змінних (змінних САПР) всередині конструктора потоку WebexCC і додати ці змінні САПР всередину журналу активності після дзвінків ServiceNowі зберегти це до даних таблиці активності після дзвінка .
|
-
Відредагуйте таблицю у версії ServiceNow для розробників.
-
Перейдіть до контакт-центру
Webex. -
Виберіть таблицю активності WebexCC.
-
Наприклад,Ім'я _клієнта.
-
Виберіть Макет списку для діяльності WebexCC.
Цей крок не потрібен, якщо ви використовуєте Update Set XML - Потрібно додати лише один рядок "webexcc.u_customername=actInfo.CustomerName" до propUtils. |



Дивіться рядок з:webexcc.u_customername=actInfo.CustomerName; з допоміжним коментарем.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(глобальний. 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.Ім'я_клієнта; sys_id=webexcc.insert(); Діяльність із запису інцидентів; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("телефон", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(діючий рядок),null,2); inc.comments =jsonPretty; inc.update(); } } } повернення sys_id; }, введіть: 'propUtils2' });



Перегляньте нещодавно додану змінну CAD у таблиці активності WebexCC.

