Інтеграція Webex контакт-центру з ServiceNow
Коли ви інтегруєте контакт-центр Webex з консоллю ServiceNow CRM, ви можете запустити Webex Contact Center Desktop із ServiceNow.
Необхідні умови
Наразі ця функція застосовується лише до агентів.
Перш ніж інтегрувати контакт-центр Webex із консоллю CRM ServiceNow, переконайтеся, що у вас є наступне:
-
Доступ до контакт-центру Webex.
-
Доступ адміністратора до Control Hub за адресою https://admin.webex.com та порталу керування контакт-центром Webex. URL-адреси порталу керування стосуються вашого регіону.
-
Північна Америка: https://portal.wxcc-us1.cisco.com
-
Великобританія: https://portal.wxcc-eu1.cisco.com
-
Сінгапур: https://portal-v2.wxcc-sg1.cisco.com
-
-
Агент з доступом до Робочого столу. URL-адреса робочого столу залежить від вашого регіону.
-
Північна Америка: https://desktop.wxcc-us1.cisco.com
-
Великобританія: https://desktop.wxcc-eu1.cisco.com
-
Сінгапур: https://desktop.wxcc-sg1.cisco.com
-
-
Доступ агента до наступного домену, доданого до списку дозволених політик безпеки вмісту:
-
*.service-now.com
Щоб дізнатися більше про те, як визначити список дозволених, перегляньте статтю Налаштування безпеки для контакт-центру Webex.
-
-
Обліковий запис на порталі розробника ServiceNow. Щоб створити обліковий запис, перейдіть на портал розробників ServiceNow за адресою https://developer.servicenow.com/dev.do та натисніть Sign up and Start Build.
-
Доступ до наступних файлів за адресою https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Набір оновлень ServiceNow (XML)
-
Макет робочого столу контакт-центру ServiceNow (JSON)
-
- Контакт-центр Webex підтримує такі версії ServiceNow: Ванкувер, Юта, Токія, Вашингтон і Xanadu. Для отримання додаткової інформації перегляньте розділ Інтеграція контакт-центру Webex із ServiceNow.
Дотримуйтесь одного з двох наведених нижче способів:
Для екземплярів розробника радимо виконати дії, описані в посібнику з інсталяції розробника.
Якщо у вас є інсталяція з корпоративною ліцензією, дотримуйтеся вказівок щодо інсталяцій із корпоративною ліцензією.
Ми не рекомендуємо змішувати програму, ліцензовану підприємством, із екземплярами ізольованого програмного середовища для розробників.
У наступних розділах описано кроки для встановлення конектора ServiceNow для екземплярів розробника.
1 |
увійдіть у свій обліковий запис на порталі розробника ServiceNow і відкрийте консоль адміністрування . |
2 |
В області «Мій екземпляр » меню «Обліковий запис » натисніть «Почати збирання». |
3 |
У вашому екземплярі розробника в полі Навігатор фільтрів у верхньому лівому куті вікна перейдіть до Плагіни. |
4 |
Знайдіть плагін Openframe, який має назву Openframe. Можливо, вам доведеться прокрутити список. |
5 |
Натисніть Встановити , щоб встановити плагін Openframe. |
6 |
У діалоговому вікні «Активувати плагін» натисніть « Активувати». |
7 |
Коли активація плагіна буде завершена, натисніть « Закрити та перезавантажити форму» в діалоговому вікні «Активація плагіна». |
8 |
Щоб перевірити активацію плагіна, у полі Навігатор фільтрів у верхньому лівому куті вікна перейдіть до OpenFrame. |
9 |
Натисніть «Конфігурації» та переконайтеся, що плагін OpenFrame відображається у списку «Конфігурації OpenFrame». |
1 |
Завантажте останній файл System Update Set 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 |
У списку «Отримані набори оновлень» клацніть ім'я файлу «Набір оновлень» (посилання), щоб відкрити «Набір оновлень». |
6 |
У верхньому правому куті вікна натисніть «Попередній перегляд набору оновлень», щоб перевірити набір оновлень на наявність проблем. |
7 |
Натисніть кнопку «Закрити » в діалоговому вікні «Перегляд набору оновлень» після завершення попереднього перегляду. |
8 |
Натисніть Commit Update Set (Комплект оновлень). |
9 |
Натисніть « Закрити » в діалоговому вікні «Коміт набору оновлень» після завершення комітування «Набір оновлень». |
1 |
У полі Навігатор фільтрів у верхньому лівому куті вікна введіть |
2 |
На сторінці «Властивості системи» відсортуйте властивості за датою оновлення. Переконайтеся, що ви бачите такі властивості контакт-центру Webex: |
3 |
Натисніть agentdesktop_url , щоб відкрити сторінку agentdesktop_url властивостей системи. |
4 |
У полі «Значення » введіть URL-адресу робочого столу контакт-центру Webex відповідно до регіону роботи.
|
5 |
Натисніть Оновити , щоб зберегти зміни. |
6 |
(Необов'язково) Щоб змінити ім'я таблиці активності, відредагуйте властивості webexccactivitytable за потреби. На сторінці «Властивості системи» натисніть на webexccactivitytable. За потреби змініть поле «Значення ». |
7 |
(Необов'язково) Додавайте групи користувачів наступними способами:
|
1 |
У полі Навігатор фільтрів перейдіть до . |
2 |
Натисніть кнопку Створити. |
3 |
Введіть такі властивості для URL-адреси:
|
4 |
Праворуч від поля URL натисніть кнопку Блокування та додайте |
5 |
(Необов'язково) Виберіть Групи користувачів / агентів, щоб призначити конфігурацію. |
6 |
Натисніть Submit (Надіслати). URL-адреса відображається у вигляді посилання. |
7 |
Перш ніж намагатися використовувати телефон OpenFrame, переконайтеся, що ви завантажили власний JSON-файл ServiceNow Desktop Layout на портал керування контакт-центром 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 Desktop Layout. |
7 |
Натисніть Зберегти , щоб зберегти конфігурацію. Тепер ви можете запустити робочий стіл контакт-центру Webex у консолі ServiceNow. |
8 |
У полі Навігатор фільтрів перейдіть до Service Operations. |
У наступних розділах описано кроки для інсталяції з'єднувача ServiceNow для ліцензованих екземплярів Enterprise.
1 |
увійдіть у свій обліковий запис на порталі розробника ServiceNow і відкрийте консоль адміністрування . |
2 |
В області «Мій екземпляр » меню «Обліковий запис » натисніть «Почати збирання». |
3 |
У вашому екземплярі розробника в полі Навігатор фільтрів у верхньому лівому куті вікна перейдіть до Плагіни. |
4 |
Знайдіть плагін Openframe, який має назву Openframe. Можливо, вам доведеться прокрутити список. |
5 |
Натисніть Встановити , щоб встановити плагін Openframe. |
6 |
У діалоговому вікні «Активувати плагін» натисніть « Активувати». |
7 |
Коли активація плагіна буде завершена, натисніть « Закрити та перезавантажити форму» в діалоговому вікні «Активація плагіна». |
8 |
Щоб перевірити активацію плагіна, у полі Навігатор фільтрів у верхньому лівому куті вікна перейдіть до OpenFrame. |
9 |
Натисніть «Конфігурації» та переконайтеся, що плагін OpenFrame відображається у списку «Конфігурації OpenFrame». |
Інсталяції з корпоративними ліцензіями можуть інсталювати програму Webex Contact Center безпосередньо з ServiceNow Store.
Завантажте та встановіть пакет Webex Contact Center з магазину ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
У полі Навігатор фільтрів у верхньому лівому куті вікна введіть |
2 |
На сторінці «Властивості системи» відсортуйте властивості за датою оновлення. Переконайтеся, що ви бачите такі властивості контакт-центру Webex: |
3 |
Натисніть agentdesktop_url , щоб відкрити сторінку agentdesktop_url властивостей системи. |
4 |
У полі «Значення » введіть URL-адресу робочого столу контакт-центру Webex відповідно до регіону роботи.
|
5 |
Натисніть Оновити , щоб зберегти зміни. |
6 |
(Необов'язково) Щоб змінити ім'я таблиці активності, за потреби відредагуйте властивості таблиці x_caci_webexcc.webexccactivity.
|
7 |
(Необов'язково) Додавайте групи користувачів наступними способами:
|
1 |
У полі Навігатор фільтрів перейдіть до . |
2 |
Натисніть кнопку Створити. |
3 |
Введіть такі властивості для URL-адреси:
|
4 |
Праворуч від поля URL-адреси натисніть кнопку «Заблокувати » та додайте |
5 |
(Необов'язково) Виберіть Групи користувачів / агентів, щоб призначити конфігурацію. |
6 |
Натисніть Submit (Надіслати). URL-адреса відображається у вигляді посилання. |
7 |
У полі Навігатор фільтрів перейдіть до Service Operations. |
8 |
(Необов'язково) У списку «Групи користувачів» перемістіть групи користувачів, які мають доступ до робочого столу контакт-центру Webex, з «Доступних» до «Вибрані ». |
9 |
Перш ніж намагатися використовувати телефон OpenFrame, переконайтеся, що ви завантажили власний JSON-файл ServiceNow Desktop Layout на портал керування контакт-центром 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 Desktop Layout. |
7 |
Натисніть Зберегти , щоб зберегти конфігурацію. Тепер ви можете запустити робочий стіл контакт-центру Webex у консолі ServiceNow. |
8 |
У полі Навігатор фільтрів перейдіть до Service Operations. |
1 |
У полі Навігатор фільтрів перейдіть до розділу Інциденти > Відкритий інцидент. |
2 |
Клацніть правою кнопкою миші на полі абонента та виберіть пункт Налаштувати словник. |
3 |
Додайте відокремлені комами атрибути Тепер ви можете почати використовувати робочий стіл контакт-центру Webex у консолі ServiceNow. |
4 |
У полі Навігатор фільтрів перейдіть до Service Operations. |
Agent Desktop в консолі ServiceNow
Перш ніж здійснювати вихідні дзвінки, переконайтеся, що ви виконали такі дії:
-
Створіть вихідну точку входу та налаштуйте стратегію вихідної точки входу.
-
Увімкніть вихідний ANI для профілю агента.
-
Встановіть для вихідного набору ANI зіставлення номера та точки входу.
Щоб отримати додаткові відомості, перегляньте розділ « Підготовка » Посібника з налаштування та адміністрування Cisco Webex Contact Center Інформування та адміністрування.
У полі Навігатор фільтрів перейдіть до Service Operations.
Інформацію про те, як користуватися настільним комп'ютером, наведено на вкладці Агент у довідці контакт-центру Webex.
Огляд
У цій статті розглянуто кілька способів налаштування бізнес-правил для конектора ServiceNow CRM. У ньому детально описано, як ви можете налаштувати випадки використання на основі бізнес-правил, специфічних для ServiceNow.
Клієнт повинен самостійно керувати цими випадками використання на ServiceNow. Конфігурація стосується конкретно ServiceNow, а не програмного забезпечення чи експертизи контакт-центру Webex.
Це довідкова документація, яка допоможе внести зміни до правил ведення бізнесу. Розробники ServiceNow створюватимуть бізнес-правила та керуватимуть ними, а також надаватимуть підтримку.
Cisco надає лише зразок документації.
У наведених нижче розділах докладно описано, як налаштувати, увімкнути та керувати віджетом дій для інсталяцій розробників і корпорацій.
Зафіксуйте віджет оновлення набору дій
Для ліцензованих корпоративних екземплярів інсталюйте останню версію програми Webex Contact Center із магазину ServiceNow.
Щоб налаштувати віджет дій для екземплярів розробника, завантажте останній файл System Update Set XML, доступний у репозиторії github за цим посиланням :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, як тип виклику (вхідний або вихідний), об'єкт виклику, нотатки про виклик тощо.
- Керування інцидентами: натисніть «Створити інцидент». Новий інцидент створюється з попередньо заповненими даними абонента. Ви можете внести необхідні оновлення до інциденту. Ви можете змінити тип запису від інциденту до інциденту, модуль HR тощо залежно від ваших вимог. Щоб змінити тип запису, змініть значення властивості typeOfRecord у конфігурації віджета Дії. Наприклад:
{ "comp": "md-tab-panel", "attributes": { "slot": "панель", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Створити інцидент" }, "wrapper": { "title": "Дії SNOW !", "maximizeAreaName": "app-maximize-area" } } ] }
- Додавання нотаток до дзвінка в реальному часі: ви можете зафіксувати додаткову інформацію про дзвінок у текстовому полі та завершити дзвінок. Ці нотатки можна додати як нотатки про виклик у записі активності.
Зміна коду на ServiceNow
Сценарій включає зміни-
Перейдіть до навігатора фільтрів і знайдіть
Сценарій включає в себе
.Виберіть сценарій включення в розділі Системний інтерфейс користувача.
-
Відфільтруйте ім'я та виконайте пошук за запитом
propUtils
. -
Змініть метод
UserGetSysId
у Сценарії.Курент:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },
Новий зразок коду для інциденту:
UserGetSysId: 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='телефон'; 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; return JSON.stringify(sysidlist); },
-
Перейдіть до навігатора фільтрів і знайдіть
сторінку
інтерфейсу користувача.Виберіть сторінки інтерфейсу користувача в розділі Системний інтерфейс.
-
Відфільтруйте ім'я та виконайте пошук за запитом
Робочий стіл агента
. -
Змініть
Скрінпоп
у скрипті Клієнта.Поточна функція:
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(); // Для зміни, пов'язаної з інцидентом, 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 //'a2ba62fd121106446cc96f699b6b8' }); } }
Якщо інформація про абонента існує в CRM, а з цим контактом вже відкрито новий інцидент, додаток відкриває інцидент незавершеного виконання
Якщо інформації про абонента в CRM немає, додаток відкриває новий інцидент
Якщо інформація про абонента існує в CRM, додаток відкриває новий інцидент із заздалегідь заповненими даними
Огляд
У цьому випадку використання детально описано процес додавання додаткової колонки до таблиці ServiceNow - webexcc_imp_activity та створення sn_openframe_phone_log після встановлення Webex CC для ServiceNow CRM Connector.
За замовчуванням таблиця містить певні готові системні поля та значення.
Ви можете створювати більше змінних для конкретного бізнесу (CAD Variables) у конструкторі WebexCC Flow і додавати змінні CAD у журнал активності після дзвінків ServiceNow, а також зберігати їх у даних таблиці активності після дзвінка.
Це лише довідкова документація, у якій показано, як це зробити для зразка змінної CAD під назвою «Ім'я клієнта», яка зберігає ім'я клієнта всередині IVR і надсилає це до ServiceNow.
Очікується, що розробники Partner+customer ServiceNow налаштують та керуватимуть цією конфігурацією, оскільки вона є кастомізацією існуючого конектора.
Cisco лише надає методи налаштування та розширення з'єднувача.
Станом на цю статтю команда Cisco перевірила підтримку додавання змінної CAD до журналу активності та таблиці активності за допомогою методу, описаного нижче:
Додати стовпець до активності WebexCC IMP
-
Відредагуйте таблицю у версії для розробників ServiceNow.
-
Перейдіть до навігатора фільтрів і знайдіть студію.
Виберіть
Webex Contact Center
або
-
Натисніть кнопку
Активність WebexCC у IMP
стіл -
Додайте новий стовпець, наприклад,
Ім'я клієнта
Додати стовпець до журналу телефону
-
Відредагуйте таблицю журналу телефону.
-
Додайте новий стовпець, наприклад,
Ім'я клієнта
.
Карта трансформації активності WebexCC
Додайте новий стовпець, наприклад, Ім'я клієнта
картографування полів.
Персоналізація стовпців списку
Як рекомендує Service Now, змініть дію «Вибір» з «Створити» на «Ігнорувати».
Налаштування списку журналів телефонних дзвінків
Перейти до включення сценарію
Додайте лише один рядок webexcc.u_customername=actInfo.CustomerName
до propUtils.
Приклад сценарію
Дивись рядок: webexcc.u_customername=actInfo.CustomerName; з підтримуючим коментарем.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(глобальний. 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 // повернути null; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); зворотний сисид; }, 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; 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 у конструкторі Flow Designer
Додавання змінної CAD до макета робочого столу
Приклад
"CadName1:SnowField1,CadName2:SnowField2" CadName1 - це CustomerName, SnowField1 також використовується як CustomerName, що є частиною зразка scirpt, показаного вище "actInfo.CustomerName".
Демо скріншоти
Перегляньте нещодавно додану змінну CAD у таблиці активності WebexCC.
Створення змінної CAD для Flow Designer
Терміновість інцидентуВплив інциденту
Оновлення сценарію Service Now
Оновлення сценарію включають
-
Перейдіть до навігатора фільтрів і знайдіть
скрипт включає
Виберіть опцію «Сценарій включає» в розділі «Системний інтерфейс ».
-
Відфільтруйте ім'я за допомогою
propUtils
. -
Змініть метод
UserGetSysId
у полі Сценарій .Поточний сценарій:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },
Новий зразок коду для інциденту:
UserGetSysId: 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('Вплив'); 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);//sysid; },
-
Перейдіть до навігатора фільтрів і знайдіть
сторінки інтерфейсу користувача
.Виберіть опцію «Сторінки інтерфейсу користувача» в розділі «Системний інтерфейс».
-
Відфільтруйте сторінки інтерфейсу користувача за назвою та виконайте пошук за запитом agentdesktop
.
-
Змініть
Скрінпоп
у полі сценарію.Поточна функція:
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('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('поле', 'телефон'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Удар', Вплив); gaout.getXMLWait(); var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ 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
стіл
Відкрийте файл Активність WebexCC у IMPстіл Додайте новий стовпець - InteractionsNumber Додайте новий стовпець - IncidentNumber
Натисніть Оновити .
Додайте нові стовпці до Журнал телефонних розмов
стіл
Відкрийте файл Журнал телефонних розмов
стіл
Карта трансформації активності WebexCC
Відкривати Трансформувати карту
З навігатора фільтрів
Натисніть на Карта трансформації активності WebexCC
Натисніть Update (Оновити).
Зміни в сценарії включають
-
Перейдіть до навігатора фільтрів і знайдіть "сценарій включає".
Виберіть сценарій включення в розділі Системний інтерфейс користувача.
-
Відфільтруйте ім'я за допомогою
propUtils
. -
Змініть метод
встановленийWebexcctable
.Новий зразок коду для інциденту:
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=""; видалити 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("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=інтенум; sys_id=webexcc.insert(); } повернути sys_id; },
Зміни методів на сторінках інтерфейсу користувача
-
Перейдіть до навігатора фільтрів і знайдіть
Сторінки інтерфейсу користувача
Виберіть опцію «Сторінки інтерфейсу користувача» в розділі «Системний інтерфейс».
-
Відфільтруйте сторінки інтерфейсу користувача за назвою та виконайте пошук за запитом
agentdesktop
. -
Змініть
nowActivities та 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); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', '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)); }
Результати після оновлення
Наведені нижче налаштування застосовуються до версій 1.0.5 і старіших. Щоб отримати налаштування для новіших версій 1.0.7 і вище, дотримуйтесь наведених вище інструкцій.
Налаштування # 1 - Додайте кастомні бізнес-правила для випадків використання потоку дзвінків
Створення нового запису інциденту для кожного дзвінкаДля кожного нового дзвінка в конектор WebexCC CRM в ServiceNow створюйте новий запис про інцидент.
Пошук бізнес-правил у навігаторі фільтрів
Натисніть кнопку Створити.
Приклад коду для довідки:
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", ім'я); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; URL-адреса повернення; } function UserGetSysId(поле, значення) { var user = new GlideRecord("sys_user"); user.addQuery(поле, значення); user.query(); if (user.next()) повертає user.sys_id; else повертає null; }
Приблизна конфігурація бізнес-правила
Увімкнути функцію виклику клієнта
Обробка інцидентів при інтеграції комп'ютерної телефонії (CTI) позначається як True.
Оновіть URL-адресу скрінспінгу за допомогою спеціального правила CTI" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
Файл sysparm_cti_rule =name , де 'name' - це ім'я функції , для якого слід викликати CTI Обробка , а не використання стандартного скрипту.
Визначте функцію в записі sys_script з позначкою client callable.
Якщо вам потрібно вставити, оновити або видалити будь-які GlideRecords у функції, викличте окрему неклієнтську викликану функцію, щоб виконати оновлення.
Щоб зробити скрипт клієнт-викликаним, потрібно встановити прапорець Client-callable на формі, який відображається при відображенні запису sys_script.
Прапорець для виклику клієнта не відображається за замовчуванням. Для перегляду необхідно змінити поля, які відображаються на формі, за допомогою значка шестерні та механізму відра сльоти.
Налаштування # 2 - Додавання змінної CAD в таблицю активності контакт-центру Webex
ОглядУ цій статті докладно описано процес додавання додаткового стовпця до таблиці ServiceNow - webexcc_activity, який створюється після встановлення Webex CC для ServiceNow CRM Connector.
За замовчуванням таблиця містить готові системні поля та значення.
Потенційно ви можете створювати більше змінних для конкретного бізнесу (змінні CAD) у конструкторі WebexCC Flow і додавати ці змінні CAD у журнал активності після дзвінків ServiceNow, а потім зберігати їх у даних таблиці активності після дзвінка.
-
Це лише довідкова документація - і показує, як це зробити для зразка змінної CAD під назвою Customer Name, яка зберігає ім'я клієнта всередині IVR і публікує це в ServiceNow.
-
Розробники Partner+customer ServiceNow налаштують і керуватимуть цією конфігурацією, оскільки вона є налаштуванням існуючого з'єднувача.
-
Cisco надасть лише методи налаштування та розширення з'єднувача.
-
Станом на цю статтю команда Cisco перевірила підтримку додавання змінної CAD до журналу активності та таблиці активності за допомогою методу, описаного нижче.
Відредагуйте таблицю у версії для розробників ServiceNow.
Перейдіть до
.Виберіть таблицю активності WebexCC.
Наприклад, CustomerName.
Виберіть Макет списку для активності WebexCC.
Цей крок не потрібен, якщо ви використовуєте XML Update Set - Потрібно додати лише один рядок "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("об'єкт виклику", 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(діючий рядок),null,2); inc.comments =jsonPretty; inc.update(); } } } зворотні sys_id; }, тип: 'propUtils2' });
Відредагуйте сторінку інтерфейсу користувача з новою назвою сценаріюСтворення змінної CAD у конструкторі Flow Designer
Додавання змінної CAD до макета робочого столу
Демо скріншоти
Перегляньте нещодавно додану змінну CAD у таблиці активності WebexCC.