Интегрировать Webex Contact Center с помощью serviceNow (версия 1 — Legacy)
Предварительные условия
В настоящее время эта функция применима только к операторам.
Перед интеграцией Webex Contact Center с консолью ServiceNow ONLINE убедитесь, что в наличии следующее:
-
Доступ к Webex Contact Center.
-
доступ администраторов к центру управления на https://admin.webex.com и порталу управления Webex Contact Center; URL-адреса портала управления относятся к вашему региону.
-
Оператор с доступом к рабочему столу. URL рабочего стола указан в вашем регионе.
-
Доступ оператора к следующему домену, который добавлен в список разрешенных политик безопасности содержимого:
-
*.service-now.com
Дополнительные сведения об определении разрешенного списка см. в статье «Параметры безопасности для Webex Contact Center.
-
-
Учетная запись на портале разработчика ServiceNow Чтобы создать учетную запись, перейдите на портал разработчика ServiceNow по адресу https://developer.servicenow.com/dev.do и щелкните " Зарегистрироваться и начать строительство".
-
Доступ к следующим файлам в https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Набор обновления ServiceNow (XML)
-
Схема расположения рабочего стола ServiceNow Contact Center (КОДНО)
-
- ServiceNow выпуски, которые Webex Contact Center поддерживает Ванкувер, Юта, Токья, Вашингтон, и Xanadu. Дополнительные сведения см. в разделе Webex Contact Center интеграции с ServiceNow.
Выполните один из двух способов, приведенных ниже:
Для экземпляров разработчика рекомендуется следовать инструкциям, приведенным в руководстве по экземплярам для разработчика.
Если у вас есть экземпляр, имеющий лицензию предприятия, следуйте приведенным правилам для экземпляров, лицензируемых предприятием.
Мы не рекомендуем смешивать приложение, лицензирующееся на предприятии, с экземплярами песочницы разработчика.
В следующих разделах описываются действия по установке соединителя ServiceNow для экземпляров разработчика.
1 |
Войдите в учетную запись на портале разработчика ServiceNow и откройте консоль " Администрирование ". |
2 |
В области "Мой экземпляр" меню " Учетная запись " щелкните "Начать создание". |
3 |
На экземпляре разработчика в поле "Навигатор фильтров" в левом верхнем углу окна перейдите в раздел "Подключаемые модули". |
4 |
Найдите подключаемый модуль Open рамки, имеющий название Open рамки. Возможно, вам придется прокрутить список. |
5 |
Нажмите Кнопку "Установить" , чтобы установить подключаемый модуль Open раммейл. |
6 |
В диалоговом окне «Активация подключаемого модуля » нажмите « Активировать». |
7 |
По завершении активации плагина нажмите " Закрыть и перезагрузить форму " в диалоговом окне "Активация плагина". |
8 |
Чтобы проверить активацию плагина, в поле "Навигатор фильтров" в левом верхнем углу окна перейдите к разделу OpenХехакер. |
9 |
Щелкните « Конфигурации» и убедитесь, что подключаемый модуль Open Хефрейм отображается в списке конфигурацийOpenя.ов . |
1 |
Загрузите последнюю версию обновления системы с набором XML файл, доступный на сайте github repo по адресу : https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. Имя файла: webexcc-servicenow-update-setV(X).XML |
2 |
В экземпляре ServiceNow в поле "Навигатор фильтров" в левом верхнем углу окна перейдите к "Наборы |
3 |
Щелкните по ссылке "Импортировать обновление" из XML ссылку. |
4 |
Щелкните "Выбрать файл", выберите набор обновления системы XML файл, затем нажмите " Отправить".
Набор обновлений появляется в списке "Извлеченные наборы обновлений" и находится в состоянии " Загружено ".
|
5 |
В списке "Извлеченные наборы обновлений" щелкните имя файла набора обновлений (ссылку), чтобы открыть набор обновлений. |
6 |
В правой верхней части окна щелкните "Предварительный просмотр набора обновлений" , чтобы проверить наличие неполадок в наборе обновлений. |
7 |
Нажмите Кнопку " Закрыть " в диалоговом окне "Предварительный просмотр набора обновлений" по завершении предварительного просмотра. |
8 |
Щелкните «Установить обновление» |
9 |
Щелкните Закрыть диалоговое окно «Фиксация набора обновлений» по завершении фиксации набора обновлений. |
1 |
В поле "Навигатор фильтров" в верхней левой части окна введите |
2 |
На странице "Свойства системы" сортируйте свойства по дате обновления. Убедитесь, что в телефоне отображаются следующие свойства Webex Contact Center: |
3 |
Щелкните agentdesktop_url , чтобы открыть страницу "Agentdesktop_url свойства системы". |
4 |
В поле "Значение" введите URL-адрес Webex Contact Center Desktop в соответствии с областью операции.
|
5 |
Нажмите Кнопку "Обновить" , чтобы сохранить изменения. |
6 |
(Необязательно) Чтобы изменить имя таблицы действий, измените свойства Webexccactivitytable . На странице "Свойства системы" щелкните Webexccactivitytable. Измените поле " Значение " требуемым образом. |
7 |
(Необязательно) Добавьте группы пользователей следующими способами:
|
1 |
В поле "Навигатор фильтров" перейдите в . |
2 |
Щелкните Создать. |
3 |
Введите следующие свойства для URL::
|
4 |
Справа от поля URL щелкните кнопку «Блокировать» и добавьте |
5 |
(Необязательно) Выберите группы пользователей и операторов для назначения конфигурации. |
6 |
Нажмите Отправить. URL отображается как ссылка. |
7 |
Перед попыткой использовать телефон с OpenКилтер необходимо выгрузить файл ПОЛЬЗОВАТЕЛЬСКОго макета рабочего стола 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 Contact Center. |
4 |
На панели навигации на портале управления выберите » |
5 |
Щелкните Новый макет и введите сведения о макете рабочего стола. |
6 |
Выгрузите файл макета рабочего стола ServiceNow НАстольного компьютера, а также файл СОуправляемым инструментом ;; |
7 |
Щелкните " Сохранить" , чтобы сохранить конфигурацию. Теперь вы можете запустить Webex Contact Center Desktop в консоли ServiceNow. |
8 |
В поле "Навигатор фильтров" перейдите в . |
В следующих разделах описываются действия по установке соединителя ServiceNow для лицензированных корпоративных экземпляров.
1 |
Войдите в учетную запись на портале разработчика ServiceNow и откройте консоль " Администрирование ". |
2 |
В области "Мой экземпляр" меню " Учетная запись " щелкните "Начать создание". |
3 |
На экземпляре разработчика в поле "Навигатор фильтров" в левом верхнем углу окна перейдите в раздел "Подключаемые модули". |
4 |
Найдите подключаемый модуль Open рамки, имеющий название Open рамки. Возможно, вам придется прокрутить список. |
5 |
Нажмите Кнопку "Установить" , чтобы установить подключаемый модуль Open раммейл. |
6 |
В диалоговом окне «Активация подключаемого модуля » нажмите « Активировать». |
7 |
По завершении активации плагина нажмите " Закрыть и перезагрузить форму " в диалоговом окне "Активация плагина". |
8 |
Чтобы проверить активацию плагина, в поле "Навигатор фильтров" в левом верхнем углу окна перейдите к разделу OpenХехакер. |
9 |
Щелкните « Конфигурации» и убедитесь, что подключаемый модуль Open Хефрейм отображается в списке конфигурацийOpenя.ов . |
Экземпляры с корпоративными лицензиями могут установить приложение Webex Contact Center непосредственно из магазина ServiceNow.
Загрузите и установите пакет Webex Contact Center из магазина ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
В поле "Навигатор фильтров" в верхней левой части окна введите |
2 |
На странице "Свойства системы" сортируйте свойства по дате обновления. Убедитесь, что в телефоне отображаются следующие свойства Webex Contact Center: |
3 |
Щелкните agentdesktop_url , чтобы открыть страницу "Agentdesktop_url свойства системы". |
4 |
В поле "Значение" введите URL-адрес Webex Contact Center Desktop в соответствии с областью операции.
|
5 |
Нажмите Кнопку "Обновить" , чтобы сохранить изменения. |
6 |
(Необязательно) Чтобы изменить имя таблицы действий, измените свойства x_caci_webexcc.webexccactivitytable .
|
7 |
(Необязательно) Добавьте группы пользователей следующими способами:
|
1 |
В поле "Навигатор фильтров" перейдите в . |
2 |
Щелкните Создать. |
3 |
Введите следующие свойства для URL::
|
4 |
Справа от поля «URL» нажмите кнопку «Блокировать» и добавьте |
5 |
(Необязательно) Выберите группы пользователей и операторов для назначения конфигурации. |
6 |
Нажмите Отправить. URL отображается как ссылка. |
7 |
В поле "Навигатор фильтров" перейдите в . |
8 |
(Необязательно) В списке "Группы пользователей" переместите группы пользователей, которые имеют доступ к рабочему столу "Webex Contact Center" из "Доступен" к выбранным . |
9 |
Перед попыткой использовать телефон с OpenХерной системой убедитесь, что выгрузили файл пользовательского макета рабочего стола 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 Contact Center. |
4 |
На панели навигации на портале управления выберите » |
5 |
Щелкните Новый макет и введите сведения о макете рабочего стола. |
6 |
Выгрузите файл макета рабочего стола ServiceNow НАстольного компьютера, а также файл СОуправляемым инструментом ;; |
7 |
Щелкните " Сохранить" , чтобы сохранить конфигурацию. Теперь вы можете запустить Webex Contact Center Desktop в консоли ServiceNow. |
8 |
В поле "Навигатор фильтров" перейдите в . |
1 |
В поле "Навигатор фильтров" перейдите в раздел "Инциденты> Открыть инциденты . |
2 |
Щелкните поле вызывающего абонента правой кнопкой мыши и выберите « Настроить словарь». |
3 |
Добавьте атрибуты Теперь можно приступить к использованию Webex Contact Center Desktop на консоли ServiceNow. |
4 |
В поле "Навигатор фильтров" перейдите в . |
Мы поддерживаем вход в Agent Desktop только с помощью соединителей WebRTC for Salesforce (SFDC) и Microsoft Dynamics (MS Dynamics).
Agent Desktop в консоли ServiceNow
Перед выполнением исходящих вызовов убедитесь в следующем:
-
Создайте начальную точку входа и создайте стратегию выходной точки входа.
-
Включите outdial ANI для профиля оператора.
-
Задайте для выходного набора ANI сопоставление номера и точки входа.
Дополнительные сведения см. в главе « Выделение ресурсов» в руководстве по настройке и администрированиюCisco Webex Contact Center.
В поле "Навигатор фильтров" перейдите в
.
Сведения об использовании рабочего стола см . в разделе "Оператор Tab" в справке Webex Contact Center.
Обзор
В этой статье рассматривается несколько способов настройки бизнес-правил для соединителя ServiceNow ONLINE. В нем подробно описывается, как можно настраивать случаи использования на основе бизнес-правил, связанных с ServiceNow.
Заказчик должен самостоятельно управлять этими вариантами использования в ServiceNow. Конфигурация используется только для ServiceNow, а не Webex Contact Center программного обеспечения или экспертного опыта.
Это справочная документация для помощи в изменении бизнес-правил. Разработчики ServiceNow будут создавать бизнес-правила и управлять ими, а также оказывать поддержку.
Cisco приводит только примеры документации.
В следующих разделах приводится информация о настройке и включении виджета действий для экземпляров разработчика и предприятия, а также управление ими.
Фиксация набора обновлений для виджета действий
Для лицензированных экземпляров предприятия установите последнее приложение Webex Contact Center из магазина ServiceNow.
Чтобы настроить виджет «Действия» для экземпляров разработчика, загрузите последний файл набора обновлений системы XML файл, доступный в github repo по адресу: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Имя файла — webexcc-servicenow-update-setv7-1-ActionsWidget.XML. Сведения о фиксации набора обновлений для виджета "Действия", см. в шагах 2–9 в разделе "Фиксация набора обновления".
Включить виджет «Действия»
Используйте свойство isWidgetDisplayEnabled для включения виджета «Действия». Не следует изменять значение этого свойства в разделе «Без головы» макета пользовательского рабочего стола. В разделе без головы макета пользовательского рабочего стола для свойства всегда задано значение false. Значение объекта следует обновлять только в разделе панели пользовательского макета рабочего стола.
После включения виджета «Действия» в пользовательском макете рабочего стола можно выполнить следующие действия:
- Управление записями об активности — просмотр /изменение записи об активности для просмотра списка записей об активности, связанных с вызывающим абонентом.
- Связать объекты ONLINE — щелкните «Связать с записями активности», чтобы добавить в запись об активности такие объекты СИСТЕМЫ, как типы вызовов (входящие или исходящие), объект вызова, примечания к вызовам и т. д.
- Управление инцидентами — щелкните " Создать инцидент". Создается новый инцидент с заранее заселенной информацией о вызывающем абоненте. Вы можете внести необходимые обновления в инцидент. В соответствии со своими требованиями можно изменить тип записи от инцидента к регистру, модуля управления персоналом и т. д. Для изменения типа записи измените значение свойства typeOfRecord в конфигурации виджета «Действия». Пример:
{ "comp": "md-tab-панель", "атрибуты": { "гнездо": "панель", "класс": "виджет-панель" }, "дети": [ { comp: "agentx-custom-desktop", "сценарий": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "свойства": { "isWidgetDisplayEnabled": true, "typeOfRecord": "Создать инцидент" }, "оболочка": { "название:: "Действия снега!", "maximizeAreaName": "приложение-развернуть область" }
- Добавлять заметки о вызове в режиме live — можно захватить дополнительную информацию о вызове в текстовой области и завершить вызов. Эти заметки отображаются в записи об активности как заметки о вызовах.
Изменение кода в ServiceNow
Сценарий содержит изменения-
Перейдите к фильтру навигатора и выполните поиск
сценарий включает в себя
.Выберите сценарий включает в разделе "Системный интерфейс"
-
Отфильтруйте имя и выполните поиск
Реквизиты
. -
Измените метод
Идентификатор пользователяGetSysId
в сценарии .Курантный:
UserGetSysId: функция () { 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(); возврат sysid; },
Новый пример кода для инцидента:
UserGetSysId: функция () { 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=инк.getUniqueСеле(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } var grInt = new GlideRecordSecure ('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for = opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; возврат 12.stringify(sysidlist); },
-
Перейдите в навигатор фильтров и выполните поиск по
странице
интерфейса.Выберите страницы интерфейса в разделе "Системный интерфейс".
-
Отфильтруйте имя и выполните поиск
оператору;
. -
Измените значение
экранная попка
функция в клиентском сценарии.Текущая функция:
экран всплывающей функции screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = новый GlideAjax('propUmbers'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openRam.openServiceNowForm({объект: взаимодействие,запрос: "sys_id='+sysid });
Пример кода происшествия:
функция экрана всплывающего окна screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = новый GlideAjax('propUmbers'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'телефон'); gaout.addParam('value', callerani); gaout.getXMLWait(); // Для изменений, связанных с инцидентами var SysObj = ФАЙЛ.parse(gaout.getAnswer()); if(sysObj.incsysid){ openХеричAPI.openServiceNowForm({ объект: «инцидент», запрос: «sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openМAPI.openServiceNowForm({ объект: инцидент, запрос: "sys_id=-1", "interaction_sys_id": sysObj.sysid ///'a2ba0ba62fd121106446cc96f699b6b8' }); }
Если информация о вызывающем абоненте содержится в ИНСТРУМЕНТ-коде(м) и с этим контактом уже открыт новый инцидент, приложение открывает инцидент inprogress
Если информация о вызывающем абоненте не существует в ИНСТРУМЕНТе РЕАЛЬНОго пользователя, приложение открывает новый инцидент
Если информация о вызывающем абоненте содержится в КОДЕУР, приложение открывает новый инцидент с заполненной информацией
Обзор
В этом случае использования подробно описан процесс добавления дополнительного столбца в таблицу ServiceNow . webexcc_imp_activity и создать sn_openframe_phone_log после установки Webex CC для разъема ServiceNow ONLINE.
По умолчанию в таблице содержатся определенные системные поля и значения.
Можно создать дополнительные бизнес-переменные (переменные САПР) в конструкторе Потока WebexCC и добавить переменные CAD в журнал активности вызовов ServiceNow POST, а также сохранить их в данных таблицы активности вызовов POST таблице.
Это справочная документация, где показано, как это сделать для примера переменной CAD с именем клиента, которая хранит имя пользователя в IVR и отправляет его в ServiceNow.
Ожидается, что эта конфигурация будет выполняться от партнера и пользователя разработчиков ServiceNow, так как она выполняется по настройке существующего соединителя.
Cisco содержит только методы настройки и расширения соединителя.
На основании этой статьи команда Cisco подтвердила поддержку добавления переменной CAD в журнал действий и таблицу действий, используя приведенный ниже способ:
Добавление столбца в активность WebexCC IMP
-
Измените таблицу в версии ServiceNow для разработчика.
-
Перейдите в навигатор фильтров и найдите студию.
Выбрать
Webex Contact Center
или
-
Выберите
Активность WebexCC IMP
стол -
Добавьте новый столбец, например:
CustomerName
Добавление столбца в журнал телефона
-
Измените таблицу журналов телефона.
-
Добавьте новый столбец, например:
CustomerName
.
Карта преобразования активности WebexCC
Добавьте новый столбец, например: CustomerName
сопоставление полей.
Персонализация столбцов списка
Как рекомендует Service Now, измените действие «Выбор» на «создать» на игнорирование.
Настройка списка журналов телефона
Перейти к включению сценария
Добавьте только одну линию webexcc.u_customername=actInfo.CustomerName
на реквизиты.
См. строку: webexcc.u_customername=actInfo.CustomerName; с подтверждающим комментарием.
var propОвред = Class.create(); prop00.prototype = Object.extendsObject(глобальный. АннотацияAjaxProcessor,{ getХеexccProp: функция () { 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'); возвратБУ.stringify(webexccprop); }, UserGetSysId: функция () { 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 ('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for = opened_for; var sysid=grInt.Insert(); sysid возврата; }, setInfoexccable: функция () { var sys_id=0; var actInfo = 1.parse(this.getParameter('actInfo')); var webexcc = новый 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 («телефон», этот.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('инцидент'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next(()) { varinfoPretty =ВОРк.stringify(STRING.parse(actInfoString),null,2); inc.comments =display; inc.update(); } } sys_id возврата; }, введите: "propХутилс' });
Создайте переменную CAD в конструкторе потока
Добавьте переменную CAD к макету рабочего стола
Пример
"CadName1:SnowField1,CadName2:Снежный поле2" cadName1 является CustomerName SnowField1 также используется в качестве CustomerName, который является частью примера отображения над "actInfo.CustomerName".
Демонстрационные скриншоты
Просмотрите недавно добавленную переменную CAD в таблице Активности WebexCC.
Создание переменной CAD для конструктора потока
Срочность инцидентовПоследствия инцидента
Обновление сценария Service Now
Обновления сценария включает
-
Перейдите в навигатор фильтров и выполните поиск по
сценарию
Выберите параметр «Сценарий включает» в разделе «Системный интерфейс пользователя»
-
Отфильтруйте имя с помощью
функции propScreen
. -
Измените метод
Идентификатор пользователяGetSysId
в поле "Сценарий ".Текущий сценарий:
UserGetSysId: функция () { 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(); возврат sysid; },
Новый пример кода для инцидента:
UserGetSysId: функция () { 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.getUniqueПеле(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.срочность =this.getParameter('Value'); inc.impact=this.getParameter('Impact'); inc.short_description='Call Received From ' + this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } var grInt = new GlideRecordSecure ('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for = opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; возврат 12.stringify(sysidlist);//sysid; },
-
Перейдите в навигатор фильтров и найдите
страницы
интерфейса.Выберите параметр « Страницы интерфейса пользователя» в разделе «Системный интерфейс пользователя»
-
Отфильтруйте страницы пользовательского интерфейса по имени и поиску
операторов
-
Измените значение
экранная попка
функционировать в поле сценария.Текущая функция:
экран всплывающей функции screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = новый GlideAjax('propХукс'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openRam.openServiceNowForm({объект: взаимодействие,запрос: "sys_id='+sysid });
Пример кода происшествия:
экран всплывающей функции 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.Срочность != null &&callSessionInfo.callAssociatedData.callAssociatedData.Срочность != не определено) { IncUrgency=callSessionInfo.callAssociatedData.Срочность.значение; } if(callerani=== = = = = = =callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax ('propТакт.); gaout.addParam («sysparm_name», «UserGetSysId»); gaout.addParam ('поле', 'телефон'); gaout.addParam («значение», callerani); gaout.addParam ('IncUrgency', IncUrgency); gaout.addParam («Воздействие», «Воздействие» ); gaout.getXMLWait(); var sysid = gaout.getAnswer(); var sysObj = EXCEL.parse(gaout.getAnswer()); if(sysObj.incsysid){ openХеридAPI.openServiceNowForm({ объект: 'инцидент', запрос: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openХ.openServiceNowForm({объект: 'инцидент', запрос: 'sys_id=-1', 'interaction_sys_id:sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",STRINGify(sysObj)); }
Если информация о вызывающем абоненте содержится в ИНСТРУМЕНТ-сервере (ГДЕ-либо нет нового или непрогрессного инцидента), то приложение открывает новый инцидент
Измените код в ServiceNow
Добавьте новые столбцы в Активность WebexCC IMP
стол
Откройте окно Активность WebexCC IMPстол
Нажмите « Обновить».
Добавьте новые столбцы в Журнал телефона
стол
Откройте окно Журнал телефона
стол
Карта преобразования активности WebexCC
Открыть карта преобразования
из навигатора фильтров
Нажмите кнопку Карта преобразования активности WebexCC
Нажмите Обновить.
Включает изменения в сценарии
-
Перейдите в фильтр навигатора и найдите "сценарий включает".
Выберите сценарий включает в разделе "Системный интерфейс"
-
Отфильтровать имя по
Реквизиты
. -
Измените метод
setХвысекубь
.Новый пример кода для инцидента:
setХ.excctable: функция () { var sys_id=0; var actInfo = EXCEL.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.setLv ('state','Завершено завершено'); inte.work_notes='Update State to closed.';inte.update();} if(incsysid!= null &&incsysid!= undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var infoPretty = STRINGify(actInfo,null,2); //ВОР.stringify(АДРЕС.parse(actInfoString,null,2); inci.comments =венесуэльскийpretty; 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('state',IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if(inc.next())) { varinfo.pretty =STRINGify(actInfo,null,2); inc.comments=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; },
Изменения методов на страницах интерфейса
-
Перейдите к фильтру навигатора и выполните поиск
Страницы интерфейса
Выберите параметр « Страницы интерфейса пользователя» в разделе «Системный интерфейс пользователя»
-
Отфильтруйте страницы пользовательского интерфейса по имени и поиску
операторов
-
Измените значение
nowActivities и screenpop
функции в сценарии.Текущая функция:
функция теперь Активности(actInfo, ani) { var gaout = new GlideAjax('prop000'); gaout.addParam('sysparm_name', 'setInfoexcctable'); gaout.addParam('actInfo', ИНТЕРФЕЙС.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }
Пример кода происшествия:
функция nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null &&sysObjstr != undefined) { var sysObjson=ФАЙЛ.parse(sysObjstr); actInfo.interaction_sys_id=sysObjson.sysid; actInfo.incident_sys_id=sysObjson.incsysid; } var gaout = new GlideAjax('prop00'); gaout.addParam('sysparm_name', 'setExcctable'); gaout.addParam('actInfo', ИНТЕРФЕЙС.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML (SetCCsysId); } функция screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = новый GlideAjax('propХукс'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'телефон'); gaout.addParam('value', callerani); gaout.getXMLWait(); //var sysid = gaout.getAnswer(); var sysObj = USB.parse(gaout.getAnswer()); if(sysObj.incsysid){ openХерид.openServiceNowForm({ объект: «инцидент», запрос: «sys_id=»sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openХ.openServiceNowForm({ объект: инцидент, запрос: "sys_id=-1", "interaction_sys_id:sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",XML.stringify(sysObj)); }
Результаты после обновления
Следующие настройки применяются к версии 1.0.5 и ниже. Для настройки более новых версий 1.0.7 и выше следуйте приведенным выше инструкциям.
Настройка No 1 — добавьте пользовательские бизнес-правила для случаев использования потока вызовов
Создайте новую запись об инцидентах для каждого вызоваДля каждого нового вызова в соединитель WebexCC SMTP в 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("name", "name", имя); } if (userID == null &&phone != null &&phone != null &&phone != '') { userID = UserGetSysId("телефон", 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 возврата; } функция UserGetSysId(поле, значение) { var user = new GlideRecord("sys_user"); user.addQuery(поле, значение); user.query(); if (user.next()) возвращает user.sys_id; else возвращает null; }
Пример конфигурации бизнес-правила
Включение функции вызова с помощью клиента
Интеграция компьютерной телефонии (CTI): при обработке инцидентов помечается значение True.
Обновите URL для экранаpop с помощью пользовательского правила CTI" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =name , где 'name' — имя функции следует вызывать для CTI Processing вместо сценария по умолчанию.
Определите функцию в sys_script записи, помеченной «можно вызывать у клиента».
Если необходимо Insert, обновить или удалить все записи с glideReide в этой функции, вызовите отдельную неклайентную функцию для выполнения обновлений.
Чтобы сценарий был клиентским, необходимо установить флажок «клиент-вызов» на бланке, который отображается при отображении записи sys_script.
Флажок «Клиент-вызов» не установлен по умолчанию. Для просмотра необходимо изменить поля, которые отображаются на форме, используя значок шестеренки и механизм ведра slush.
Настройка No 2 — добавьте переменную САПР в таблицу действий Webex Contact Center
ОбзорВ этой статье описывается процесс добавления дополнительного столбца в таблицу ServiceNow — webexcc_activity, созданного при установке разъема Webex CC для ServiceNow ONLINE.
По умолчанию в таблице содержатся стандартные системные поля и значения.
Возможно, можно создать больше бизнес-переменных (переменных САПР) в конструкторе Потока WebexCC и добавить такие переменные в журнал активности вызовов ServiceNow POST и сохранить их в данных таблицы активности вызововPOST таблице .
-
Это только справочная документация, где показано, как это сделать для примера переменной CAD с именем клиента, которая сохраняет имя пользователя в IVR и отправляет его в ServiceNow.
-
Эту конфигурацию будут настраивать и управлять разработчики ServiceNow от партнера и пользователя, так как она выполняется по настройке существующего соединителя.
-
Cisco будет только предоставлять методы настройки и расширения соединителя.
-
На основании этой статьи команда Cisco подтвердила поддержку добавления переменной CAD в журнал действий и таблицу активностей, используя метод, описанный ниже.
Измените таблицу в версии ServiceNow для разработчика.
Перейдите в студию
.Выберите таблицу активности WebexCC.
Например, CustomerName.
Выбор макета списков для деятельности WebexCC.
Этот шаг не требуется, если вы используете обновленный набор XML. В список prop Самообмена требуется добавить только одну линию "webexcc.u_customername=actInfo.CustomerName".

Пример сценария
См. линию со:webexcc.u_customername=actInfo.CustomerName; с подтверждающим комментарием.
varя22 = Class.create(); propУкр. 2.prototype = Object.extendsObject(глобальный. АннотацияAjaxProcessor,{ getХеexccProp: функция () { 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'); возвратВОРный АДРЕС.stringify(webexccprop); }, setХ.excctable: функция () { var sys_id=0; var actInfo = EXCEL.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 («телефон», этот.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('инцидент'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next(())) { varpretty =ВОРн.stringify(STRING.parse(действующий строку),null,2); inc.comments =американопреттий; inc.update(); } } sys_id возврата; }, тип: "propХурез2' });
Измените страницу пользовательского интерфейса, указав новое имя сценария
Создайте переменную CAD в конструкторе потока
Добавьте переменную CAD к макету рабочего стола
Демонстрационные скриншоты
Просмотрите недавно добавленную переменную CAD в таблице Активности WebexCC.
