Предпоставки

Преди да интегрирате Webex контактен център с конзолата ServiceNow CRM, уверете се, че имате следното:


 

Следвайте един от двата метода по-долу:

За екземпляри за разработчици препоръчваме да следвате стъпките под ръководството за екземпляри на разработчика.

Ако притежавате екземпляр, лицензиран за предприятие, следвайте указанията за екземпляри, лицензирани за предприятия.

Не препоръчваме смесването на лицензираното от предприятието приложение с екземпляри на пясъчника за разработчици.

Следващите раздели описват стъпките за инсталиране на конектора 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

В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете sys_properties.list и натиснете клавиша enter.

2

На страницата Свойства на системата сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следните свойства на Webex контактния център:

3

Щракнете върху agentdesktop_url , за да отворите страницата Свойство на системата agentdesktop_url .

4

В полето Стойност въведете URL адреса на работния плот на Webex контактен център според региона на работа.

5

Щракнете върху Актуализиране , за да запишете промените.

6

(По избор) За да промените името на таблицата "Активност", редактирайте свойствата на таблицата за webexccactivity, както се изисква.

На страницата Свойства на системата щракнете върху webexccactivitytable.

Променете полето "Стойност " според изискванията.

7

(По избор) Добавяне на потребителски групи по следните начини:

  1. В полето Филтър навигатор в горния ляв ъгъл на прозореца отидете до Групи под Защита на системата.

  2. Създайте нова потребителска група или използвайте съществуваща.

  3. Щракнете върху Редактиране.

  4. Потърсете sn_openframe_user под Колекция и я преместете във вашата потребителска група.

  5. Щракнете върху Запиши.

  6. Добавяне на потребителя като член на групата.

1

От полето Филтър навигатор навигирайте до OpenFrame > Configurations.

2

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

3

Въведете следните свойства за URL адреса:

  • Име: Webex Контактен център Desktop

  • Заглавие: Webex Контактен център

  • Широчина: 550 (препоръчително)

  • Височина: 600 (препоръчително)

4

Вдясно от полето URL щракнете върху бутона Lock и добавете agentdesktop.do като URL адрес. (Направете тази стъпка, за да посочите конфигурацията към страницата на потребителския интерфейс)

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.

1

В полето Филтър навигатор в горния ляв ъгъл на прозореца въведете sys_properties.list.

2

На страницата Свойства на системата сортирайте свойствата по актуализирана дата. Уверете се, че можете да видите следните свойства на Webex контактния център:

3

Щракнете върху agentdesktop_url , за да отворите страницата Свойство на системата agentdesktop_url .

4

В полето Стойност въведете URL адреса на работния плот на Webex контактен център според региона на работа.

5

Щракнете върху Актуализиране , за да запишете промените.

6

(По избор) За да промените името на таблицата "Активност", редактирайте свойствата на таблицата x_caci_webexcc.webexccactivity, както се изисква.

  1. На страницата Свойства на системата щракнете върху x_caci_webexcc.webexccactivitytable.

  2. Променете полето "Стойност " според изискванията.

7

(По избор) Добавяне на потребителски групи по следните начини:

  1. В полето Филтър навигатор в горния ляв ъгъл на прозореца отидете до Групи под Защита на системата.

  2. Щракнете върху Редактиране и добавете следните роли:

    • sn_openframe_user

    • x_caci_webexcc.агент

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.уебекс_контакт_център

1

От полето Филтър навигатор навигирайте до OpenFrame > Configurations.

2

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

3

Въведете следните свойства за URL адреса:

  • Име: Webex Контактен център Desktop

  • Заглавие: Webex Контактен център

  • Широчина: 550 (препоръчително)

  • Височина: 600 (препоръчително)

4

Вдясно от полето URL щракнете върху бутона Lock и добавете x_caci_webexcc_agentdesktop.do като URL адрес. (Направете тази стъпка, за да посочите конфигурацията към страницата на потребителския интерфейс)

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

Добавяне на атрибути, разделени със запетая"ref_contributions=show_phone,.

Сега можете да започнете да използвате работния плот на Webex Contact Center в конзолата ServiceNow.

4

От полето Филтър навигатор навигирайте до Работна област на агент> Работна област на агент.

Щракнете върху иконата на долния ляв телефон.

Agent Desktop в конзолата ServiceNow

Преди да осъществявате повиквания с външно набиране, уверете се, че правите следното:

  • Създайте изходящата входна точка и настройте стратегия за изходяща входна точка.

  • Активиране на outdial ANI за профила на агента.

  • Настройте ANI на външно набиране на съпоставяне от номер на входна точка.

За повече информация вижте главата Осигуряване на Cisco Webex Contact Center Ръководство за настройка и администриране.

От полето Филтър навигатор навигирайте до Работна област на агент> Работна област на агент.

Щракнете върху иконата на долния ляв телефон.

За информация как да използвате работния плот вж Cisco Webex Contact Center Agent Desktop Ръководство за потребителя.

Разделяне на съхранение от трети страни

Евентуален проблем с неотдавнашната актуализация на Google Chrome и Edge 116 или по-нова версия може да наруши практическата ви работа при влизане в CRM конекторите в Webex Contact Center. Този проблем засяга влизането на работния плот в конзолата ServiceNow CRM.

За да разрешите този проблем в браузъра Google Chrome:

  1. Отворете браузъра Google Chrome и chrome://flags/#third-party-storage-partitioning въведете в адресната лента.

  2. Забранете флага за разделяне на експериментално хранилище на трети лица.

  3. Затворете и рестартирайте Chrome.

  4. влезте отново в работния плот в конзолата ServiceNow CRM.

За да разрешите този проблем в браузъра Edge:

  1. Отворете браузъра и въведете edge://flags/#third-party-storage-partitioning в адресната лента.

  2. Забранете флага за разделяне на експериментално хранилище на трети лица.

  3. Запазете промените и рестартирайте браузъра.

  4. влезте отново в работния плот в конзолата ServiceNow CRM.

За да разрешите този проблем в браузъра Firefox:

  1. Отворете браузъра и въведете about:config в адресната лента.

    Може да се появи предупредителна страница. Щракнете върху Приемане на риска и Продължете , за да отидете на страницата about:config .

  2. Въведете network.cookie.cookieBehavior в полето Име на предпочитанията за търсене в горната част на страницата about:config , за да намерите предпочитанията.

  3. Щракнете двукратно върху предпочитанието или щракнете върху иконата Редактиране , за да редактирате предпочитанието.

  4. Променете стойността на 0.

  5. Запазете промените и рестартирайте браузъра.

  6. влезте отново в работния плот в конзолата ServiceNow CRM.

Общ преглед

Тази статия обхваща няколко начина за персонализиране на вашите бизнес правила за ServiceNow CRM конектора. В него подробно се описва как можете да персонализирате случаите на използване въз основа на бизнес правила, които са специфични за ServiceNow.

Клиентът трябва самостоятелно да управлява тези случаи на използване в ServiceNow. Конфигурацията е специфична за ServiceNow, а не за софтуера или експертизата Webex контактния център.


 

Това е справочна документация за подпомагане на изменението на бизнес правилата. Разработчиците на ServiceNow ще създават и управляват бизнес правилата и ще предоставят поддръжка.

Cisco предоставя само примерна документация.

Следващите раздели предоставят подробности за това как да настроите, разрешите и управлявате приспособлението "Действия" за екземпляри на разработчици и предприятия.

Къмитване на набора от актуализации за приспособлението "Действия"

За лицензираните корпоративни екземпляри инсталирайте приспособлението ServiceNow connector Actions, версия 1.9 от магазина на 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

Сценарият включва промени
  1. Отидете на навигатор за филтриране и потърсете скрипт включва.

    Изберете скрипта Включва под Системен потребителски интерфейс.

  2. Филтриране на името и търсене на пропУтилс.

  3. Промяна на метода Потребител 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); },

Промяна на метода на страниците на потребителския интерфейс
  1. Отидете на филтър навигатор и търсене на UI страница.

    Изберете страници с потребителски интерфейс под Системен потребителски интерфейс.

  2. Филтриране на името и търсене на агентдесктоп.

  3. Променете екранпоп функция в клиентски скрипт.

    Текуща функция:

    екран поп функция 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

  1. Редактирайте таблицата във версията за разработчици на ServiceNow.

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

    Избор Cisco Unified Contact Center

    или

  3. Изберете WebexCC IMP дейност маса

  4. Добавяне на нова колона, например, Име на клиент

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

  1. Редактирайте таблицата на регистрационния файл на телефонните разговори.

  2. Добавяне на нова колона, например, Име на клиент.

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

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

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

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

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

Отиди на Script Include


 

Добавяне само на един ред webexcc.u_customername=actInfo.CustomerName към propUtils.

Примерен скрипт

Вижте линията: 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 актуализация на скрипт

Актуализациите на скрипта включват

  1. Отидете на навигатора на филтъра и търсенето на скрипт включва

    Изберете опцията Скриптът включва под Системен потребителски интерфейс .

  2. Филтрирайте името с propUtils.

  3. Промяна на метода Потребител 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; },

Промяна на метода на страниците на потребителския интерфейс
  1. Отидете на навигатора за филтри и потърсете страници напотребителския интерфейс.

    Изберете опцията Страници на потребителския интерфейс под Системен потребителски интерфейс.

  2. Филтрирайте страниците на потребителския интерфейс с име и потърсете agentdesktop .

  3. Променете екранпоп функция в полето скрипт.

    Текуща функция:

    екран поп функция 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

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

Добавяне на нови колони към Регистър на телефонните разговори маса

Отворете прозореца Регистър на телефонните разговори маса

Добавяне на нова колона - InteractionsNumber

Добавяне на нова колона - IncidentNumber

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

Отваряне трансформация карта от навигатора на филтъра

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

Добавяне на нов - за карта на номера на взаимодействие

Добавяне на нов - за карта на номера на инциденти

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

Промените в скрипта включват

  1. Отидете на филтър навигатор и търсене за "скрипт включва".

    Изберете скрипта Включва под Системен потребителски интерфейс.

  2. Филтриране на името с пропУтилс.

  3. Промяна на метода 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; },

Промени в метода на страниците на потребителския интерфейс

  1. Отидете на навигатор за филтриране и потърсете Страници на потребителския интерфейс

    Изберете опцията Страници на потребителския интерфейс под Системен потребителски интерфейс.

  2. Филтрирайте страниците на потребителския интерфейс с име и потърсете agentdesktop .

  3. Променете сегаДейности и 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 създайте нов запис на инциденти.

  1. Търсене на бизнес правила в навигатора за филтри

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

    Примерен код за справка:

    функция 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; }

    Примерна конфигурация на бизнес правилото

  3. Разрешаване на повикване от клиента

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

  4. Актуализирайте 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след повикване и да продължите това към данните от таблицата за активност след повикване.


 
  • Това е само справочна документация - и показва как да направите това за примерна CAD променлива, наречена Име на клиент, която съхранява името на клиента в IVR и го публикува в ServiceNow.

  • Разработчиците на partner + customer ServiceNow ще конфигурират и управляват тази конфигурация, тъй като тя е персонализиране на съществуващия конектор.

  • Cisco ще предостави само техниките за това как да персонализирате и разширите конектора.

  • Към тази статия екипът на Cisco е валидирал поддръжката за добавяне на CAD променлива към дневника на дейностите и таблицата за активност, използвайки техниката, описана по-долу.

Добавяне на колона към дейността на WebexCC
  1. Редактирайте таблицата във версията за разработчици на ServiceNow.

  2. Отидете в контактния център на Studio >Webex.

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

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

  5. Изберете Оформление на списък за дейността на 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.