Когато интегрирате Webex контактен център с конзолата ServiceNow CRM, можете да стартирате работния плот Webex контактния център от ServiceNow.
Преди да интегрирате Webex Контактен център с конзолата ServiceNow CRM, уверете се, че имате следното:
-
Достъп до 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 контактен център.
-
-
Акаунт в портала за разработчици на 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 за екземпляри на разработчици.
1 |
влезте в профила си в портала за разработчици на ServiceNow и отворете конзолата за администриране. |
2 |
От областта Моят екземпляр на менюто Акаунт щракнете върху Започване на строителството. |
3 |
В екземпляра на вашия разработчик, от полето Филтър навигатор в горния ляв ъгъл на прозореца , отидете на Плъгини. |
4 |
Потърсете приставката Openframe, която има заглавието Openframe. Може да се наложи да превъртите списъка. |
5 |
Щракнете върху Инсталирай , за да инсталирате приставката Openframe. |
6 |
В диалоговия прозорец Активиране на добавка щракнете върху Активиране. |
7 |
Когато активирането на приставката приключи, щракнете върху Затвори и презареди формуляра в диалоговия прозорец Активиране на приставка.
|
8 |
За да проверите активирането на приставката, от полето Филтър навигатор в горния ляв ъгъл на прозореца отидете до OpenFrame. |
9 |
Щракнете върху Конфигурации и се уверете, че добавката OpenFrame се появява в списъка Конфигурации на OpenFrame. |
1 |
Изтеглете най-новия набор от системни актуализации XML файл, наличен в github repo на това място :https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. Име на файл: webexcc-servicenow-update-setV(X).xml |
2 |
Във вашия екземпляр на ServiceNow, от полето Филтър навигатор в горния ляв ъгъл на прозореца, отидете . |
3 |
Щракнете върху Импортиране на набор актуализация от XML връзка. |
4 |
Щракнете върху Избор на файл, изберете Набор XML системна актуализация файл и след това щракнете върху Качване. Наборът за актуализация се появява в списъка Извлечени набори за актуализиране и е в състояние Заредено .
|
5 |
От списъка Извлечени набори за актуализиране щракнете върху Име на файл за актуализиране на набор (връзка), за да отворите набора за актуализиране. |
6 |
В горния десен ъгъл на прозореца щракнете върху Визуализация на набора за актуализиране, за да проверите набора от актуализации за проблеми. |
7 |
Щракнете върху Затвори в диалоговия прозорец Визуализация на набор за актуализиране, след като визуализацията приключи. |
8 |
Щракнете върху Набор за актуализация при извършване. |
9 |
Щракнете върху Затвори в диалоговия прозорец Update Set Commit след като извършването на Update Set завърши. |
1 |
В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете sys_properties.list и натиснете enter. |
2 |
На страницата "Свойства на системата" сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следното Webex Свойства на контактния център : |
3 |
Щракнете върху agentdesktop_url , за да отворите страницата Системно свойство agentdesktop_url . |
4 |
В полето Стойност въведете URL адреса за Webex работния плот на контактния център според региона на операцията.
|
5 |
Щракнете върху Актуализиране , за да запишете промените. |
6 |
(По избор) За да промените името на таблицата "Активност", редактирайте свойствата на таблицата за уеб екскактивност, както се изисква. На страницата Свойства на системата щракнете върху webexccactivitytable. Променете полето "Стойност ", както е задължително. |
7 |
(По избор) Добавяне на потребителски групи по следните начини:
|
1 |
От полето Филтър навигатор навигирайте до .
|
2 |
Натиснете Нов.
|
3 |
Въведете следните свойства за URL адреса:
|
4 |
Вдясно от полето за URL адрес щракнете върху бутона Заключване и добавете agentdesktop.do |
5 |
(По избор) Изберете групите потребители/агенти, за да присвоите конфигурацията. |
6 |
Щракнете върху Подаване. URL адресът се показва като връзка. |
7 |
Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили JSON файла JSON за оформление на работния плот по избор на ServiceNow в портала за управление на Webex контактен център. За повече информация вижте Настройване на оформлението на работния плот ServiceNow в контактния център Webex. |
1 |
Изтеглете оформлението Desktop за ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Актуализирайте свойствата във файла "Оформление на работния плот", ако е необходимо. |
3 |
Отидете на портала за управление на контактния център Webex |
4 |
От навигационната лента на портала за управление изберете работен плот. |
5 |
Щракнете върху Ново оформление и въведете подробните данни за оформлението на работния плот. |
6 |
Качете JSON файла ServiceNow Desktop Layout. |
7 |
Щракнете върху Запиши, за да запишете конфигурацията. Вече можете да стартирате Webex работния плот на контактния център в конзолата ServiceNow. |
8 |
От полето Филтър навигатор навигирайте до . Кликнете върху иконата на левия долен телефон. |
Следващите раздели описват стъпките за инсталиране на конектора ServiceNow за лицензирани корпоративни екземпляри.
1 |
влезте в профила си в портала за разработчици на ServiceNow и отворете конзолата за администриране. |
2 |
От областта Моят екземпляр на менюто Акаунт щракнете върху Започване на строителството. |
3 |
В екземпляра на вашия разработчик, от полето Филтър навигатор в горния ляв ъгъл на прозореца , отидете на Плъгини. |
4 |
Потърсете приставката Openframe, която има заглавието Openframe. Може да се наложи да превъртите списъка. |
5 |
Щракнете върху Инсталирай , за да инсталирате приставката Openframe. |
6 |
В диалоговия прозорец Активиране на добавка щракнете върху Активиране. |
7 |
Когато активирането на приставката приключи, щракнете върху Затвори и презареди формуляра в диалоговия прозорец Активиране на приставка.
|
8 |
За да проверите активирането на приставката, от полето Филтър навигатор в горния ляв ъгъл на прозореца отидете до OpenFrame. |
9 |
Щракнете върху Конфигурации и се уверете, че добавката OpenFrame се появява в списъка Конфигурации на OpenFrame. |
Екземплярите, които имат корпоративни лицензи, могат да инсталират приложението Webex Contact Center директно от магазина на ServiceNow.
Изтеглете и инсталирайте пакета Webex Контактен център от магазина на ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947.
|
1 |
В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете sys_properties.list. |
2 |
На страницата "Свойства на системата" сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следното Webex Свойства на контактния център : |
3 |
Щракнете върху agentdesktop_url , за да отворите страницата Системно свойство agentdesktop_url . |
4 |
В полето Стойност въведете URL адреса за Webex работния плот на контактния център според региона на операцията.
|
5 |
Щракнете върху Актуализиране , за да запишете промените. |
6 |
(По избор) За да промените името на таблицата "Активност", редактирайте свойствата на таблицата x_caci_webexcc.webexccактивност, както е необходимо.
|
7 |
(По избор) Добавяне на потребителски групи по следните начини:
|
1 |
От полето Филтър навигатор навигирайте до .
|
2 |
Натиснете Нов.
|
3 |
Въведете следните свойства за URL адреса:
|
4 |
Вдясно от полето за URL адрес щракнете върху бутона Заключване и добавете x_caci_webexcc_agentdesktop.do |
5 |
(По избор) Изберете групите потребители/агенти, за да присвоите конфигурацията. |
6 |
Щракнете върху Подаване. URL адресът се показва като връзка. |
7 |
От полето Филтър навигатор навигирайте до . Щракнете върху иконата на долния ляв телефон. |
8 |
(По избор) В списъка Потребителска група преместете потребителските групи, които имат достъп до работния плот на центъра за контакти Webex от Наличен в Избран. |
9 |
Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили JSON файла JSON за оформление на работния плот по избор на ServiceNow в портала за управление на Webex контактен център. За повече информация вижте Настройване на оформлението на работния плот ServiceNow в контактния център Webex. |
1 |
Изтеглете оформлението Desktop за ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Актуализирайте свойствата във файла "Оформление на работния плот", ако е необходимо. |
3 |
Отидете на портала за управление на контактния център Webex |
4 |
От навигационната лента на портала за управление изберете работен плот. |
5 |
Щракнете върху Ново оформление и въведете подробните данни за оформлението на работния плот. |
6 |
Качете JSON файла ServiceNow Desktop Layout. |
7 |
Щракнете върху Запиши, за да запишете конфигурацията. Вече можете да стартирате Webex работния плот на контактния център в конзолата ServiceNow. |
8 |
От полето Филтър навигатор навигирайте до . Кликнете върху иконата на левия долен телефон. |
1 |
От полето Навигатор на филтри навигирайте до Инциденти > Открит инцидент. |
2 |
Щракнете с десния бутон върху полето за повикване и щракнете върху Конфигуриране на речник. |
3 |
Добавяне на атрибути Сега можете да започнете да използвате работния плот на Webex Contact Center в конзолата ServiceNow. |
4 |
От полето Филтър навигатор навигирайте до . Щракнете върху иконата на долния ляв телефон. |
Преди да осъществите повиквания за външно набиране, уверете се, че сте направили следното:
-
Създайте входната точка за външно избиране и задайте стратегия за изходна входна точка.
-
Активирайте outdial ANI за профила на агента.
-
Задайте ANI за изходящо набиране на съпоставяне от номер до входна точка.
За повече информация вижте главата Осигуряване на Cisco Webex Contact Center Ръководство за настройка и администриране.
От полето Филтър навигатор навигирайте до .
Щракнете върху иконата на долния ляв телефон.
За информация как да използвате работния плот вижте ръководството за потребителя Cisco Webex Contact Center Agent Desktop
Общ преглед
Тази статия обхваща няколко начина за персонализиране на вашите бизнес правила за CRM конектора ServiceNow. Той описва подробно как можете да персонализирате случаите на използване въз основа на бизнес правила, които са специфични за ServiceNow.
Клиентът трябва самостоятелно да управлява тези случаи на използване в ServiceNow. Конфигурацията е специфична за ServiceNow, а не Webex софтуер или опит в контактния център.
Това е справочна документация за подпомагане на изменението на правилата за стопанска дейност. Разработчиците на ServiceNow ще създават и управляват бизнес правилата и ще предоставят поддръжка. Cisco предоставя само примерна документация. |
Промяна на кода в ServiceNow
-
Отидете на филтър навигатор и търсене за "скрипт включва".
Изберете скрипта Включва под Системен потребителски интерфейс.
-
Филтрирайте името и потърсете "propUtils".
-
Променете метода "UserGetSysId" в скрипта .
Курент:
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= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },
Нов примерен код за инцидента:
UserGetSysId: функция () { 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 = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; връщане JSON.stringify(sysidlist); },
-
Отидете на филтър навигатор и търсене на UI страница.
Изберете страници на потребителския интерфейс под Системен потребителски интерфейс.
-
Филтрирайте името и потърсете "agentdesktop".
-
Променете функцията "screenpop" в клиентския скрипт.
Текуща функция:
екран поп функция 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 });
Примерен код за инцидента:
екран поп функция 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. Очаква се, че разработчиците на Partner + customer ServiceNow ще конфигурират и управляват тази конфигурация, тъй като тя е персонализиране на съществуващия конектор. Cisco предоставя само техниките за персонализиране и разширяване на конектора. Към тази статия екипът на Cisco е валидирал поддръжката за добавяне на CAD променлива към дневника на дейностите и таблицата на дейностите, използвайки техниката, описана по-долу: |
Добавяне на колона към дейността на WebexCC IMP
-
Редактирайте таблицата във версията за разработчици на ServiceNow.
-
Отидете на навигатора на филтри и потърсете студио.
Избери "Webex Контактен център"
или
-
Изберете таблицата "WebexCC IMP Activity"
-
Добавяне на нова колона, например "Име на клиент"
Добавяне на колона към регистъра на телефонните разговори
-
Редактирайте таблицата с регистрационния файл на телефона.
-
Добавете нова колона, например "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: функция () { 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; иначе // връщане нула; var grInt = нов GlideRecord('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); връщане сисид; }, 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; Този ред е добавен - за да го заснемете в дневника на дейностите webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Дейности по регистриране на инциденти; var actInfoString =this.getParameter('actInfo'); 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.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; }, тип: 'propUtils' });
Създаване на CAD променлива в дизайнера на потока
Добавяне на CAD променливата към оформлението на работния плот
Пример
"CadName1: SnowField1, CadName2: SnowField2" CadName1 е CustomerName SnowField1 се използва и като CustomerName, което е част от проба scirpt показано по-горе "actInfo.CustomerName"
.
Екранни снимки на демонстрации
Преглед на новодобавената CAD променлива в таблицата WebexCC Activity.
Създаване на CAD променлива за Flow Designer
Услуга сега актуализация на скрипта
-
Отидете на навигатора на филтъра и потърсете скрипт включва
Изберете опцията Скриптът включва под Системен потребителски интерфейс.
-
Филтрирайте името с propUtils.
-
Променете метода "UserGetSysId" в полето Script .
Текущ скрипт:
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= 'телефон'; 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.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='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; връщане JSON.stringify(sysidlist);//sysid; },
-
Отидете на навигатора на филтри и потърсете страници напотребителския интерфейс.
Изберете опцията Страници на потребителския интерфейс под Системен потребителски интерфейс .
-
Филтрирайте страниците на потребителския интерфейс с име и потърсете agentdesktop .
-
Променете функцията "screenpop" в полето за скрипт.
Текуща функция:
екран поп функция 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 }); }
Примерен код за инцидента:
екран поп функция 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 ("Въздействие", Въздействие); 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"
Кликнете върху Update.
Добавяне на нови колони към таблицата "Регистър на телефонните разговори"
Карта за трансформация на активността на WebexCC
Щракнете върху Актуализиране.
Промените в скрипта включват
-
Отидете на филтър навигатор и търсене за "скрипт включва".
Изберете скрипта Включва под Системен потребителски интерфейс.
-
Филтрирайте името с "propUtils".
-
Промяна на метода "setWebexcctable".
Нов примерен код за Incident:
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('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=иннум; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } връщане sys_id; },
Промени в метода на страниците на потребителския интерфейс
-
Отидете на филтъра навигатор и потърсете "UI страници"
Изберете опцията Страници на потребителския интерфейс под Системен потребителски интерфейс .
-
Филтрирайте страниците на потребителския интерфейс с име и потърсете agentdesktop .
-
Променете функцията "nowActivities and screenpop" в скрипта.
Текуща функция:
функция 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); }
Примерен код за инцидента:
функция 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); } функция 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, създайте нов запис на инциденти.
-
Търсене на бизнес правила в навигатора на филтри
-
Натиснете Нов.
Примерен код за справка:
функция 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", име); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("телефон", телефон); } 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; } отговор = url; връщане на URL адрес; } функция UserGetSysId(поле, стойност) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }
Примерна конфигурация на бизнес правилото
-
Разрешаване на клиент с възможност за повикване
Компютърна телефонна интеграция (CTI) Обработката за инцидент е маркирана като истина.
-
Актуализирайте URL адреса на screenpop с персонализирания CTI Rule "cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =name , където 'name' е името на функция , трябва да се извика за CTI Обработка , а не използване на скрипта по подразбиране.
Дефиниране на функцията в sys_script запис, маркиран като клиент, който може да бъде изискуем.
Ако трябва да вмъкнете, актуализирате или изтриете GlideRecords във функцията, извикайте отделна функция, която не може да бъде извикана от клиента, за да извършите актуализациите.
За да направите скрипт клиент-callable, трябва да поставите отметка в квадратчето за отметка на клиента, което може да бъде извикано, във формуляра, който се показва, когато се показва sys_script запис. Квадратчето за отметка с възможност за повикване от клиента не се показва по подразбиране. За да прегледате, трябва да модифицирате полетата, които се показват във формуляра, като използвате иконата на зъбно колело и механизма на кофата с киша. |
Персонализиране # 2 - Добавяне на CAD променлива в таблицата Webex активност на контактния център
Тази статия описва подробно процеса на добавяне на допълнителна колона към таблицата ServiceNow - webexcc_activity, който се създава при инсталирането на Webex CC за ServiceNow CRM конектор.
По подразбиране таблицата съдържа изходящи системни полета и стойности.
Можете потенциално да създадете повече специфични за бизнеса променливи (CAD променливи) в дизайнера на WebexCC Flow и да добавите тези CAD променливи в регистъра на дейностите след повикване на ServiceNowи да го запазите в данните от таблицата за активност след повикване.
|
-
Редактирайте таблицата във версията за разработчици на ServiceNow.
-
Отидете в контактния център
. -
Изберете Таблица за активност на WebexCC.
-
Например, Име на клиент.
-
Изберете Оформление на списък за дейността на WebexCC.
Тази стъпка не се изисква, ако използвате набора за актуализиране 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; // Този ред е добавен - за да го заснемете в webexcc на Activity Log. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Дейности по регистриране на инциденти; var actInfoString =this.getParameter('actInfo'); 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.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; }, тип: 'propUtils2' });



Преглед на новодобавената CAD променлива в таблицата WebexCC Activity.

