Інтегруйте Webex Contact Center із ServiceNow (версія 1—Застаріла)
Обов’язкові умови
Зараз ця функція застосовується лише до операторів.
Перш ніж інтегрувати контактний центр Webex з консоллю ServiceNow CRM, переконайтеся, що у вас є наступне:
-
Доступ до контактного центруWebex.
-
Доступ адміністратора до Control Hub на https://admin.webex.com та порталу керування Webex Contact Center. 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 натисніть Зареєструватися та Почати будувати.
-
Доступ до наступних файлів за адресою https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Набір оновлень serviceNow (XML)
-
Розмітка робочого столу контакт-центру ServiceNow (JSON)
-
- Версії ServiceNow, які підтримує Webex Contact Center, є Ванкувер, Юта, Токія, Вашингтон і Xanadu. Додаткову інформацію див. в розділі Інтеграція Webex Contact Center із ServiceNow.
Виконайте один із двох методів, наведених нижче:
Для екземплярів розробників рекомендовано виконати наведені далі кроки в Посібнику з екземплярів розробника.
Якщо ви є власником екземпляра з ліцензією підприємства, дотримуйтесь інструкцій для екземплярів із ліцензією підприємства.
Ми не рекомендуємо змішувати програму, яка має ліцензію підприємства, з екземплярами пісочниці розробника.
Наступні розділи описують кроки для встановлення з’єднувача ServiceNow для екземплярів розробника.
1 |
Увійдіть в обліковий запис порталу розробників ServiceNow і відкрийте консоль Administration . |
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 |
У списку Отримані набори оновлень клацніть Оновити набір імені файлу (посилання), щоб відкрити набір оновлень. |
6 |
У правому верхньому куті вікна натисніть кнопку Попередній перегляд набору оновлень, щоб перевірити наявність проблем у наборі оновлень. |
7 |
Клацніть Закрити у діалоговому вікні Установити перегляд оновлення після завершення перегляду. |
8 |
Клацніть « Зафіксувати набір оновлень». |
9 |
"Клацніть ""Закрити "" у діалоговому вікні ""Установити оновлення та здійснити" "" після завершення створення набору оновлення." |
1 |
У полі Навігатор фільтрів у верхній лівій частині вікна введіть |
2 |
На сторінці Властивості системи відсортуйте властивості за датою оновлення. Переконайтеся, що ви можете побачити такі властивості контактного центру Webex: |
3 |
Клацніть agentdesktop_url , щоб відкрити сторінку Властивості agentdesktop_url системи. |
4 |
У полі Значення введіть URL-адресу для робочого стола Webex Contact Center відповідно до регіону роботи.
|
5 |
Натисніть кнопку Оновити , щоб зберегти зміни. |
6 |
(Необов'язково) Щоб змінити ім'я таблиці Activity, за потреби відредагуйте властивості веб-таблиці . На сторінці Властивості системи клацніть таблицю webexccactivitytable. Змініть поле Значення за потреби. |
7 |
(Необов’язково) Додайте групи користувачів такими способами:
|
1 |
У полі Навігатор фільтрування перейдіть до |
2 |
Натисніть кнопку Створити. |
3 |
Введіть такі властивості для URL:
|
4 |
Праворуч від поля URL клацніть кнопку Заблокувати та додайте |
5 |
(Необов’язково) Виберіть групи користувачів/операторів, щоб призначити конфігурацію. |
6 |
Клацніть Надіслати. URL-адреса відображається як посилання. |
7 |
Перш ніж спробувати скористатися телефоном OpenFrame, переконайтеся, що ви передали файл JSON користувацького макета робочого стола ServiceNow на портал керування Webex Contact Center. Додаткову інформацію див. в розділі Налаштування макета робочого стола ServiceNow у Webex Contact Center. |
1 |
Завантажте макет робочого стола для ServiceNow з https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
За потреби оновіть властивості файлу макета робочого стола. |
3 |
Перейдіть на портал управління контакт-центром Webex. |
4 |
На панелі навігації порталу керування виберіть |
5 |
Натисніть кнопку Створити макет і введіть відомості про макет робочого стола. |
6 |
Завантажте файл JSON макета робочого столу ServiceNow. |
7 |
Натисніть Зберегти , щоб зберегти конфігурацію. Тепер ви можете запустити робочий стіл контактного центру Webex у консолі ServiceNow. |
8 |
У полі Навігатор фільтрів перейдіть до . |
Наступні розділи описують кроки для встановлення з’єднувача ServiceNow для ліцензованих корпоративних екземплярів.
1 |
Увійдіть в обліковий запис порталу розробників ServiceNow і відкрийте консоль Administration . |
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 |
У полі Навігатор фільтрування у верхньому лівому куті вікна введіть |
2 |
На сторінці Властивості системи відсортуйте властивості за датою оновлення. Переконайтеся, що ви можете побачити такі властивості контактного центру Webex: |
3 |
Клацніть agentdesktop_url , щоб відкрити сторінку Властивості agentdesktop_url системи. |
4 |
У полі Значення введіть URL-адресу для робочого стола Webex Contact Center відповідно до регіону роботи.
|
5 |
Натисніть кнопку Оновити , щоб зберегти зміни. |
6 |
(Необов’язково) Щоб змінити ім’я таблиці активності, за потреби відредагуйте властивості x_caci_webexcc.webexccactivitytable .
|
7 |
(Необов’язково) Додайте групи користувачів такими способами:
|
1 |
У полі Навігатор фільтрування перейдіть до |
2 |
Натисніть кнопку Створити. |
3 |
Введіть такі властивості для URL:
|
4 |
Праворуч від поля URL клацніть кнопку Заблокувати та додайте |
5 |
(Необов’язково) Виберіть групи користувачів/операторів, щоб призначити конфігурацію. |
6 |
Клацніть Надіслати. URL-адреса відображається як посилання. |
7 |
У полі Навігатор фільтрів перейдіть до . |
8 |
(Необов’язково) У списку Групи користувачів перемістіть групи користувачів, які мають доступ до робочого стола Webex Contact Center, з Доступний до Вибраний. |
9 |
Перш ніж спробувати скористатися телефоном OpenFrame, переконайтеся, що ви передали файл JSON користувацького макета робочого стола ServiceNow на портал керування Webex Contact Center. Додаткову інформацію див. в розділі Налаштування макета робочого стола ServiceNow у Webex Contact Center. |
1 |
Завантажте макет робочого стола для ServiceNow з https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
За потреби оновіть властивості файлу макета робочого стола. |
3 |
Перейдіть на портал управління контакт-центром Webex. |
4 |
На панелі навігації порталу керування виберіть |
5 |
Натисніть кнопку Створити макет і введіть відомості про макет робочого стола. |
6 |
Завантажте файл JSON макета робочого столу ServiceNow. |
7 |
Натисніть Зберегти , щоб зберегти конфігурацію. Тепер ви можете запустити робочий стіл контактного центру Webex у консолі ServiceNow. |
8 |
У полі Навігатор фільтрів перейдіть до . |
1 |
У полі Навігатор фільтрів перейдіть до розділу Інциденти > Відкрити інцидент. |
2 |
Клацніть правою кнопкою миші поле абонента, що телефонує, і клацніть Налаштувати словник. |
3 |
Додати атрибути, розділені комами Тепер можна починати використовувати робочий стіл Webex Contact Center на консолі ServiceNow. |
4 |
У полі Навігатор фільтрів перейдіть до . |
Зараз ми не підтримуємо вхід у Agent Desktop за допомогою параметра Desktop (WebRTC).
Робочий стіл оператора на консолі ServiceNow
Перш ніж здійснювати вихідні виклики, переконайтеся, що виконайте наведені нижче дії.
-
Створіть точку входу на вихідні дані та налаштуйте стратегію точки входу на вихідні дані.
-
Увімкніть outdial ANI для профілю агента.
-
Установіть для вихідного ані відображення на зіставленні з номером до точки входу.
"Додаткову інформацію див. в розділі Підготовка Посібника з налаштування та адміністрування Cisco Webex Contact Center."
У полі Навігатор фільтрів перейдіть до .
Інформацію про те, як використовувати робочий стіл, див. на вкладці Agent в Довідці Webex Contact Center.
Огляд
У цій статті описано кілька способів налаштування бізнес-правил для з’єднувача CRM ServiceNow. У ньому детально описано, як можна налаштувати випадки використання на основі бізнес-правил, специфічних для ServiceNow.
Клієнт повинен самостійно керувати цими випадками використання в ServiceNow. Конфігурація специфічна для ServiceNow, а не програмне забезпечення або експертні знання Webex Contact Center.
Це довідкова документація для допомоги у зміні бізнес-правил. Розробники ServiceNow створять і керують правилами бізнесу, а також надаватимуть підтримку.
Cisco надає лише зразок документації.
У наступних розділах наведено докладні відомості про налаштування, увімкнення та керування віджетом дій для екземплярів підприємства й розробника.
Виконайте набір оновлень для дій
Для ліцензованих корпоративних екземплярів установіть останню програму Webex Contact Center із магазину ServiceNow.
Щоб налаштувати віджет «Дії» для екземплярів розробника, завантажте останній файл налаштування оновлення системи 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, як-от тип виклику (вхідний або вихідний), об’єкт виклику, примітки виклику тощо до запису активності.
- Керування інцидентами — клацніть Створити інцидент. Новий інцидент створюється з попередньо заповненими відомостями абонента, що телефонує. Ви можете внести необхідні оновлення до інциденту. Ви можете змінити тип запису з інциденту на випадок, модуль кадрів тощо залежно від ваших вимог. Щоб змінити тип запису, змініть значення властивості typeOfRecord в конфігурації віджета Дії. Приклад:
{ "comp": "md-tab-panel", "атрибути": { "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
Сценарій Містить зміни-
Перейдіть до навігатора фільтрів і виконайте пошук
сценарію включно
.Виберіть Сценарій включає в Системний інтерфейс.
-
Виконайте фільтрування Імені та виконайте пошук
проpUtils
. -
Змініть метод
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; },
Новий зразок коду для інциденту:
ІдентифікаторСистемиОтриманняКористувача: 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=користувач.sys_id;//повернення користувача.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('стан','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('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
Перейдіть до навігатора фільтрів і знайдіть
сторінку інтерфейсу користувача
.Виберіть сторінки інтерфейсу користувача в розділі Системний інтерфейс.
-
Виконайте фільтрування Ім’я та виконайте пошук
agentdesktop
. -
Змініть функцію
спливаючого вікна
в сценарії клієнта.Поточна функція:
// 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: "взаємодія", запит: '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: "інцидент", запит: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ запис: "інцидент", запит: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Якщо інформація абонента, що телефонує, існує в CRM і з цим контактом вже відкрито новий інцидент, програма відкриє інцидент, що триває
Якщо інформації про абонента, що телефонує, немає в CRM, програма відкриває новий інцидент
Якщо інформація про абонента, що телефонує, існує в CRM, програма відкриває новий інцидент із попередньо заповненими відомостями
Огляд
У цьому разі використання детально описано процес додавання додаткового стовпця до таблиці ServiceNow webexcc_imp_activity і створення sn_openframe_phone_log після встановлення Webex CC для з’єднувача CRM ServiceNow.
За замовчуванням таблиця містить певні поля та значення з поля системи поля.
Можна створити додаткові бізнес-специфічні змінні (CAD-змінні) в конструкторі WebexCC Flow і додати змінні CAD у журналі активності після виклику ServiceNow, а також продовжити це до даних таблиці активності після виклику.
Це тільки довідкова документація – і показує, як це зробити для зразка змінної CAD під назвою Customer Name, яка зберігає ім’я клієнта в IVR і публікує його в ServiceNow.
Очікується, що розробники partner+customer ServiceNow налаштують цю конфігурацію та керуватимуть нею, оскільки вона є налаштуванням для наявного з’єднувача.
Cisco надає лише методи налаштування та розширення з’єднувача.
Станом на цю статтю команда Cisco підтвердила підтримку додавання змінної CAD до журналу активності та таблиці активності за допомогою методики, описаної нижче.
Додати стовпець до активності IMP WebexCC
-
Відредагуйте таблицю у версії ServiceNow для розробника.
-
Перейдіть до навігатора фільтрів і знайдіть студію.
Вибрати
Webex Contact Center
або
-
Вибрати таблицю
активності IMP WebexCC
-
Додати новий стовпець, наприклад
CustomerName
Додати стовпець до журналу телефону
-
Змініть таблицю журналу телефонів.
-
Додайте новий стовпець, наприклад
Ім’я клієнта
.
Карта перетворення активності WebexCC
Додайте новий стовпець, наприклад зіставлення поля CustomerName
.
Персоналізувати стовпці списку
"Як Зараз рекомендує служба, змініть дію ""Вибір"" з ""створити"", щоб ігнорувати."
Налаштувати список журналів телефонів
Перейти до розділу «Включити сценарій»
Додайте лише один рядок webexcc.u_customername=actInfo.CustomerName
до propUtils.
Приклад сценарію
Перегляньте лінію: webexcc.u_customername=actInfo.CustomerName; з коментарем до підтримки.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp : { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: 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; const actInfo = JSON.parse(this.getParameter('actInfo')); const 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.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("phone", this.getParameter('ani')); suser.query(); if(suser.next())) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id- Сосир.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; }, тип: 'propUtils' });
Створіть змінну CAD в конструкторі потоків
Додати змінну CAD до макета робочого стола
Приклад
"CadName1:SnowField1,CadName2:SnowField2" CadName1 - це CustomerName SnowField1 також використовується як CustomerName, що є частиною зразка короткого виразу над "actInfo.CustomerName".
Демонстрація знімків екрана
Перегляньте нещодавно додану змінну CAD в таблиці активності WebexCC.
Створити змінну CAD для конструктора потоків
Невідкладність інцидентуВплив інциденту
Оновлення сценарію для надання послуг зараз
Оновлення сценарію включає
-
Перейдіть до навігатора фільтрів і виконайте пошук
сценарію
.Виберіть параметр Сценарій включає в Системний інтерфейс.
-
Відфільтруйте Ім’я за допомогою
propUtils
. -
Змініть метод
UserGetSysId
у полі Script .Поточний сценарій:
ІдентифікаторСистемиОтриманняКористувача: 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; },
Новий зразок коду для інциденту:
ІдентифікаторСистемиОтриманняКористувача: 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=користувач.sys_id;//повернення користувача.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('стан','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('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; const sysid=grInt.insert(); sysidlist.sysid=sysid; return 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('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: "взаємодія", запит: '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; } 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: "інцидент", запит: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ запис: "інцидент", запит: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Якщо інформація про абонента, що телефонує, існує в CRM і немає нового або поточного інциденту, програма відкриває новий інцидент
Змінити код на ServiceNow
Додати нові стовпці до таблиці активності IMP WebexCC
Відкрийте таблицю активності IMP WebexCCДодати новий стовпець – InteractionsNumber Додати новий стовпець – Номер інциденту
Клацніть Оновити.
Додати нові стовпці до таблиці Журнал телефонів
Відкрити таблицю журналу телефонів
Карта перетворення активності WebexCC
Відкрити карту перетворення
в навігаторі фільтрів
Клацніть на карті перетворення активності WebexCC
Клацніть Оновити.
Зміни сценарію включають
-
Перейдіть до навігатора фільтрів і виконайте пошук «сценарій включає».
Виберіть Сценарій включає в Системний інтерфейс.
-
Відфільтруйте Ім’я за допомогою
propUtils
. -
Змініть метод
setWebexcctable
.Новий зразок коду для інциденту:
setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //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 ); int.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- Сосир.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 і спливаючого вікна
у сценарії.Поточна функція:
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('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: "інцидент", запит: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ запис: "інцидент", запит: '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 ім’я = sysparm_caller_name; присяга = sysparm_caller_id; var телефон = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_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 += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } відповідь = url; return url; } функція UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(поле, значення); user.query(); if (user.next()) повертає користувача.sys_id; в іншому випадку повертає null; }
Зразок конфігурації бізнес-правила
Увімкнути можливість виклику клієнта
Обробка інтеграції комп’ютерної телефонії (CTI) для інциденту позначено як True.
Оновіть URL спливаючого вікна за допомогою користувацького правила CTI " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule=name , де "name" є ім’ям функції , потрібно викликати для обробки CTI замість використання сценарію за замовчуванням.
Визначте функцію у sys_script записі, позначеному як клієнт із можливістю виклику.
Якщо потрібно вставити, оновити або видалити будь-які записи Glide в функцію, зателефонуйте окрему функцію, яка не є клієнтом, щоб виконати оновлення.
Щоб зробити сценарій клієнтським, потрібно встановити прапорець, що доступний для викликів, у формі, яка відображається під час відображення sys_script запису.
Прапорець, який викликається клієнтом, за замовчуванням не з’являється. Для перегляду потрібно змінити поля, які відображаються на формі, за допомогою значка передач та механізму відключення.
Налаштування № 2 – Додайте змінну CAD до таблиці активності Webex Contact Center.
ОглядУ цій статті описано процес додавання додаткового стовпця до таблиці ServiceNow, webexcc_activity який буде створено після встановлення Webex CC для з’єднувача CRM ServiceNow.
За замовчуванням таблиця містить неблокові системні поля та значення.
Можна потенційно створити додаткові бізнес-специфічні змінні (CAD-змінні) в конструкторі WebexCC Flow і додати ці змінні CAD у журнал активності після виклику ServiceNow і продовжити цей процес до даних таблиці активності після виклику .
-
Це тільки довідкова документація – і показує, як це зробити для зразка змінної CAD під назвою Customer Name, яка зберігає ім’я клієнта в IVR і надсилає його в ServiceNow.
-
Розробники partner+customer ServiceNow налаштують цю конфігурацію та керують нею, оскільки вона є налаштуванням для наявного з’єднувача.
-
Cisco надасть лише техніки налаштування та розширення з’єднувача.
-
Станом на цю статтю команда Cisco підтвердила підтримку додавання змінної CAD до журналу активності та таблиці активності за допомогою методики, описаної нижче.
Відредагуйте таблицю у версії ServiceNow для розробника.
Перейдіть до
.Виберіть таблицю активності WebexCC .
Наприклад, CustomerName.
Виберіть макет списку для активності WebexCC.
Цей крок не вимагається, якщо ви використовуєте параметр Оновити налаштування XML — потрібно додати лише один рядок «webexcc.u_customername=actInfo.CustomerName» до propUtils.
Приклад сценарію
Перегляньте рядок із такою формулою:webexcc.u_customername=actInfo.CustomerName; з коментарем до підтримки.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp : 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; const actInfo = JSON.parse(this.getParameter('actInfo')); const 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.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("phone", this.getParameter('ani')); suser.query(); if(suser.next())) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id- Сосир.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; }, тип: 'propUtils2' });
Змініть сторінку інтерфейсу користувача з новим ім’ям сценаріюСтворіть змінну CAD в конструкторі потоків
Додати змінну CAD до макета робочого стола
Демонстрація знімків екрана
Перегляньте нещодавно додану змінну CAD в таблиці активності WebexCC.