Интегрирайте контактния център на Webex с ServiceNow (версия 1 - наследство)
Предпоставки
Минималният поддържан размер за софтуерния интерфейс е 500px. Всяка стойност по-ниска от 500px може да доведе до проблеми с дисплея или функционалността.
Преди да интегрирате Webex Contact Center с конзолата ServiceNow CRM, уверете се, че имате следното:
-
Достъп до Контактния център на Webex.
-
Администраторски достъп до Контролния център на адрес https://admin.webex.com и Контактния център на Webex. Management Portal URL адресите за тях Management Portal са специфични за вашия регион.
-
Агент с достъп до работния плот. URL адресът на работния плот е специфичен за вашия регион.
-
Достъп на агента до следния домейн, добавен в списъка с разрешени правила за сигурност на съдържанието:
-
*.услуга-сега.com
За повече информация как да дефинирате разрешения списък вижте статията Настрой ки за сигурност за контактния център на Webex.
-
-
Акаунт в портала за разработчици на ServiceNow. За да създадете акаунт, отидете на портала за разработчици на ServiceNow на адрес https://developer.servicenow.com/dev.do и щракнете върху Р егистрация и Стартиране на изгра ждането.
-
Достъп до следните файлове на адрес https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Набор за актуализации на ServiceNow (XML)
-
Оформление на работния плот на центъра за контакти на ServiceNow (JSON)
-
- Изданията на ServiceNow, които Webex Contact Center поддържа, са Ванкувър, Юта, Токя, Вашингтон и Ксанаду. За повече информация вижте Интеграция на контактния център на Webex с ServiceN ow.
Следвайте един от двата метода по-долу:
- За екземпляри за разработчици препоръчваме да следвате стъпките в ръководството за екземпляри за разработчици.
- Ако притежавате екземпляр с лиценз за предприятие, следвайте указанията за инстанции, лицензирани от предприятието.
Не препоръчваме смесването на лицензираното от предприятието приложение с екземпляри на пясъчника за разработчици.
Цифровите канали като чат и имейл не се поддържат с CRM конектори. Това важи за всички CRM интеграции, използващи тези конектори. Моля, планирайте съответно работните потоци за внедряване и ангажиране на клиентите.
Следващите раздели описват стъпките за инсталиране на конектора ServiceNow за екземпляри на програмисти.
| 1 |
Влезте в акаунта си в портала за разработчици на ServiceNow и отворете администра тивната конзола. |
| 2 |
От областта Моят екземпляр в менюто Ака унт щракнете върху Стартиране на изграждането.
|
| 3 |
В екземпляра на разработчика от полето Навигатор за филтър в горния ляв ъгъл на прозореца отидете на Plugins.
|
| 4 |
Потърсете приставката Openframe, която има заглавието Open frame. Може да се наложи да превъртите списъка.
|
| 5 |
Щракнете върху Инст алиране, за да инсталирате приставката Openframe. |
| 6 |
В диалоговия прозорец Активиране на приставката щракнете върху А ктиви ране.
|
| 7 |
Когато активирането на приставката приключи, щракнете върху Затваряне и презареждане на формул яра в диалоговия прозорец А ктивиране на приставката.
|
| 8 |
За да проверите активирането на приставката, от полето за навигатор на фил търа в горния ляв ъгъл на прозореца отидете до OpenFrame. |
| 9 |
Щракнете върху Конфигурации и се уверете, че приставката OpenFrame се показва в списъка с конфигурации на OpenFrame.
|
| 1 |
Име на файла: WebExcc-ServiceNow-Актуализация-SetV (X) .xml
|
| 2 |
В екземпляра на ServiceNow от полето На вигатор за филтър в горния ляв ъгъл на прозореца отидете на Комплекти за актуализации на ения.
|
| 3 |
Щракнете върху връзката Импортиране на набор от актуализации от XML.
|
| 4 |
Щракнете върху Изберете файл, изберете XML файла за задаване на системна актуализация и след това щракнете върху Ка чване.
Наборът за актуализации се появява в списъ ка Извлечени комплекти за актуализа ции и е в състояние Зар едено.
|
| 5 |
От списъка Из влечени набори от актуализа ции щракнете върху Име на файла за актуализиране (връзка), за да отворите набора за актуализации.
|
| 6 |
В горния десен ъгъл на прозореца щракнете върху Предварителен преглед на комплекта актуализации, за да проверите набора за актуализации за проблеми.
|
| 7 |
Щракнете върху Зат вори в диалоговия прозорец Update Set Preview, след като визуализацията приключи.
|
| 8 |
Щракнете върху Завети набор от актуализа ции.
|
| 9 |
Щракнете върху Зат вори в диалоговия прозорец „Ак туализи ране на набор от актуализации“, след като приключи извършването на задачата
|
| 1 |
В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете
|
| 2 |
На страницата С войства на системата сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следните свойства на Webex Contact Center:
|
| 3 |
Щрак agentdesktop_urlнете, за да отвор ите agentdesktop_url страницата Систем ни свойства. |
| 4 |
В полето Стой ност въведете URL адреса за работния плот на Webex Contact Center според региона на работа.
|
| 5 |
Щракнете върху Актуализи ране, за да запазите промените. |
| 6 |
(Незадължително) За да промените името на таблицата Дейност, редактирайте свойствата на webexccactivity table според изискванията. На страницата Свой ства на системата кликнете върху webex ccactivitytable. Променете полето Стой ност, както е необходимо.
|
| 7 |
(Незадължително) Добавяне на потребителски групи по следните начини:
|
| 1 |
От полето На вигатор на фил търа отидете на ции.
|
| 2 |
Щракнете върху Н ово.
|
| 3 |
Въведете следните свойства за URL адреса:
|
| 4 |
Вдясно от полето URL щ ракнете върху бутона З ак лючване и добавете
|
| 5 |
(Незадължително) Изберете групата потребители/агенти, за да зададете конфигурацията.
|
| 6 |
Щракнете върху Изпра щане. URL адресът се показва като връзка.
|
| 7 |
Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили персонализирания JSON файл за оформление на работния плот на ServiceNow в центъра за контакти на Webex. Management Portal За повече информация вижте Настройване на оформлението на работния плот на ServiceNow в контактния център на Webex. |
| 1 |
|
| 2 |
Актуализирайте свойствата във файла Desktop Layout, ако е необходимо. |
| 3 |
Отидете в Контактния център на Webex. Management Portal |
| 4 |
От лентата за Management Portal навигация изберете Осигур от.
|
| 5 |
Щракнете върху Ново оформление и въведете подробностите за оформлението на работния плот. |
| 6 |
Качете JSON файла ServiceNow Desktop Layout. |
| 7 |
Щракнете върху За пазване, за да запазите конфигурацията. Вече можете да стартирате работния плот на Webex Contact Center в конзолата ServiceNow. |
| 8 |
От полето На вигатор на фил търа отидете в Работното ването.
|
Следващите раздели описват стъпките за инсталиране на конектора ServiceNow за лицензирани корпоративни екземпляри.
| 1 |
Влезте в акаунта си в портала за разработчици на ServiceNow и отворете администра тивната конзола. |
| 2 |
От областта Моят екземпляр в менюто Ака унт щракнете върху Стартиране на изграждането.
|
| 3 |
В екземпляра на разработчика от полето Навигатор за филтър в горния ляв ъгъл на прозореца отидете на Plugins.
|
| 4 |
Потърсете приставката Openframe, която има заглавието Open frame. Може да се наложи да превъртите списъка.
|
| 5 |
Щракнете върху Инст алиране, за да инсталирате приставката Openframe. |
| 6 |
В диалоговия прозорец Активиране на приставката щракнете върху А ктиви ране.
|
| 7 |
Когато активирането на приставката приключи, щракнете върху Затваряне и презареждане на формул яра в диалоговия прозорец А ктивиране на приставката.
|
| 8 |
За да проверите активирането на приставката, от полето за навигатор на фил търа в горния ляв ъгъл на прозореца отидете до OpenFrame. |
| 9 |
Щракнете върху Конфигурации и се уверете, че приставката OpenFrame се показва в списъка с конфигурации на OpenFrame.
|
Екземпляри, които имат корпоративни лицензи, могат да инсталират приложението Webex Contact Center директно от магазина ServiceNow.
|
|
| 1 |
В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете
|
| 2 |
На страницата С войства на системата сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следните свойства на Webex Contact Center:
|
| 3 |
Щрак agentdesktop_urlнете, за да отвор ите agentdesktop_url страницата Систем ни свойства. |
| 4 |
В полето Стой ност въведете URL адреса за работния плот на Webex Contact Center според региона на работа.
|
| 5 |
Щракнете върху Актуализи ране, за да запазите промените. |
| 6 |
(Незадължително) За да промените името на таблицата Дейност, редактирайте свойствата x_caci_webexcc.webexccactiv itytable според изискванията.
|
| 7 |
(Незадължително) Добавяне на потребителски групи по следните начини:
|
| 1 |
От полето На вигатор на фил търа отидете на ции.
|
| 2 |
Щракнете върху Н ово.
|
| 3 |
Въведете следните свойства за URL адреса:
|
| 4 |
Вдясно от полето URL щ ракнете върху бутона З ак лючване и добавете
|
| 5 |
(Незадължително) Изберете групата потребители/агенти, за да зададете конфигурацията.
|
| 6 |
Щракнете върху Изпра щане. URL адресът се показва като връзка.
|
| 7 |
От полето На вигатор на фил търа отидете в Работното ването.
|
| 8 |
(По избор) В списъка Потребителска група преместете потреб ителските групи, които имат достъп до работния плот на Webex Contact Center, от Налични към Из брани. |
| 9 |
Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили персонализирания JSON файл за оформление на работния плот на ServiceNow в центъра за контакти на Webex. Management Portal За повече информация вижте Настройване на оформлението на работния плот на ServiceNow в контактния център на Webex. |
| 1 |
|
| 2 |
Актуализирайте свойствата във файла Desktop Layout, ако е необходимо. |
| 3 |
Отидете в Контактния център на Webex. Management Portal |
| 4 |
От лентата за Management Portal навигация изберете Осигур от.
|
| 5 |
Щракнете върху Ново оформление и въведете подробностите за оформлението на работния плот. |
| 6 |
Качете JSON файла ServiceNow Desktop Layout. |
| 7 |
Щракнете върху За пазване, за да запазите конфигурацията. Вече можете да стартирате работния плот на Webex Contact Center в конзолата ServiceNow. |
| 8 |
От полето На вигатор на фил търа отидете в Работното ването.
|
| 1 |
От полето На вигатор на фил търа отидете на Инциден ти > Отваряне на инцидента. |
| 2 |
Щракнете с десния бутон върху полето за повикващ и щракнете върху Кон фигуриране на речника
|
| 3 |
Добавете атрибути, разделени със запетая
Вече можете да започнете да използвате работния плот на Webex Contact Center в конзолата ServiceNow. |
| 4 |
От полето На вигатор на фил търа отидете в Работното ването.
|
- Поддържаме влизане Agent Desktop само с WebRTC за конектори Salesforce (SFDC) и Microsoft Dynamics (MS Dynamics).
- Понастоящем тази функция е приложима само за агенти.
Agent Desktopв конзолата ServiceNow
Преди да извършвате външни обаждания, уверете се, че правите следното:
-
Създайте външната входна точка и задайте стратегия за външна входна точка.
-
Активирайте външния ANI за профила на агента.
-
Задайте външната ANI на картографиране от число до точка на влизане.
За повече информация вижте раздела „Осигур яване“ в Ръ ководството за Cisco Webex Contact Centerнастройка и администриране.
От полето На вигатор на фил търа отидете в Работното ването.
За информация как да използвате Desktop вижте раздела Аген т в помощта на Webex Contact Center.
Общ преглед
Тази статия обхваща няколко начина да персонализирате вашите бизнес правила за конектора ServiceNow CRM. Той подробно описва как можете да персонализирате случаите на използване въз основа на бизнес правила, които са специфични за ServiceNow.
Клиентът трябва сам да управлява тези случаи на употреба в ServiceNow. Конфигурацията е специфична за ServiceNow, а не за софтуера или експертиза на Webex Contact Center.
Това е референтна документация за подпомагане на изменението на бизнес правилата. Разработчиците на ServiceNow ще създават и управляват бизнес правилата и ще предоставят поддръжка.
Cisco предоставя само примерна документация.
Следващите раздели предоставят подробности за това как да настроите, активирате и управлявате джаджа „Действия“ за екземпляри за разработчици и корпоративни екземпляри.
Изпълняване на приспособлението за актуализации за действия
За лицензираните корпоративни екземпляри инсталирайте най-новото приложение Webex Contact Center от магазина на Service Now.
За да настроите джаджа Действия за екземпляри на разработчиците, изтеглете най-новия XML файл за настройка на системната актуализация, наличен в репо на github на това място: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Името на файла е webexcc-servicenow-update-setv7-1-ActionsWidget.xml. За да изпълните набора за актуализации за приспособлението Действия, вижте стъпки от 2 до 9 в Завършване на набора за актуализации.
Разрешаване на джаджа за действия
Използвайте свойството isWidgetDisplayEnabled, за да активирате приспо соблението Действия. Не трябва да променяте стойността на това свойство в секцията без глава на персонализираното оформление на работния плот. Свойството винаги е зададено на false в раздела без глава на персонализираното оформление на работния плот. Трябва да актуализирате стойността на свойството само в секцията на панела на персонализираното оформление на работния плот.
След като активирате джаджа Действия в персонализираното оформление на работния плот, можете да изпълните следните действия:
- Управление на записи за дейност—щракнете върху Преглед/редактиране на записа на активност, за да видите списъка със записи за активност, свързани с повикващия.
- Свързване на CRM обекти — щрак нете върху Асоцииране към записи на дейности, за да добавите CRM обекти като тип повикване (входящо или изходящо), обект на повикване, бележки за повиквания и т.н.
- Управление на инциденти — щракнете върху Създаване на инцидент. Създава се нов инцидент с предварително попълнени подробности за обаждащия се. Можете да направите необходимите актуализации на инцидента. Можете да изберете да промените типа запис от инцидент до случай, HR модул и т.н. въз основа на вашите изисквания. За да промените типа запис, променете стойността на свойството TypeOfRecord в конфигурацията на джаджа Действия. Например:
{ "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= 'phone'; 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='phone'; inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
Отидете на филтърния навигатор и потърсете
UI page.Изберете потребител ски страници под Сист емния потребителски интерфей с.
-
Филтрирайте името и потърсете
agentdesktop
. -
Променете функцията
screenpop
в клиентския скрипт.Текуща функция:
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });Примерен код за инцидента:
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // For Incident-related change 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 за ServiceNow CRM конектора.
По подразбиране таблицата съдържа определени системни полета и стойности извън кутията.
Можете да създадете повече специфични за бизнеса променливи (CAD променливи) вътре в дизайнера на WebExCC Flow и да добавите CAD променливите в дневника на дейността след повикване на ServiceNow, както и да запазите това към данните на таблицата за активност след повикване.
Това е само референтна документация - и показва как да направите това за примерна CAD променлива, наречена Customer Name, която съхранява името на клиента в IVR и публикува това в ServiceNow.
Очаква се разработчиците на партньор+Customer ServiceNow да конфигурират и управляват тази конфигурация, тъй като тя е персонализиране към съществуващия конектор.
Cisco предоставя само техниките за персонализиране и разширяване на конектора.
От тази статия екипът на Cisco потвърди поддръжката за добавяне на CAD променлива към дневника на дейностите и таблицата с дейности, използвайки техниката, описана по-долу:
Добавяне на колона към WebExCC IMP активност
-
Редактирайте таблицата във версията за разработчици на ServiceNow.

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

Изберете Контак
тен център на Webex

или



-
Изберете таблицата
за активност на WebExCC IMP

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


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


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

Карта за трансформиране на дейността на WebExCC

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


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

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


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

Отидете на Включване на скрипта
Добавете само един ред 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 = new GlideRecord('interaction');
grInt.initialize();
grInt.assigned_to= gs.getUserID();
grInt.type= 'phone';
grInt.opened_for= opened_for;
var sysid=grInt.insert();
return sysid;
},
setWebexcctable : function () {
var sys_id=0;
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;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
//Activities on Incident record;
var actInfoString =this.getParameter('actInfo');
var suser = new GlideRecordSecure("sys_user");
suser.addQuery("phone", this.getParameter('ani'));
suser.query();
if(suser.next()) {
var inc = new GlideRecordSecure('incident');
inc.addQuery('caller_id', 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();
}
}
}
return sys_id;
},
type: 'propUtils'
});
Създайте CAD променлива в дизайнера на Flow

Добавете променливата CAD към оформлението на работния плот
Пример
"CadName1:SnowField1,CadName2:SnowField2"
CadName1 is CustomerName
SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Демо екранни снимки
Прегледайте новодобавената CAD променлива в таблицата с дейности на WebExCC.



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

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

-
Филтрирайте името с
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= 'phone'; 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='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },
-
Отидете на навигатора на филтъра и потърсете
UI pages.Изберете опцията Страници на потребителския интерфей с под Системен потребителски интерфей с.

-
Филтрирайте страниците на потреб ителския интерфейс с име и търсете
agentdesktop.
-
Променете функцията
screenpop
в полето за скрипт.
Текуща функция:
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }Примерен код за инцидента:
// screen pop function screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.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('field', 'phone'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: '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 Activity
Отворете табли цата за дейности на WebExCC IMP





Кликнете върху Ак туализа ция.


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





Карта за трансформиране на дейността на WebExCC
Отворете трансформационната карта
от навигатора на филтъра


Кликнете върху TransformMap на дейността на WebExCC




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

Промени в скрипта включва
-
Отидете на навигатора за филтриране и потърсете „скриптът включва“.
Изберете скрипта Включва под Сист емния потребителски интерфей с.

-
Филтрирайте името с
Proputils
.
-
Променете метода
SetWebExcctable
.
Нов примерен код за инцидент:
setWebexcctable : function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; delete 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('state','Closed Complete'); 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 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=intenum; sys_id=webexcc.insert(); } return sys_id; },
Промени в метода на потребителските страници
-
Отидете на навигатора за филтриране и потърсете
страници с потребителски
Изберете опцията Страници на потребителския интерфей с под Системен потребителски интерфей с.

-
Филтрирайте страниците на потребителския интерфейс с име и търсете
agentdesktop.
-
Променете функцията
NowActivities и 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('field', 'phone'); gaout.addParam('value', 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 създайте нов запис за инциденти.
Търсене на бизнес правила в навигатора на филтъра

Щракнете върху Ново.

Примерен код за справка:
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", name); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", 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; return url; } function 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) при инциден ти е маркирана като вяр на.


И sysparm_cti_ruleмето =, където „име“ е името на функция, трябва да се извиква за CTI обработка, вместо да се използва скрипта по подразбиране.
Определете функцията в запис, отбелязан sys_scriptкато клиент, който може да се извика.
Ако трябва да вмъкнете, актуализирате или изтриете някой GlideRecord (и) във функцията, извикайте отделна функция, която не може да се извика от клиента, за да извършите актуализациите.
За да направите скрипт възможен за извикване на клиент, трябва да поставите отметка в квадратчето за извикване на клиента във формуляра, който се показва, когато записът се показва. sys_script
Квадратчето за отметка с възможност за извикване на клиента не се показва по подразбиране. За да видите, трябва да промените полетата, които се показват във формуляра, като използвате иконата на зъбното колело и механизма на кофата.
Персонализиране # 2 - Добавяне на CAD променлива в таблицата с дейности на Webex Contact Center
Общ прегледТази статия подробно описва процеса за добавяне на допълнителна колона към таблицата ServiceNow - webexcc_activity която се създава при инсталирането на Webex CC за ServiceNow CRM конектора.
По подразбиране таблицата съдържа системни полета и стойности извън кутията.
Потенциално можете да създадете повече специфични за бизнеса променливи (CAD променливи) в дизайнера на WebExCC Flow и да добавите тези CAD променливи в дневника на дейността след повикване на ServiceNow и да запазите това към данните на таблицата за активност след повикване.
-
Това е само референтна документация - и показва как да направите това за примерна CAD променлива, наречена Customer Name, която съхранява името на клиента в IVR и публикува това в ServiceNow.
-
Разработчиците на партньор+клиентска ServiceNow ще конфигурират и управляват тази конфигурация, тъй като тя е персонализиране към съществуващия конектор.
-
Cisco ще предостави само техниките за персонализиране и разширяване на конектора.
-
От тази статия екипът на Cisco потвърди поддръжката за добавяне на CAD променлива към дневника на дейностите и таблицата с дейности, използвайки техниката, описана по-долу.
Редактирайте таблицата във версията за разработчици на ServiceNow.

Отидете в .



Изберете табли ца с дейности WebExCC.

Например Име на клиента.


Изберете Оформление на списъка за дей ността на WebExCC.

Тази стъпка не е необходима, ако използвате XML за актуализиране на комплекта - Необходим е само един ред, за да бъде добавен "webexcc. u_customername=ActInfo.CustomerName "към PropuT ils.



Примерен скрипт
Вижте реда с: 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;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
// Activities on Incident record;
var actInfoString =this.getParameter('actInfo');
var suser = new GlideRecordSecure("sys_user");
suser.addQuery("phone", this.getParameter('ani'));
suser.query();
if(suser.next()) {
var inc = new GlideRecordSecure('incident');
inc.addQuery('caller_id', 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();
}
}
}
return sys_id;
},
type: 'propUtils2'
});
Редактирайте страницата на потребителския интерфейс с ново име на скрипта
Създайте CAD променлива в дизайнера на Flow
Добавете променливата CAD към оформлението на работния плот
Демо екранни снимки
Прегледайте новодобавената CAD променлива в таблицата с дейности на WebExCC.

CRM конекторът работи въз основа на версията на джаджа, посочена в оформлението на работния плот JSON. Изключително важно е да се гарантира, че версията на джаджа в оформлението на работния плот се поддържа актуализирана.
От администраторите се очаква да гарантират, че всички оформления на работния плот за този CRM конектор използват тази версия на джаджа. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.
- Последна актуализация на ServiceNow - ServiceNow_Desktop_0 .1.0_v5.0.3.json. Към март 2024 г. версията на пакета е 1.0.9
- Последна актуализация на XML - WebExcc-ServiceNow-Update-Setv7-1-ActionsWidget.xml, юни 2024 г.











































