Интегрировать Webex контакт-центр с помощью ServiceNow
При интеграции Webex контакт-центра с консолью ServiceNow СИСТЕМЫ УПРАВЛЕНИЯ (SERVICENow) вы можете запустить Webex Contact Center Desktop из приложения ServiceNow.
Предварительные условия
В настоящее время эта функция применима только к операторам.
Перед интеграцией Webex контакт-центра с консолью ServiceNow ONLINE убедитесь, что в наличии следующего:
-
Доступ к контакт-центру Webex.
-
доступ администраторов к центру управления в 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 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 Контакт-центр поддерживает: Ванкувер, Юта, Токья, Вашингтон и Xanadu. Дополнительные сведения см. в разделе Webex интеграции контакт-центра с 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 link. |
4 |
Щелкните "Выбрать файл", выберите XML файл набора обновлений системы и нажмите " Отправить".
Набор обновлений появляется в списке "Извлеченные наборы обновлений" и находится в состоянии " Загружено ".
|
5 |
В списке "Извлеченные наборы обновлений" щелкните имя файла набора обновлений (ссылку), чтобы открыть набор обновлений. |
6 |
В правой верхней части окна щелкните "Предварительный просмотр набора обновлений" , чтобы проверить наличие неполадок в наборе обновлений. |
7 |
Нажмите Кнопку " Закрыть " в диалоговом окне "Предварительный просмотр набора обновлений" по завершении предварительного просмотра. |
8 |
Щелкните «Установить обновление» |
9 |
Щелкните Закрыть диалоговое окно «Фиксация набора обновлений» по завершении фиксации набора обновлений. |
1 |
В поле "Навигатор фильтров" в верхней левой части окна введите |
2 |
На странице "Свойства системы" сортируйте свойства по дате обновления. Убедитесь, что Webex свойствах контакт-центра отображаются следующие свойства: |
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 Management Portal. Дополнительные сведения см. в разделе «Настройка макета ServiceNow Desktop» в Webex Contact Center. |
1 |
Загрузите макет рабочего стола для ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
При необходимости обновите свойства в файле макета рабочего стола. |
3 |
Перейдите на Webex портал управления контакт-центром. |
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 контакт-центра непосредственно из магазина 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 Desktop в соответствии с регионом операции.
|
5 |
Нажмите Кнопку "Обновить" , чтобы сохранить изменения. |
6 |
(Необязательно) Чтобы изменить имя таблицы действий, измените свойства x_caci_webexcc.webexccactivitytable .
|
7 |
(Необязательно) Добавьте группы пользователей следующими способами:
|
1 |
В поле "Навигатор фильтров" перейдите в . |
2 |
Щелкните Создать. |
3 |
Введите следующие свойства для URL::
|
4 |
Справа от поля «URL» нажмите кнопку «Блокировать» и добавьте |
5 |
(Необязательно) Выберите группы пользователей и операторов для назначения конфигурации. |
6 |
Нажмите Отправить. URL отображается как ссылка. |
7 |
В поле "Навигатор фильтров" перейдите в . |
8 |
(Необязательно) В списке "Группы пользователей" переместите группы пользователей, которые могут получить доступ к рабочей станции Webex Contact Center Desktop, из "Доступно" для выбранной . |
9 |
Перед тем, как использовать телефон с OpenКилтер, убедитесь в загрузке файла МАКЕТа пользовательского рабочего стола ServiceNow НА ПОРТАЛ управления Webex Contact Center Management Portal. Дополнительные сведения см. в разделе «Настройка макета ServiceNow Desktop» в Webex Contact Center. |
1 |
Загрузите макет рабочего стола для ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
При необходимости обновите свойства в файле макета рабочего стола. |
3 |
Перейдите на Webex портал управления контакт-центром. |
4 |
На панели навигации на портале управления выберите » |
5 |
Щелкните Новый макет и введите сведения о макете рабочего стола. |
6 |
Выгрузите файл макета рабочего стола ServiceNow НАстольного компьютера, а также файл СОуправляемым инструментом ;; |
7 |
Щелкните " Сохранить" , чтобы сохранить конфигурацию. Теперь вы можете запустить Webex Contact Center Desktop в консоли ServiceNow. |
8 |
В поле "Навигатор фильтров" перейдите в . |
1 |
В поле "Навигатор фильтров" перейдите в раздел "Инциденты> Открыть инциденты . |
2 |
Щелкните поле вызывающего абонента правой кнопкой мыши и выберите « Настроить словарь». |
3 |
Добавьте атрибуты Теперь вы можете приступить к использованию Webex Contact Center Desktop в консоли ServiceNow. |
4 |
В поле "Навигатор фильтров" перейдите в . |
Agent Desktop в консоли ServiceNow
Перед выполнением исходящих вызовов убедитесь в следующем:
-
Создайте начальную точку входа и создайте стратегию выходной точки входа.
-
Включите outdial ANI для профиля оператора.
-
Задайте для выходного набора ANI сопоставление номера и точки входа.
Дополнительные сведения см. в главе « Выделение ресурсов » Cisco Webex Contact Center руководстве по настройке и администрированию .
В поле "Навигатор фильтров" перейдите в
.
Для получения информации об использовании рабочего стола см . вкладку "Оператор " справки Webex контакт-центра.
Обзор
В этой статье рассматривается несколько способов настройки бизнес-правил для соединителя ServiceNow ONLINE. В нем подробно описывается, как можно настраивать случаи использования на основе бизнес-правил, связанных с ServiceNow.
Заказчик должен самостоятельно управлять этими вариантами использования в ServiceNow. Конфигурация используется только для ServiceNow, и не Webex программного обеспечения или экспертного опыта Контакт-центра.
Это справочная документация для помощи в изменении бизнес-правил. Разработчики ServiceNow будут создавать бизнес-правила и управлять ими, а также оказывать поддержку.
Cisco предоставляет только примеры документации.
В следующих разделах приводится информация о настройке и включении виджета действий для экземпляров разработчика и предприятия, а также управление ими.
Фиксация набора обновлений для виджета действий
Для лицензированных экземпляров предприятия установите последнюю версию приложения Webex контакт-центра из магазина 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(); return 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, а также сохранить их в таблице активности вызовов.
Это только справочная документация, где показано, как это сделать для примера переменной 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(); return 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='phoney;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стол Добавьте новый столбец - InteractionsNumber Добавьте новый столбец — IncidentNumber
Нажмите « Обновить».
Добавьте новые столбцы в Журнал телефона
стол
Откройте окно Журнал телефона
стол
Карта преобразования активности 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-адрес screenpop с помощью пользовательского правила CTI " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =name , где 'name' — имя функции , которую следует вызывать для CTI Обработки вместо сценария по умолчанию.
Определите функцию в sys_script записи, помеченной «можно вызывать у клиента».
Если необходимо вставить, обновить или удалить какие-либо записи GlideRecords в эту функцию, вызовите отдельную неклайентную функцию для выполнения обновлений.
Чтобы сценарий был клиентским, необходимо установить флажок «клиент-вызов» на бланке, который отображается при отображении записи sys_script.
Флажок «Клиент-вызов» не установлен по умолчанию. Для просмотра необходимо изменить поля, которые отображаются на форме, используя значок шестеренки и механизм ведра slush.
Настройка No 2 — добавьте переменную САПР в таблицу действий Webex contact Center
ОбзорВ этой статье описывается процесс добавления дополнительного столбца в таблицу ServiceNow — webexcc_activity, созданного при установке разъема Webex CC для ServiceNow ONLINE.
По умолчанию в таблице содержатся стандартные системные поля и значения.
Возможно, можно создать больше бизнес-переменных (переменных CAD) в конструкторе Потока WebexCC и добавить такие переменные в журнал активности пост-вызовов ServiceNow и сохранить этов таблице активности вызовов.
-
Это только справочная документация, где показано, как это сделать для примера переменной САПР с именем клиента, в которую имя пользователя хранится в 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.