Интегрирайте Webex Contact Center със ServiceNow (Версия 1—Legacy)
Предпоставки
CRM конекторът работи базиран на версията на джаджата, посочена в десктоп оформлението JSON. Изключително важно е версията на джаджата в Desktop Layout да се поддържа актуализирана. Към ноември 2025 г. последната версия на уиджета е 5.0.0 (V5).
Администраторите се очаква да гарантират, че всички десктоп оформления на този CRM конектор използват тази версия на джаджата. Ако оформлението не бъде обновено да използва най-новата версия, функционалността вече няма да се поддържа и може да спре да работи правилно.
Минималният поддържан размер за интерфейса на софтфона е 500px. Всяка стойност под 500px може да доведе до проблеми с дисплея или функционалността.
Преди да интегрирате Webex Contact Center с ServiceNow CRM конзолата, уверете се, че имате следното:
-
Достъп до Webex Contact Center.
-
Администраторски достъп до Control Hub на 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 (JSON)
-
- Изданията на ServiceNow, които Webex Contact Center поддържа, са Ванкувър, Юта, Токия, Вашингтон и Ксанаду. За повече информация вижте Webex Contact Center Интеграция със ServiceNow.
Следвайте един от двата метода по-долу:
За разработчиски инстанции препоръчваме да следвате стъпките под ръководството за разработчици.
Ако притежавате инстанция с корпоративен лиценз, следвайте правилата за корпоративно лицензирани инстанции.
Не препоръчваме да смесвате корпоративно лицензирано приложение с разработчици пясъчни инстанции.
Следващите раздели описват стъпките за инсталиране на ServiceNow конектора за разработчици.
| 1 |
Влезте в акаунта си в портала за разработчици ServiceNow и отворете конзолата за администрация . |
| 2 |
От секцията My Instance в менюто Account натиснете Start Building.
|
| 3 |
В инстанцията на разработчика, от полето Filter Navigator в горния ляв ъгъл на прозореца, навигирайте до Плъгини.
|
| 4 |
Потърсете Openframe плъгина с заглавието Openframe. Може да се наложи да прегледате списъка.
|
| 5 |
Кликнете на Инсталиране , за да инсталирате плъгина Openframe. |
| 6 |
В диалоговия прозорец "Активирай плъгин " кликни върху "Активирай".
|
| 7 |
Когато активирането на плъгина приключи, кликнете върху Close & Reload Form в диалоговия прозорец за активация на плъгина.
|
| 8 |
За да проверите активацията на плъгина, от полето Filter navigator в горния ляв ъгъл на прозореца навигирайте до OpenFrame. |
| 9 |
Кликнете върху Конфигурации и се уверете, че плъгинът OpenFrame се появява в списъка с конфигурации на OpenFrame.
|
| 1 |
Изтеглете най-новия System Update Set XML файл, наличен в github репозиторията на това място : https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. Име на файл: webexcc-servicenow-update-setV(X).XML
|
| 2 |
Във вашия ServiceNow инстанс, от полето Filter Navigator в горния ляв ъгъл на прозореца, навигирайте до .
|
| 3 |
Кликнете на Import Update Set от линка XML .
|
| 4 |
Кликнете на Избор на файл, изберете файла System Update Set XML и след това изберете Upload.
Комплектът за обновления се появява в списъка Retrieved Update Sets и е в състояние Loaded .
|
| 5 |
От списъка с Retrieved Update Sets , кликнете върху Update Set File Name (линк), за да отворите Update Set.
|
| 6 |
В горния десен ъгъл на прозореца кликнете върху Preview Update Set , за да проверите комплекта за актуализации за проблеми.
|
| 7 |
Кликнете върху Затвори в диалоговия прозорец за преглед на Update Set, след като прегледът приключи.
|
| 8 |
Кликнете върху Commit Update Set.
|
| 9 |
Кликнете върху Затвори в диалоговия прозорец Update Set Commit , след като завърши потвърждаването на Update Set.
|
| 1 |
В полето Filter Navigator в горния ляв ъгъл на прозореца напишете
|
| 2 |
На страницата Свойства на системата сортирайте свойствата по дата на обновяване. Уверете се, че виждате следните Webex Contact Center свойства:
|
| 3 |
Кликнете agentdesktop_url , за да отворите страницата System Property agentdesktop_url . |
| 4 |
В полето Value въведете URL адреса на работния плот Webex Contact Center според региона на работа.
|
| 5 |
Кликнете на Актуализиране , за да запазите промените. |
| 6 |
(По желание) За да промените името на таблицата Activity, редактирайте свойствата на webexccactivitytable според необходимото. На страницата Свойства на системата кликнете върху webexccactivitytable. Променете полето Стойност според изискванията.
|
| 7 |
(По желание) Добавете потребителски групи по следните начини:
|
| 1 |
От полето Filter Navigator преминете към .
|
| 2 |
Натиснете Нов.
|
| 3 |
Въведете следните свойства за URL адреса:
|
| 4 |
Вдясно от полето за URL натиснете бутона Lock и добавете
|
| 5 |
(По желание) Изберете групите потребители/агенти, за да присвоите конфигурацията.
|
| 6 |
Щракнете върху Подаване. URL адресът се появява като линк.
|
| 7 |
Преди да опитате да използвате OpenFrame телефона, уверете се, че качвате персонализирания JSON файл ServiceNow Desktop Layout в портала Webex Contact Center за управление. За повече информация вижте Set Up the ServiceNow Desktop Layout на Webex Contact Center. |
| 1 |
Изтеглете оформлението на работния плот за ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.
|
| 2 |
Актуализирайте свойствата във файла Desktop Layout, ако е необходимо. |
| 3 |
Посетете портала за управление Webex Contact Center. |
| 4 |
От навигационната лента на Управленския портал изберете .
|
| 5 |
Кликнете върху Нов дизайн и въведете детайлите за оформлението на работния плот. |
| 6 |
Качете JSON файла ServiceNow Desktop Layout. |
| 7 |
Кликнете върху Запази , за да запазите конфигурацията. Сега можете да стартирате Webex Contact Center Desktop в конзолата ServiceNow. |
| 8 |
От полето Filter Navigator преминете към .
|
Следващите раздели описват стъпките за инсталиране на ServiceNow конектора за лицензирани корпоративни инстанции.
| 1 |
Влезте в акаунта си в портала за разработчици ServiceNow и отворете конзолата за администрация . |
| 2 |
От секцията My Instance в менюто Account натиснете Start Building.
|
| 3 |
В инстанцията на разработчика, от полето Filter Navigator в горния ляв ъгъл на прозореца, навигирайте до Плъгини.
|
| 4 |
Потърсете Openframe плъгина с заглавието Openframe. Може да се наложи да прегледате списъка.
|
| 5 |
Кликнете на Инсталиране , за да инсталирате плъгина Openframe. |
| 6 |
В диалоговия прозорец "Активирай плъгин " кликни върху "Активирай".
|
| 7 |
Когато активирането на плъгина приключи, кликнете върху Close & Reload Form в диалоговия прозорец за активация на плъгина.
|
| 8 |
За да проверите активацията на плъгина, от полето Filter navigator в горния ляв ъгъл на прозореца навигирайте до OpenFrame. |
| 9 |
Кликнете върху Конфигурации и се уверете, че плъгинът OpenFrame се появява в списъка с конфигурации на OpenFrame.
|
Инстанциите с корпоративни лицензи могат да инсталират приложението Webex Contact Center директно от ServiceNow Store.
|
Изтеглете и инсталирайте пакета Webex Contact Center от магазина ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947.
|
| 1 |
В полето Filter Navigator в горния ляв ъгъл на прозореца въведете
|
| 2 |
На страницата Свойства на системата сортирайте свойствата по дата на обновяване. Уверете се, че виждате следните Webex Contact Center свойства:
|
| 3 |
Кликнете agentdesktop_url , за да отворите страницата System Property agentdesktop_url . |
| 4 |
В полето Стойност въведете URL адреса на Webex Contact Center работния плот според региона на работа.
|
| 5 |
Кликнете на Актуализиране , за да запазите промените. |
| 6 |
(По желание) За да промените името на таблицата Activity, редактирайте свойствата на x_caci_webexcc.webexccactivitytable при необходимост.
|
| 7 |
(По желание) Добавете потребителски групи по следните начини:
|
| 1 |
От полето Filter Navigator преминете към .
|
| 2 |
Натиснете Нов.
|
| 3 |
Въведете следните свойства за URL адреса:
|
| 4 |
Вдясно от полето за URL кликнете върху бутона Lock и добавете
|
| 5 |
(По желание) Изберете групите потребители/агенти, за да присвоите конфигурацията.
|
| 6 |
Щракнете върху Подаване. URL адресът се появява като линк.
|
| 7 |
От полето Filter Navigator преминете към .
|
| 8 |
(По желание) В списъка с потребителски групи преместете потребителските групи, които имат достъп до Webex Contact Center Desktop, от Available към Selected. |
| 9 |
Преди да опитате да използвате OpenFrame телефона, уверете се, че качвате персонализирания JSON файл ServiceNow Desktop Layout в портала Webex Contact Center за управление. За повече информация вижте Set Up the ServiceNow Desktop Layout на Webex Contact Center. |
| 1 |
Изтеглете оформлението на работния стол за ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.
|
| 2 |
Актуализирайте свойствата във файла Desktop Layout, ако е необходимо. |
| 3 |
Посетете портала за управление Webex Contact Center. |
| 4 |
От навигационната лента на Портала за управление изберете .
|
| 5 |
Кликнете върху Нов дизайн и въведете детайлите за оформлението на работния плот. |
| 6 |
Качете JSON файла ServiceNow Desktop Layout. |
| 7 |
Кликнете върху Запази , за да запазите конфигурацията. Сега можете да стартирате Webex Contact Center работния плот в конзолата ServiceNow. |
| 8 |
От полето Filter Navigator преминете към .
|
| 1 |
От полето Филтър навигатор преминете към Инциденти > Отворени инциденти. |
| 2 |
Кликнете с десен бутон върху полето за обаждане и изберете Конфигуриране на речника.
|
| 3 |
Добавете с запетая разделени Атрибути
Вече можете да започнете да използвате десктопа Webex Contact Center в конзолата ServiceNow. |
| 4 |
От полето Filter Navigator преминете към .
|
- Поддържаме влизане в Agent Desktop с WebRTC само за конекторите на Salesforce (SFDC) и Microsoft Dynamics (MS Dynamics).
- В момента тази функция е приложима само за агенти.
Agent Desktop в конзолата ServiceNow
Преди да направите изходящи обаждания, уверете се, че правите следното:
-
Създайте входна точка за outdial и настройте стратегия за входна точка за outdial.
-
Активирайте outdial ANI за профила на агента.
-
Настройте изходящия ANI на картографиране между номер и входна точка.
За повече информация вижте главата Provisioning на ръководството за настройка и администрация Cisco Webex Contact Center.
От полето Filter Navigator преминете към .
За информация как да използвате Desktop, вижте Agent Tab в помощ Webex Contact Center.
Общ преглед
Тази статия разглежда няколко начина да персонализирате бизнес правилата си за ServiceNow CRM конектора. В него се описва как можете да персонализирате случаите на употреба според бизнес правилата, специфични за ServiceNow.
Клиентът трябва сам да управлява тези случаи на употреба в ServiceNow. Конфигурацията е специфична за ServiceNow, а не за Webex Contact Center софтуер или експертиза.
Това е референтна документация, която подпомага промяната на бизнес правилата. Разработчиците на ServiceNow ще създават и управляват бизнес правилата и ще предоставят подкрепа.
Cisco предоставя само примерна документация.
Следващите раздели предоставят подробности за това как да се настрои, активира и управлява уиджетът Actions за разработчици и корпоративни инстанции.
Коммит на Update Set for Actions Widget
За лицензираните корпоративни инстанции инсталирайте най-новото приложение Webex Contact Center от магазина ServiceNow.
За да настроите джаджата Actions за инстанциите на разработчиците, изтеглете последния файл System Update Set XML, наличен в github репозиторията на това място: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Името на файла е webexcc-servicenow-update-setv7-1-ActionsWidget.XML. За да комитирате набора за обновления за Actions widget, вижте стъпки 2 до 9 в Commit the Update Set.
Активирай Actions Widget
Използвайте свойството isWidgetDisplayEnabled , за да активирате джаджата Actions. Не трябва да променяте стойността на това свойство в секцията без глава на персонализирания работен плот. Свойството винаги е зададено на false в секцията без глава на персонализирания десктоп оформление. Трябва да актуализирате стойността на имота само в секцията с панела на персонализираното оформление на работния плот.
След като активирате уиджета Actions в персонализираното оформление на работния плот, можете да изпълните следните действия:
- Управление на записи за активност — Кликнете върху View/Edit Activity Record , за да видите списъка с записи за активност, свързани с обаждащия се.
- Асоцииране на CRM обекти — Кликнете Асоцииране към записи за активност, за да добавите CRM обекти като тип обаждане (входящ или изходящ), обаждащ обект, бележки за обаждания и др. към записа на активността.
- Управление на инциденти — кликнете Create Incident. Създава се нов инцидент с предварително попълнени данни за обаждащия се. Можете да направите необходимите актуализации на инцидента. Можете да изберете да променяте типа на записа от инцидент до случай, HR модул и т.н. в зависимост от вашите изисквания. За да промените типа на записа, променете стойността на свойството typeOfRecord в конфигурацията на widget Actions. Например:
{ "comp": "md-tab-panel", "attributes": { "slot": "panel", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions!", "maximizeAreaName": "app-maximize-area" } } ] - Добавете бележки от живи разговори — Можете да запишете допълнителна информация за разговора в текстовата зона и да приключите разговора. Можете да видите тези бележки, добавени като бележки за повикване в записа на активността.
Промяна на кода в ServiceNow
Сценарият включва промени-
Отиди в навигатора на филтъра и потърси
Сценарият включва
.Изберете скрипта, който включва в системния интерфейс.
-
Филтрирайте името и потърсете
propUtils
. -
Промени метода
UserGetSysId
в сценария.Текущо:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return sysid; },Нов примерен код за инцидента:
UserGetSysId: function () { var opened_for; //Incident related changes var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='телефон'; inc.short_description='Обаждане, получено от '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } } var grInt = нов GlideRecordSecure('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return JSON.stringify (sysidlist); },
-
Отидете в навигатора за филтър и потърсете страницата
на интерфейса.Изберете UI страници под System UI.
-
Филтрирайте името и потърсете
agentdesktop
. -
Промени
screenpop
функция в Client script.Текуща функция:
функция screen pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });Примерен код за инцидента:
функция screen pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); // За промяна, свързана с инцидент, var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Ако информацията за обаждащия се съществува в CRM и вече е открит нов инцидент с този контакт, приложението отваря инцидента с непровеждане
Ако информацията за обаждащия се не съществува в CRM, приложението отваря нов инцидент
Ако информацията за обаждащия се съществува в CRM, приложението отваря нов инцидент с предварително попълнени данни
Общ преглед
Този случай описва процеса за добавяне на допълнителна колона към таблицата ServiceNow - webexcc_imp_activity и създаване на sn_openframe_phone_log при инсталиране на Webex CC for ServiceNow CRM Connector.
По подразбиране таблицата съдържа определени стандартни системни полета и стойности.
Можете да създадете повече бизнес специфични променливи (CAD променливи) в WebexCC Flow дизайнера и да добавите CAD променливите в ServiceNow POST журнала за активност на обажданията, както и да запазите това в таблицата с активност POST обаждания.
Това е само референтна документация – и показва как да се направи това за примерна CAD променлива, наречена Customer Name, която съхранява името на клиента в IVR и го публикува в ServiceNow.
Очаква се разработчиците на Partner+Customer Service Now да конфигурират и управляват тази конфигурация, тъй като тя е персонализация на съществуващия конектор.
Cisco предоставя само техники за персонализиране и разширяване на конектора.
Към тази статия екипът Cisco е валидирал поддръжката за добавяне на CAD променлива към Activity Log и Activity Table, използвайки техниката, описана по-долу:
Добавете колона към активността на WebexCC IMP
-
Редактирай таблицата в разработчичката версия на ServiceNow.

-
Отиди в навигатора на филтъра и потърси Studio.

Отбран
Cisco Unified Contact Center

или



-
Изберете
Дейност на WebexCC IMP
маса
-
Добавете нова колона, например,
CustomerName


Добави колона към телефонния дневник
-
Редактирай таблицата с телефонни логове.


-
Добавете нова колона, например,
CustomerName
.

Карта на трансформацията на активността в WebexCC

Добавете нова колона, например, CustomerName
картографиране на полето.


Персонализиране на колоните в списъка

Както препоръчва Service Now, променете действието Choice от създаване на игнориране.


Конфигуриране на списъка с телефонни логове

Отидете в Script Include
Добавете само един ред webexcc.u_customername=actInfo.CustomerName
за propUtils.



Вижте реда: webexcc.u_customername=actInfo.CustomerName; с подкрепящ коментар.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id;//return user.sys_id; else // return null; var grInt = нов GlideRecord ('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); Връщане на sysid; }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =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; Този ред се добавя - за да се улови в Activity Log webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); Дейности в регистъра на инциденти; var actInfoString =this.getParameter('actInfo'); var suser = нов GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } връщане sys_id; }, type: 'propUtils' });
Създай CAD променлива в Flow designer

Добавете CAD променливата към Desktop Layout
Пример
"CadName1:SnowField1,CadName2:SnowField2" CadName1 е CustomerName SnowField1 се използва и като CustomerName, което е част от примерен сценарий, показан по-горе "actInfo.CustomerName".

Демо скрийншотове
Вижте новодобавената CAD променлива в таблицата WebexCC Activity.



Създаване на CAD променлива за Flow Designer
Спешност при инцидента
Въздействие на инцидента

Актуализация на скрипта Service Now
Актуализации на сценария включват
-
Отиди в навигатора за филтри и потърси script
includesИзберете опцията Script Includes под System UI.

-
Филтрирайте името с
propUtils.
-
Промени метода
UserGetSysId
в полето Script .
Текущ сценарий:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return sysid; },Нов примерен код за инцидента:
UserGetSysId: function () { var opened_for; var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='телефон'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Обаждане, получено от '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } } var grInt = нов GlideRecordSecure('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },
-
Отиди в навигатора за филтри и потърси
UI страници.Изберете опцията UI страници под System UI.

-
Филтрирай UI страниците по име и потърси agentdesktop
.
-
Промени
screenpop
функция в полето скрипт.
Текуща функция:
функция screen pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }Примерен код за инцидента:
screen pop функция screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined ) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam ("поле", "телефон"); gaout.addParam("стойност", callerani); gaout.addParam ("IncUrgency", IncUrgency); gaout.addParam ("Impact", Impact); gaout.getXMLWait(); var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Ако информацията за обаждащия се съществува в CRM и няма нов или инцидент в движение, приложението отваря нов инцидент


Променете кода в ServiceNow
Добавете нови колони към Дейност на WebexCC IMP
маса
Отвори Дейност на WebexCC IMPмаса





Кликнете на Актуализация.


Добавете нови колони към Телефонен дневник
маса
Отвори Телефонен дневник
маса





Карта на трансформацията на активността в WebexCC
Отворя Transform map
от филтърния навигатор


Кликнете върху WebexCC Activity TransformMap




Щракнете върху Актуализиране.

Промени в сценария включват
-
Отиди в навигатора на филтъра и потърси "script includes".
Изберете Script Includes под System UI.

-
Филтрирай името с
propUtils
.
-
Промени метода
setWebexcctable
.
Нов примерен код за инцидент:
setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; изтрий actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('състояние','Затворено завършено'); inte.work_notes='Актуализиране на състоянието до затворено.'; inte.update(); } } if( incsysid!= null && incsysid != неопределено){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=интенум; sys_id=webexcc.Insert(); } return sys_id; },
Промени в методите на UI страниците
-
Отиди в навигатора на филтъра и потърси
Страници с потребителски интерфейс
Изберете опцията UI страници под System UI.

-
Филтрирай UI страниците по име и потърси agentdesktop
.
-
Промени
сегаДейности и screenpop
функция в сценария.
Текуща функция:
function nowActivities(actInfo, ani) { var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }Примерен код за инцидента:
function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Резултати след актуализацията

Следните персонализации важат за версии 1.0.5 и по-ниски. За персонализациите за по-новите версии 1.0.7 и по-горе, следвайте горните стъпки.
Персонализация #1 - Добавете персонализирани бизнес правила за случаи на използване на потока от обаждания
Създайте нов запис на инцидента за всяко обажданеЗа всяко ново обаждане към WebexCC CRM конектора в ServiceNow създайте нов запис за инцидент.
Търсене на бизнес правила в навигатора Filter

Натиснете Нов.

Примерен код за справка:
function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null && name != '') { userID = UserGetSysId("name", име); } ако (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", телефон); } ако (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; } отговор = url; Return URL; } функция UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }Примерна конфигурация на бизнес правилото

Активирай клиента за извикване

Обработката на инцидент при интеграция на компютърна телефония (CTI) е маркирана като Вярна.

Актуализирайте screenpop URL-а с персонализираното CTI правило " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

sysparm_cti_rule = name, където 'name' е името на функция , трябва да се извиква за обработкаCTI вместо да се използва стандартният скрипт.
Дефинирайте функцията в sys_script запис, маркиран като client callable .
Ако трябва да Insert, актуализирате или изтриете някой GlideRecords във функцията, извикайте отделна функция, която не може да се извиква от клиент, за да извършите актуализациите.
За да направите скрипт клиент-извикваем, трябва да отметнете отметката за отметка за клиент-извикване във форма, която се показва, когато се показва записът sys_script.
Отметката за извикване от клиента не се появява по подразбиране. За да ги видите, трябва да промените полетата, които се показват във формуляра, с помощта на иконата на зъбното колело и механизма за кофа с каша.
Персонализация #2 - Добавете CAD променлива в таблицата с активности Webex Contact Center
Общ прегледТази статия описва процеса за добавяне на допълнителна колона към таблицата ServiceNow – webexcc_activity, която се създава при инсталирането на Webex CC за ServiceNow CRM Connector.
По подразбиране таблицата съдържа готови системни полета и стойности.
Можете потенциално да създадете повече бизнес специфични променливи (CAD променливи) в WebexCC Flow дизайнера и да добавите тези CAD променливи в дневника на активността на ServiceNowPOST и да запазите това в таблицата за активност на обажданията POST.
-
Това е само референтна документация – и показва как да се направи това за примерна CAD променлива, наречена Customer Name, която съхранява името на клиента в IVR и го публикува в ServiceNow.
-
Разработчиците на partner+customer Service Now ще конфигурират и управляват тази конфигурация, тъй като тя е персонализация на съществуващия конектор.
-
Cisco ще предостави само техники за персонализиране и разширяване на конектора.
-
Към момента на тази статия екипът Cisco е валидирал поддръжката за добавяне на CAD променлива към Activity Log и Activity Table, използвайки техниката, описана по-долу.
Редактирай таблицата в разработчичката версия на ServiceNow.

Отидете в .



Изберете таблица за активност в WebexCC.

Например, CustomerName.


Изберете оформление на списъка за активност в WebexCC.

Тази стъпка не е задължителна, ако използвате Update Set XML - Необходим е само един ред, за да се добави "webexcc.u_customername=actInfo.CustomerName" към propUtils.



Примерен сценарий
Вижте реда с:webexcc.u_customername=actInfo.CustomerName; с подкрепящ коментар.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_ webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =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; // Този ред е добавен - за да се улови в Activity Log webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); Дейности в регистъра на инциденти; var actInfoString =this.getParameter('actInfo'); var suser = нов GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } връщане sys_id; }, type: 'propUtils2' });
Редактирай страницата на потребителския интерфейс с ново име на скрипт
Създай CAD променлива в Flow designer
Добавете CAD променливата към Desktop Layout
Демо скрийншотове
Вижте новодобавената CAD променлива в таблицата WebexCC Activity.












































