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

Преди да интегрирате Webex Contact Center с конзолата 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 Contact Center:

3

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

4

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

5

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

6

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

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

Променете полето Стойност , ако е необходимо.

7

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

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

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

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

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

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

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

1

От полето Навигатор за филтриране отидете до OpenFrame > Configurations.

2

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

3

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

  • Име: Работен плот на Webex Contact Center

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

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

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

4

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

5

(По избор) Изберете групите потребител/агент, за да зададете конфигурацията.

6

Щракнете върху Подаване. URL адресът се показва като връзка.

7

Преди да се опитате да използвате телефона OpenFrame, уверете се, че сте качили JSON файла на оформлението на работния плот по избор на ServiceNow в портала за управление на Webex Contact Center. За повече информация вижте Настройване на оформлението на работния плот на ServiceNow в центъра за контакти на Webex.

1

Изтеглете оформлението на работния плот за ServiceNow от https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Актуализирайте свойствата във файла за оформление на работния плот, ако е необходимо.

3

Отидете на портала за управление на контактния център на Webex.

4

От навигационната лента на портала за управление изберете Provisioning > Desktop Layout.

5

Щракнете върху Ново оформление и въведете подробностите за оформлението на работния плот.

6

Качете JSON файла на оформлението на работния плот на ServiceNow.

7

Щракнете върху Запазване , за да запазите конфигурацията.

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

8

От полето Навигатор за филтриране отидете до Работна област за операции на услугите.

Начална страница на ServiceNow с Webex Contact Center Agent Desktop, интегриран със ServiceNow.

Следващите раздели описват стъпките за инсталиране на конектора ServiceNow за лицензирани корпоративни екземпляри.

1

влезте в акаунта си в портала за разработчици на ServiceNow и отворете конзолата за администриране .

2

От областта Моят екземпляр на менюто Акаунт щракнете върху Стартиране на изграждането.

3

Във вашия екземпляр на разработчик от полето Навигатор за филтриране в горния ляв ъгъл на прозореца отидете до Приставки.

4

Потърсете плъгина Openframe, който има заглавие Openframe. Може да се наложи да превъртите списъка.

5

Щракнете върху Инсталиране , за да инсталирате приставката Openframe.

6

В диалоговия прозорец Активиране на добавка щракнете върху Активиране.

7

Когато активирането на приставката приключи, щракнете върху Затвори & Презаредете формуляра в диалоговия прозорец Активиране на приставка .

8

За да проверите активирането на приставката, от полето Filter navigator в горния ляв ъгъл на прозореца отидете до OpenFrame.

9

Щракнете върху Конфигурации и се уверете, че приставката OpenFrame се появява в списъка Конфигурации на OpenFrame .

1

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

2

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

3

Щракнете върху agentdesktop_url за да отворите страницата System Property agentdesktop_url .

4

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

5

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

6

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

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

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

7

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

  1. В полето Навигатор за филтри в горния ляв ъгъл на прозореца отидете до Групи под Системна сигурност.

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

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

От полето Навигатор на филтри отидете до OpenFrame > Конфигурации.

2

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

3

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

  • Име: Webex Център за контакти Работен плот

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

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

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

4

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

5

(По избор) Изберете потребителски/агентни групи, за да зададете конфигурацията.

6

Щракнете върху Подаване. URL адресът се показва като връзка.

7

От полето Filter navigator отидете до Service Operations Workspace.

Начална страница на ServiceNow с Webex Център за контакт Agent Desktop, интегриран със ServiceNow.

8

(По избор) В списъка Потребителска група преместете потребителските групи, които имат достъп до работния плот на Webex Contact Center от Наличен до Избрано.

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 Contact Center в рамките на конзолата ServiceNow.

8

От полето Навигатор на филтри отидете до Работно пространство за операции на услуги.

Начална страница на ServiceNow с Webex Контактен център Agent Desktop, интегриран със ServiceNow.

1

От полето Навигатор на филтър отидете до Инциденти > Отворен инцидент.

2

Щракнете с десния бутон върху полето на повикващия и щракнете върху Конфигуриране на речник.

3

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

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

4

От полето Навигатор за филтриране отидете до Работна област за операции на услугите.

Начална страница на ServiceNow с Webex Contact Center Agent Desktop, интегриран със ServiceNow.

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

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

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

  • Разрешете ANI за изчерпване за профила на агента.

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

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

От полето Навигатор за филтриране отидете до Работна област за операции на услугите.

Начална страница на ServiceNow с Webex Contact Center Agent Desktop, интегриран със ServiceNow.

За информация как да използвате работния плот вижте раздела Агент в помощта за контактния център на Webex.

Общ преглед

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

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

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

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

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

Фиксиране на приспособлението Update Set for Actions

За лицензираните корпоративни екземпляри инсталирайте най-новото приложение на Webex Contact Center от магазина на ServiceNow.

За да настроите приспособлението "Действия" за екземплярите на разработчиците, изтеглете най-новия файл за набор от XML системни актуализации, наличен в хранилището на github на това място: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Името на файла е webexcc-servicenow-update-setv7-1-ActionsWidget.xml. За да фиксирате набора за обновяване за приспособлението Действия, вижте стъпки от 2 до 9 в Фиксиране на набора за актуализация.

Активиране на джаджа за действия

Използвайте свойството isWidgetDisplayEnabled , за да активирате приспособлението Действия. Не трябва да променяте стойността на това свойство в секцията без глава на персонализираното оформление на работния плот. Свойството винаги е зададено на false в секцията без глава на персонализираното оформление на работния плот. Трябва да актуализирате стойността на свойството само в секцията на панела на персонализираното оформление на работния плот.

След като активирате приспособлението "Действия" в персонализираното оформление на работния плот, можете да извършите следните действия:

  • Управление на записи на дейности – щракнете върху Преглед/редактиране на запис на дейност, за да видите списъка със записи на дейности, свързани с повикващия.
  • Свързване на CRM обекти – Щракнете върху Свързване към записи на дейности, за да добавите CRM обекти, като например тип повикване (входящ или изходящ), обект на повикване, бележки за повикване и т.н. към записа на дейността.
  • Управление на инциденти – щракнете върху Създаване на инцидент. Създава се нов инцидент с предварително попълнени данни за обаждащия се. Можете да направите необходимите актуализации на инцидента. Можете да изберете да промените типа на записа от инцидент до случай, модул за човешки ресурси и т.н. въз основа на вашите изисквания. За да промените типа на записа, променете стойността на свойството typeOfRecord в конфигурацията на приспособлението Действия. Например:
    { "comp": "md-tab-panel", "attributes": { "slot": "panel", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions!", "maximizeAreaName": "app-maximize-area" } } ] }
  • Добавяне на бележки за разговор на живо – Можете да заснемете допълнителна информация за разговора в текстовата област и да приключите разговора. Можете да видите тези бележки, добавени като бележки за повикване в записа на дейността.

Промяна на кода в ServiceNow

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

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

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

  3. Промяна на метода UserGetSysId в сценария.

    Курент:

    UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },

    Нов примерен код за инцидента:

    UserGetSysId: function () { var opened_for; //Incident related changes var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='Повикване, получено от '+ 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; return JSON.stringify(sysidlist); },

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

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

  2. Филтрирайте името и потърсете Agentdesktop.

  3. Променете Screenpop в клиентски скрипт.

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

    screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'phone'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });

    Примерен код за инцидента:

    screen pop function screenpop(callerani,callSessionInfo) { if(callerani==callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'phone'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); // За промяна, свързана с инцидент var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }

Ако информацията за обаждащия се съществува в CRM и вече има нов инцидент, отворен с този контакт, приложението отваря инцидента в процес

Ако информацията за обаждащия се не съществува в CRM, приложението отваря нов инцидент

Ако информацията за обаждащия се съществува в CRM, приложението отваря нов инцидент с предварително попълнени данни

Общ преглед

Този случай на употреба описва подробно процеса за добавяне на допълнителна колона към таблицата ServiceNow - webexcc_imp_activity и създаване на sn_openframe_phone_log при инсталирането на Webex CC за ServiceNow CRM конектора.

По подразбиране таблицата съдържа определени системни полета и стойности.

Можете да създадете повече специфични за бизнеса променливи (CAD променливи) в дизайнера на WebexCC Flow и да добавите CAD променливите в регистрационния файл на активността след повикване на ServiceNow, както и да запазите това в данните на таблицата за активност след повикване.

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

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

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

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

Добавяне на колона към дейността на WebexCC IMP

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

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

    Избор Cisco Unified Contact Center

    или

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

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

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

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

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

Карта на трансформацията на дейността на WebexCC

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

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

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

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

Отидете на Скрипт Включване

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

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

Вижте реда: webexcc.u_customername=actInfo.CustomerName; с подкрепящ коментар.

var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id;//return user.sys_id; else // връщане null; 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 = нов 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. Промяна на метода UserGetSysId в полето Скрипт .

    Текущ сценарий:

    UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },

    Нов примерен код за инцидента:

    UserGetSysId: function () { var opened_for; var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); } else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Повикване, получено от '+ 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; return JSON.stringify(sysidlist);//sysid; },

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

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

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

  3. Променете Screenpop в полето за скрипт.

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

    screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); gaout.addParam('стойност', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }

    Примерен код за инцидента:

    screen pop function screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('поле', 'телефон'); 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 Activity TransformMap

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

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

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

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

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

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

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

  3. Промяна на метода setWebexccable.

    Нов примерен код за инцидент:

    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()) { //Дейности в записа на инцидент; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; изтриване 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='Актуализиране на състоянието до затворено.'; 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=интенум; sys_id=webexcc.insert(); } връщане sys_id; },

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

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

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

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

  3. Променете сегаДейности и скрийнпоп в скрипта.

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

    function nowActivities(actInfo, ani) { var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }

    Примерен код за инцидента:

    function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); } 

Резултати след актуализацията

Следните персонализации се отнасят за версии 1.0.5 и по-стари. За персонализациите за по-новите версии 1.0.7 и по-нови следвайте стъпките по-горе.

Персонализиране # 1 - Добавяне на персонализирани бизнес правила за случаи на използване на потока на повикванията

Създаване на нов запис на инцидент за всяко обаждане

За всяко ново повикване в конектора WebexCC CRM в ServiceNow създайте нов запис на инцидент.

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

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

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

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

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

  3. Активиране на Клиент с възможност за извикване

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

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

Пример

sysparm_cti_rule =name , където 'name' е името на функция , трябва да се извика за CTI Обработка , а не да се използва скриптът по подразбиране.

Дефинирайте функцията в запис sys_script , отбелязан като клиент за извикване.

Ако трябва да вмъкнете, актуализирате или изтриете някоя GlideRecords във функцията, извикайте отделна функция, която не може да бъде извикана от клиент, за да извършите актуализациите.

За да направите скрипт извикван от клиента, трябва да поставите отметка в квадратчето за извикване на клиента във формуляра, който се показва, когато се показва записът за sys_script.

Квадратчето за отметка с възможност за извикване от клиента не се показва по подразбиране. За да видите, трябва да промените полетата, които се показват във формуляра, като използвате иконата на зъбно колело и механизма на кофата за киша.

Препратки

Персонализиране # 2 - Добавяне на CAD променлива в таблицата за активност на контактния център на Webex

Общ преглед

Тази статия описва подробно процеса за добавяне на допълнителна колона към таблицата ServiceNow - webexcc_activity, която се създава при инсталирането на Webex CC for ServiceNow CRM конектора.

По подразбиране таблицата съдържа готови системни полета и стойности.

Потенциално можете да създадете повече специфични за бизнеса променливи (CAD променливи) в дизайнера на WebexCC Flow и да добавите тези CAD променливи в регистрационния файл на активността след повикване на ServiceNowи да запазите това в данните на таблицата за дейност след повикване.

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

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

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

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

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

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

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

  4. Например CustomerName.

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

Създайте нов скрипт включва

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

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

Вижте реда с:webexcc.u_customername=actInfo.CustomerName; с подкрепящ коментар.

var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_ webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Този ред е добавен - за да го заснемете в дневника на активността 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(действащ низ),null,2); inc.comments =jsonPretty; inc.update(); } } } връщане sys_id; }, тип: 'propUtils2' });
Редактиране на страницата на потребителския интерфейс с ново име на скрипт

Създаване на CAD променлива в Flow designer

Добавете CAD променливата към оформлението на работния плот

Демонстрационни екранни снимки

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