При интеграции 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
-
-
Оператор с доступом к рабочему столу. URL рабочего стола указан в вашем регионе.
-
Северная Америка: https://desktop.wxcc-us1.cisco.com
-
Британский: https://desktop.wxcc-eu1.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 Контакт-центр поддерживает, это Ванкувер, Юта, Токья и Вашингтон. Дополнительные сведения см. в разделе 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 руководстве по настройке и администрированию.
В поле "Навигатор фильтров" перейдите к
.
Щелкните левый нижний значок телефона.
Сведения об использовании рабочего стола см. в Cisco Webex Contact Center Agent Desktop руководстве пользователя.
Раздел хранилища сторонних разработчиков
Возможная проблема с недавним обновлением Google Chrome и Edge 116 или выше может помешать входу в СИСТЕМУ через соединители SMTP в контакт-центре Webex контакт-центра. Эта проблема влияет на вход на рабочий стол на консоли ServiceNow ONLINE.
Для решения этой проблемы в браузере Google Chrome выполните следующие действия
-
Откройте браузер Google Chrome и введите
chrome://flags/#third-party-storage-partitioning
в адресной строке. -
Деактивируйте флаг раздела экспериментального стороннего хранилища.
-
Закройте и перезапустите Chrome.
-
снова выполните вход на рабочий стол внутри консоли ServiceNow ONLINE.
Для решения этой проблемы в браузере Edge выполните следующие действия
-
Откройте браузер и введите
edge://flags/#third-party-storage-partitioning
в адресной строке. -
Деактивируйте флаг раздела экспериментального стороннего хранилища.
-
Сохраните изменения и перезапустите браузер.
-
снова выполните вход на рабочий стол внутри консоли ServiceNow ONLINE.
Для решения этой проблемы в браузере Firefox выполните следующие действия
-
Откройте браузер и введите
about:config
в адресной строке.Может появиться страница с предупреждением. Щелкните " Принять риск" и перейдите на страницу
About:config
. -
Введите
сетевой файл.файлибюбюро
в поле "Имя предпочтительностипоиска" в верхней части страницы about:config
, чтобы найти предпочтительнее значение. -
Дважды щелкните предпочтительные параметры или значок "Изменить" , чтобы изменить настройки.
-
Измените значение на 0.
-
Сохраните изменения и перезапустите браузер.
-
снова выполните вход на рабочий стол внутри консоли ServiceNow ONLINE.
Обзор
В этой статье рассматривается несколько способов настройки бизнес-правил для соединителя ServiceNow ONLINE. В нем подробно описывается, как можно настраивать случаи использования на основе бизнес-правил, связанных с ServiceNow.
Заказчик должен самостоятельно управлять этими вариантами использования в ServiceNow. Конфигурация используется только для ServiceNow, и не Webex программного обеспечения или экспертного опыта Контакт-центра.
Это справочная документация для помощи в изменении бизнес-правил. Разработчики ServiceNow будут создавать бизнес-правила и управлять ими, а также оказывать поддержку. Cisco предоставляет только примеры документации. |
В следующих разделах приводится информация о настройке и включении виджета действий для экземпляров разработчика и предприятия, а также управление ими.
Фиксация набора обновлений для виджета действий
Для лицензированных экземпляров предприятия установите из магазина ServiceNow виджет «Действия разъема ServiceNow» версии 1.9.
Чтобы настроить виджет «Действия» для экземпляров разработчика, загрузите последний набор обновлений системы 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; с подтверждающим комментарием.
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 и сохранить этов таблице активности вызовов.
|
Измените таблицу в версии 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'); возврат INSTANCE.stringify(webexccprop); }, setExcctable: функция () { var sys_id=0; var actInfo = 2.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.