Когато интегрирате 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
-
Сингапур: https://portal-v2.wxcc-sg1.cisco.com
-
-
Агент с достъп до работния плот. URL адресът на работния плот е специфичен за вашия регион.
-
Северна Америка: https://desktop.wxcc-us1.cisco.com
-
Великобритания: https://desktop.wxcc-eu1.cisco.com
-
Сингапур: https://desktop.wxcc-sg1.cisco.com
-
-
Достъп на агент до следния домейн, който е добавен в списъка с разрешени правила за защита на съдържанието:
-
*.service-now.com
За повече информация как да дефинирате разрешения списък вижте статията Настройки за защита за Webex Контактен център.
-
-
Акаунт в портала за разработчици на 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 Интеграция на контактен център с ServiceNow.
Следвайте един от двата метода по-долу: За екземпляри за разработчици препоръчваме да следвате стъпките под ръководството за екземпляри на разработчика. Ако притежавате екземпляр, лицензиран за предприятие, следвайте указанията за екземпляри, лицензирани за предприятия. Не препоръчваме смесването на лицензираното от предприятието приложение с екземпляри на пясъчника за разработчици. |
Следващите раздели описват стъпките за инсталиране на конектора ServiceNow за екземпляри на разработчици.
1 |
влезте в акаунта си в портала за разработчици на ServiceNow и отворете конзолата за администриране . |
2 |
От областта Моят екземпляр на менюто Акаунт щракнете върху Започни изграждането. |
3 |
В екземпляра на вашия разработчик, от полето Филтър навигатор в горния ляв ъгъл на прозореца отидете до Приставки. |
4 |
Потърсете приставката Openframe, която има заглавието Openframe. Може да се наложи да превъртите списъка. |
5 |
Щракнете върху Инсталирай, за да инсталирате приставката Openframe. |
6 |
В диалоговия прозорец Активиране на приставка щракнете върху Активирай. |
7 |
Когато активирането на приставката завърши, щракнете върху Затвори & Презареди формуляра в диалоговия прозорец Активиране на приставката . |
8 |
За да проверите активирането на приставката, от полето Филтър навигатор в горния ляв ъгъл на прозореца отидете до OpenFrame. |
9 |
Щракнете върху Конфигурации и се уверете, че приставката OpenFrame се показва в списъка с конфигурации на OpenFrame. |
1 |
Изтеглете най-новия набор от системни актуализации XML файла, наличен в репото на github на това място : 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 |
Щракнете върху Затвори в диалоговия прозорец Фиксиране на набор за актуализиране, след като приключи фиксирането на набора от актуализации. |
1 |
В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете |
2 |
На страницата Свойства на системата сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следните свойства на Webex контактния център: |
3 |
Щракнете върху agentdesktop_url , за да отворите страницата Свойство на системата agentdesktop_url . |
4 |
В полето Стойност въведете URL адреса на работния плот на Webex контактен център според региона на работа.
|
5 |
Щракнете върху Актуализиране , за да запишете промените. |
6 |
(По избор) За да промените името на таблицата "Активност", редактирайте свойствата на таблицата за webexccactivity, както се изисква. На страницата Свойства на системата щракнете върху webexccactivitytable. Променете полето "Стойност " според изискванията. |
7 |
(По избор) Добавяне на потребителски групи по следните начини:
|
1 |
От полето Филтър навигатор навигирайте до . |
2 |
Натиснете Нов. |
3 |
Въведете следните свойства за URL адреса:
|
4 |
Вдясно от полето URL щракнете върху бутона Lock и добавете |
5 |
(По избор) Изберете групите потребители / агенти, за да зададете конфигурацията. |
6 |
Щракнете върху Подаване. URL адресът се показва като връзка. |
7 |
Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили файла JSON на персонализираното оформление на работния плот на ServiceNow в портала за управление на Webex контактен център. За повече информация вижте Настройване на оформлението на работния плот на ServiceNow Webex контактния център. |
1 |
Изтеглете оформлението на работния плот за 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 Store.
Изтеглете и инсталирайте пакета Webex Контактен център от магазина на ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете |
2 |
На страницата Свойства на системата сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следните свойства на Webex контактния център: |
3 |
Щракнете върху agentdesktop_url , за да отворите страницата Свойство на системата agentdesktop_url . |
4 |
В полето Стойност въведете URL адреса на работния плот на Webex контактен център според региона на работа.
|
5 |
Щракнете върху Актуализиране , за да запишете промените. |
6 |
(По избор) За да промените името на таблицата "Активност", редактирайте свойствата на таблицата x_caci_webexcc.webexccactivity, както се изисква.
|
7 |
(По избор) Добавяне на потребителски групи по следните начини:
|
1 |
От полето Филтър навигатор навигирайте до . |
2 |
Натиснете Нов. |
3 |
Въведете следните свойства за URL адреса:
|
4 |
Вдясно от полето URL щракнете върху бутона Lock и добавете |
5 |
(По избор) Изберете групите потребители / агенти, за да зададете конфигурацията. |
6 |
Щракнете върху Подаване. URL адресът се показва като връзка. |
7 |
От полето Филтър навигатор навигирайте до Работна област обслужване. |
8 |
(По избор) В списъка Потребителска група преместете потребителските групи, които имат достъп до работния плот на Webex контактен център, от Налични в Избрани. |
9 |
Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили файла JSON на персонализираното оформление на работния плот на ServiceNow в портала за управление на Webex контактен център. За повече информация вижте Настройване на оформлението на работния плот на ServiceNow Webex контактния център. |
1 |
Изтеглете оформлението на работния плот за 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 |
От полето Филтър навигатор навигирайте до Работна област за операции по . |
Agent Desktop в конзолата ServiceNow
Преди да осъществявате повиквания с външно набиране, уверете се, че правите следното:
-
Създайте изходящата входна точка и настройте стратегия за изходяща входна точка.
-
Активиране на outdial ANI за профила на агента.
-
Настройте ANI на външно набиране на съпоставяне от номер на входна точка.
За повече информация вижте главата Осигуряване на Cisco Webex Contact Center Ръководство за настройка и администриране.
От полето Филтър навигатор навигирайте до Работна област обслужване.
За информация как да използвате работния плот Webex вж .
Разделяне на съхранение от трети страни
Евентуален проблем с неотдавнашната актуализация на Google Chrome и Edge 116 или по-нова версия може да наруши практическата ви работа при влизане в CRM конекторите в Webex Contact Center. Този проблем засяга влизането на работния плот в конзолата ServiceNow CRM.
За да разрешите този проблем в браузъра Google Chrome:
-
Отворете браузъра Google Chrome и chrome://flags/#third-party-storage-partitioning
въведете
в адресната лента. -
Забранете флага за разделяне на експериментално хранилище на трети лица.
-
Затворете и рестартирайте Chrome.
-
влезте отново в работния плот в конзолата ServiceNow CRM.
За да разрешите този проблем в браузъра Edge:
-
Отворете браузъра и въведете
edge://flags/#third-party-storage-partitioning
в адресната лента. -
Забранете флага за разделяне на експериментално хранилище на трети лица.
-
Запазете промените и рестартирайте браузъра.
-
влезте отново в работния плот в конзолата ServiceNow CRM.
За да разрешите този проблем в браузъра Firefox:
-
Отворете браузъра и въведете
about:config
в адресната лента.Може да се появи предупредителна страница. Щракнете върху Приемане на риска и Продължете , за да отидете на
страницата about:config
. -
Въведете
network.cookie.cookieBehavior
в полето Име на предпочитанията за търсене в горната част настраницата about:config
, за да намерите предпочитанията. -
Щракнете двукратно върху предпочитанието или щракнете върху иконата Редактиране , за да редактирате предпочитанието.
-
Променете стойността на 0.
-
Запазете промените и рестартирайте браузъра.
-
влезте отново в работния плот в конзолата ServiceNow CRM.
Общ преглед
Тази статия обхваща няколко начина за персонализиране на вашите бизнес правила за ServiceNow CRM конектора. В него подробно се описва как можете да персонализирате случаите на използване въз основа на бизнес правила, които са специфични за ServiceNow.
Клиентът трябва самостоятелно да управлява тези случаи на използване в ServiceNow. Конфигурацията е специфична за ServiceNow, а не за софтуера или експертизата Webex контактния център.
Това е справочна документация за подпомагане на изменението на бизнес правилата. Разработчиците на ServiceNow ще създават и управляват бизнес правилата и ще предоставят поддръжка. Cisco предоставя само примерна документация. |
Следващите раздели предоставят подробности за това как да настроите, разрешите и управлявате приспособлението "Действия" за екземпляри на разработчици и предприятия.
Къмитване на набора от актуализации за приспособлението "Действия"
За лицензираните корпоративни екземпляри инсталирайте най-новото приложение Webex Контактен център от магазина наServiceNow.
За да настроите уиджета Actions за екземплярите на разработчиците, изтеглете най-новия набор XML System Update Set, наличен в репото на 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 в конфигурацията на приспособлението 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
Сценарият включва промени-
Отидете на навигатор за филтриране и потърсете
скрипт включва
.Изберете скрипта Включва под Системен потребителски интерфейс.
-
Филтриране на името и търсене на
пропУтилс
. -
Промяна на метода
Потребител GetSysId
в сценария.Кърент:
UserGetSysId: функция () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },
Нов примерен код за инцидента:
UserGetSysId: функция () { var opened_for; //Incidentrelated 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('стойност'); 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=сисид; връщане JSON.stringify(sysidlist); },
-
Отидете на филтър навигатор и търсене на
UI страница
.Изберете страници с потребителски интерфейс под Системен потребителски интерфейс.
-
Филтриране на името и търсене на
агентдесктоп
. -
Променете
екранпоп
функция в клиентски скрипт.Текуща функция:
екран поп функция 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 променлива, наречена Име на клиент, която съхранява името на клиента в IVR и го публикува в ServiceNow. Очаква се, че разработчиците на партньор + клиент ServiceNow ще конфигурират и управляват тази конфигурация, тъй като тя е персонализиране на съществуващия конектор. Cisco предоставя само техниките за това как да персонализирате и разширите конектора. Към тази статия екипът на Cisco е валидирал поддръжката за добавяне на CAD променлива към дневника на дейностите и таблицата за активност, използвайки техниката, описана по-долу: |
Добавяне на колона към дейността на WebexCC IMP
-
Редактирайте таблицата във версията за разработчици на ServiceNow.
-
Отидете на навигатора за филтри и потърсете студио.
Избор
Cisco Unified Contact Center
или
-
Изберете
WebexCC IMP дейност
маса -
Добавяне на нова колона, например,
Име на клиент
Добавяне на колона към регистрационния файл на телефонните разговори
-
Редактирайте таблицата на регистрационния файл на телефонните разговори.
-
Добавяне на нова колона, например,
Име на клиент
.
Карта за трансформация на активността на WebexCC
Добавяне на нова колона, например, Име на клиент
картографиране на полета.
Персонализиране на колони от списък
Както Service Now препоръчва, променете действието Избор от създаване на игнориране.
Конфигуриране на списъка с регистрационни файлове на телефонните разговори
Отиди на Script Include
Добавяне само на един ред |
Примерен скрипт
Вижте линията: webexcc.u_customername=actInfo.CustomerName; с подкрепящ коментар.
var propUtils = Клас.създай(); propUtils.prototype = Object.extendsObject(глобален. 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: функция () { 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; иначе // връща null; var grInt = нов GlideRecord('взаимодействие'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'телефон'; grInt.opened_for= opened_for; var sysid=grInt.insert(); връщане на сисид; }, setWebexcctable: функция () { 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 = нов 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 променлива в Flow designer
Добавяне на CAD променливата към оформлението на работния плот
Пример
"CadName1: SnowField1, CadName2: SnowField2" CadName1 е CustomerName SnowField1 се използва и като CustomerName, който е част от примерния scirpt показан по-горе "actInfo.CustomerName".
Демо скрийншотове
Вижте новодобавената CAD променлива в таблицата WebexCC Activity.
Създаване на CAD променлива за Flow Designer
Спешност на инцидентаВъздействие на инцидента
Service Now актуализация на скрипт
Актуализациите на скрипта включват
-
Отидете на навигатора на филтъра и търсенето на
скрипт включва
Изберете опцията Скриптът включва под Системен потребителски интерфейс .
-
Филтрирайте името с
propUtils
. -
Промяна на метода
Потребител GetSysId
в полето Скрипт .Текущ скрипт:
UserGetSysId: функция () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },
Нов примерен код за инцидента:
UserGetSysId: функция () { var opened_for; var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.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=сисид; връщане JSON.stringify(sysidlist);//sysid; },
-
Отидете на навигатора за филтри и потърсете страници
на
потребителския интерфейс.Изберете опцията Страници на потребителския интерфейс под Системен потребителски интерфейс.
-
Филтрирайте страниците на потребителския интерфейс с име и потърсете agentdesktop
.
-
Променете
екранпоп
функция в полето скрипт.Текуща функция:
екран поп функция 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 = нов 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 дейност
маса
Отворете прозореца WebexCC IMP дейностмаса Добавяне на нова колона - InteractionsNumber Добавяне на нова колона - IncidentNumber
Кликнете върху Актуализиране.
Добавяне на нови колони към Регистър на телефонните разговори
маса
Отворете прозореца Регистър на телефонните разговори
маса
Карта за трансформация на активността на WebexCC
Отваряне трансформация карта
от навигатора на филтъра
Кликнете върху WebexCC дейност TransformMap
Щракнете върху Актуализиране.
Промените в скрипта включват
-
Отидете на филтър навигатор и търсене за "скрипт включва".
Изберете скрипта Включва под Системен потребителски интерфейс.
-
Филтриране на името с
пропУтилс
. -
Промяна на метода
setWebexcctable
.Нов примерен код за Инцидент:
setWebexcctable: функция () { 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', инсисид ); inci.query(); ако (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("телефон", 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=интенум; sys_id=webexcc.insert(); } връщане sys_id; },
Промени в метода на страниците на потребителския интерфейс
-
Отидете на навигатор за филтриране и потърсете
Страници на потребителския интерфейс
Изберете опцията Страници на потребителския интерфейс под Системен потребителски интерфейс.
-
Филтрирайте страниците на потребителския интерфейс с име и потърсете agentdesktop
.
-
Променете
сегаДейности и 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 = нов 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('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 създайте нов запис на инциденти.
Търсене на бизнес правила в навигатора за филтри
Натиснете Нов.
Примерен код за справка:
функция 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("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; } отговор = url; обратен URL адрес; } функция UserGetSysId(поле, стойност) { var user = new GlideRecord("sys_user"); user.addQuery(поле, стойност); user.query(); ако (user.next()) върне user.sys_id; иначе върни null; }
Примерна конфигурация на бизнес правилото
Разрешаване на повикване от клиента
Компютърна телефония интеграция (CTI) обработка за инцидент е маркиран като истина.
Актуализирайте URL адреса на screenpop с персонализираното правило за CTI " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
Трябва да се извика sysparm_cti_rule=име, където "name " е името на функция CTI Обработка , а не използване на скрипта по подразбиране.
Дефиниране на функцията в sys_script запис, маркиран като клиент изискуем .
Ако трябва да вмъкнете, актуализирате или изтриете GlideRecords във функцията, извикайте отделна функция, която не може да се извиква от клиента, за да извършите актуализациите.
За да направите скрипт клиентски извикваем, трябва да поставите отметка в квадратчето клиент-извикваем във формуляра, който се показва, когато се показва sys_script запис. Квадратчето за отметка с възможност за извикване от клиента не се показва по подразбиране. За да видите, трябва да промените полетата, които се показват във формуляра, като използвате иконата на зъбно колело и механизма за кофа за киша. |
Персонализиране # 2 - Добавяне на CAD променлива в таблицата Webex дейността на контактния център
Общ прегледТази статия описва подробно процеса на добавяне на допълнителна колона към таблицата ServiceNow - webexcc_activity, която се създава при инсталирането на Webex CC за ServiceNow CRM конектор.
По подразбиране таблицата съдържа стандартни системни полета и стойности.
Можете потенциално да създадете повече специфични за бизнеса променливи (CAD променливи) в дизайнера на WebexCC Flow и да добавите тези CAD променливи в регистрационния файл на активността на ServiceNowслед повикване и да продължите това към данните от таблицата за активност след повикване.
|
Редактирайте таблицата във версията за разработчици на ServiceNow.
Отидете в контактния център
Webex.Изберете таблицата Активност на WebexCC.
Например, Име на клиент.
Изберете Оформление на списък за дейността на WebexCC.
Тази стъпка не е задължителна, ако използвате Update Set XML - Изисква се само един ред, за да бъде добавен "webexcc.u_customername=actInfo.CustomerName" към propUtils. |
Примерен скрипт
Вижте реда с:webexcc.u_customername=actInfo.CustomerName; с подкрепящ коментар.
var propUtils2 = Клас.създай(); propUtils2.prototype = Object.extendsObject(глобален. 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. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Дейности по регистриране на инциденти; var actInfoString = this.getParameter('actInfo'); var suser = нов 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 променлива в Flow designer
Добавяне на CAD променливата към оформлението на работния плот
Демо скрийншотове
Вижте новодобавената CAD променлива в таблицата WebexCC Activity.