Wymagania wstępne

Obecnie ta funkcja dotyczy tylko agentów.

Przed zintegrowaniem Webex Contact Center z konsolą ServiceNow CRM upewnij się, że masz następujące elementy:

Wykonaj jedną z dwóch poniższych metod:

W przypadku wystąpień deweloperów zalecamy wykonanie czynności opisanych w przewodniku wystąpienia dewelopera.

Jeśli jesteś właścicielem wystąpienia z licencją korporacyjną, postępuj zgodnie z wytycznymi dotyczącymi wystąpień z licencją korporacyjną.

Nie zalecamy mieszania aplikacji licencjonowanej w przedsiębiorstwie z wystąpieniami sandbox dla programistów.

W poniższych sekcjach opisano kroki instalowania łącznika ServiceNow dla wystąpień programistów.

1

Zaloguj się na konto portalu programisty ServiceNow i otwórz konsolę Administracja .

2

W obszarze Moje wystąpienie menu Konto kliknij polecenie Rozpocznij budowanie.

3

W wystąpieniu programisty z pola Nawigator filtrów w lewym górnym rogu okna przejdź do sekcji Wtyczki.

4

Wyszukaj wtyczkę Openframe o tytule Openframe. Może być konieczne przewinięcie listy.

5

Kliknij przycisk Zainstaluj , aby zainstalować wtyczkę Openframe.

6

W oknie dialogowym Aktywuj wtyczkę kliknij przycisk Aktywuj.

7

Po zakończeniu aktywacji wtyczek kliknij opcję Zamknij i ponownie załaduj formularz w oknie dialogowym Aktywacja wtyczek .

8

Aby zweryfikować aktywację wtyczki, w polu Nawigator filtrów w lewym górnym rogu okna przejdź do OpenFrame.

9

Kliknij Konfiguracje i upewnij się, że wtyczka OpenFrame pojawia się na liście Konfiguracje OpenFrame.

1

Pobierz najnowszy plik XML System Update Set dostępny w repo github pod tym adresem: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nazwa pliku: webexcc-servicenow-update-setV(X).xml

2

W wystąpieniu usługi ServiceNow w polu Nawigator filtrów w lewym górnym rogu okna wybierz kolejno pozycje Aktualizuj zestawy systemowe > Aktualizuj zestawy do commit.

3

Kliknij łącze Importuj zestaw aktualizacji z XML .

4

Kliknij przycisk Wybierz plik, wybierz plik XML z ustawieniami aktualizacji systemu, a następnie kliknij przycisk Prześlij.

Zestaw aktualizacji pojawi się na liście Pobrane zestawy aktualizacji i jest w stanie Załadowane .
5

Na liście Pobrane zestawy aktualizacji kliknij nazwę pliku zestawu aktualizacji (łącze), aby otworzyć zestaw aktualizacji.

6

W prawym górnym rogu okna kliknij podgląd zestawu aktualizacji, aby sprawdzić zestaw aktualizacji pod kątem problemów.

7

Po zakończeniu podglądu kliknij przycisk Zamknij w oknie dialogowym Aktualizuj podgląd zestawu.

8

Kliknij przycisk Zatwierdź zestawaktualizacji.

9

Po zakończeniu zatwierdzania zestawu aktualizacji kliknij przycisk Zamknij w oknie dialogowym Aktualizacja zestawu aktualizacji .

1

W polu Nawigator filtrów w lewym górnym rogu okna wpisz sys_properties.list i naciśnij klawisz Enter.

2

Na stronie Właściwości systemu posortuj właściwości według daty aktualizacji. Upewnij się, że widzisz następujące właściwości Webex Contact Center :

3

Kliknij agentdesktop_url , aby otworzyć stronę Właściwość agentdesktop_url systemu.

4

W polu Wartość wprowadź adres URL Webex Contact Center Desktop zgodnie z regionem działania.

5

Kliknij przycisk Aktualizuj , aby zapisać zmiany.

6

(Opcjonalnie) Aby zmienić nazwę tabeli Aktywność, edytuj właściwości webexexactivitytable zgodnie z wymaganiami.

Na stronie Właściwości systemu kliknij webexccactivitytable.

Zmień pole Wartość zgodnie z wymaganiami.

7

(Opcjonalnie) Dodaj grupy użytkowników w następujący sposób:

  1. W polu Nawigator filtrów w lewym górnym rogu okna przejdź do sekcji Grupy w obszarze Zabezpieczenia systemu.

  2. Utwórz nową grupę użytkowników lub użyj istniejącej.

  3. Kliknij przycisk Edytuj.

  4. Wyszukaj sn_openframe_user w obszarze Kolekcja i przenieś ją do swojej grupy użytkowników.

  5. Kliknij opcję Zapisz.

  6. Dodaj użytkownika jako członka grupy.

1

W polu Nawigator filtrów przejdź do sekcji Konfiguracje> OpenFrame.

2

Kliknij przycisk Nowy.

3

Wprowadź następujące właściwości adresu URL:

  • Nazwa: Pulpit Webex Contact Center

  • Tytuł: Webex Contact Center

  • Szerokość: 550 (zalecany)

  • Wysokość: 600 (zalecany)

4

Po prawej stronie pola adresu URL kliknij przycisk Zablokuj i jako adres URL dodaj adres agentdesktop.do . (Wykonaj ten krok, aby wskazać konfigurację na stronie interfejsu użytkownika)

5

(Opcjonalnie) Wybierz użytkowników / grupy agentów, których chcesz przypisać konfigurację.

6

Kliknij przycisk Przekaż. Adres URL pojawi się jako link.

7

Przed próbą użycia telefonu OpenFrame należy przesłać plik JSON niestandardowego układu pulpitu ServiceNow do portalu zarządzania Centrum kontaktowego Webex. Aby uzyskać więcej informacji, zobacz Konfigurowanie układu pulpitu ServiceNow w Webex Contact Center.

1

Pobierz układ pulpitu dla usługi ServiceNow z https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

W razie potrzeby zaktualizuj właściwości w pliku układu pulpitu.

3

Przejdź do portalu zarządzania Webex Contact Center .

4

Na pasku nawigacyjnym Management Portal wybierz kolejno opcje Konfiguracja > Układ pulpitu.

5

Kliknij przycisk Nowy układ i wprowadź szczegóły układu pulpitu.

6

Prześlij plik JSON układu pulpitu ServiceNow.

7

Kliknij przycisk Zapisz , aby zapisać konfigurację.

Teraz można uruchomić pulpit Centrum kontaktowego Webex w konsoli ServiceNow.

8

W polu Nawigator filtrów przejdź do pozycji Obszar roboczy operacji serwisowych.

Strona główna usługi ServiceNow z programem Webex Contact Center Agent Desktop zintegrowanym z usługą ServiceNow.

W poniższych sekcjach opisano kroki instalowania łącznika ServiceNow dla licencjonowanych wystąpień przedsiębiorstwa.

1

Zaloguj się na konto portalu programisty ServiceNow i otwórz konsolę Administracja .

2

W obszarze Moje wystąpienie menu Konto kliknij polecenie Rozpocznij budowanie.

3

W wystąpieniu programisty z pola Nawigator filtrów w lewym górnym rogu okna przejdź do sekcji Wtyczki.

4

Wyszukaj wtyczkę Openframe o tytule Openframe. Może być konieczne przewinięcie listy.

5

Kliknij przycisk Zainstaluj , aby zainstalować wtyczkę Openframe.

6

W oknie dialogowym Aktywuj wtyczkę kliknij przycisk Aktywuj.

7

Po zakończeniu aktywacji wtyczek kliknij opcję Zamknij i ponownie załaduj formularz w oknie dialogowym Aktywacja wtyczek .

8

Aby zweryfikować aktywację wtyczki, w polu Nawigator filtrów w lewym górnym rogu okna przejdź do OpenFrame.

9

Kliknij Konfiguracje i upewnij się, że wtyczka OpenFrame pojawia się na liście Konfiguracje OpenFrame.

1

W polu Nawigator filtrów w lewym górnym rogu okna wpisz sys_properties.list.

2

Na stronie Właściwości systemu posortuj właściwości według daty aktualizacji. Upewnij się, że widzisz następujące właściwości Webex Contact Center :

3

Kliknij agentdesktop_url , aby otworzyć stronę Właściwość agentdesktop_url systemu.

4

W polu Wartość wprowadź adres URL Webex Contact Center Desktop zgodnie z regionem działania.

5

Kliknij przycisk Aktualizuj , aby zapisać zmiany.

6

(Opcjonalnie) Aby zmienić nazwę tabeli aktywności, zmodyfikuj właściwości x_caci_webexcc.webexccactivitytable zgodnie z wymaganiami.

  1. Na stronie Właściwości systemu kliknij x_caci_webexcc.webexccactivitytable.

  2. Zmień pole Wartość zgodnie z wymaganiami.

7

(Opcjonalnie) Dodaj grupy użytkowników w następujący sposób:

  1. W polu Nawigator filtrów w lewym górnym rogu okna przejdź do sekcji Grupy w obszarze Zabezpieczenia systemu.

  2. Kliknij opcję Edytuj i dodaj następujące role:

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

W polu Nawigator filtrów przejdź do sekcji Konfiguracje> OpenFrame.

2

Kliknij przycisk Nowy.

3

Wprowadź następujące właściwości adresu URL:

  • Nazwa: Pulpit Webex Contact Center

  • Tytuł: Webex Contact Center

  • Szerokość: 550 (zalecany)

  • Wysokość: 600 (zalecany)

4

Po prawej stronie pola adresu URL kliknij przycisk Zablokuj i dodaj adres x_caci_webexcc_agentdesktop.do jako adres URL. (Wykonaj ten krok, aby wskazać konfigurację na stronie interfejsu użytkownika)

5

(Opcjonalnie) Wybierz użytkowników / grupy agentów, których chcesz przypisać konfigurację.

6

Kliknij przycisk Przekaż. Adres URL pojawi się jako link.

7

W polu Nawigator filtrów przejdź do pozycji Obszar roboczy operacji serwisowych.

Strona główna usługi ServiceNow z programem Webex Contact Center Agent Desktop zintegrowanym z usługą ServiceNow.

8

(Opcjonalnie) Na liście Grupa użytkowników przenieś grupy użytkowników, które mogą uzyskać dostęp do Webex Contact Center Desktop, z dostępnych do wybranych.

9

Przed próbą użycia telefonu OpenFrame należy przesłać plik JSON niestandardowego układu pulpitu ServiceNow do portalu zarządzania Centrum kontaktowego Webex. Aby uzyskać więcej informacji, zobacz Konfigurowanie układu pulpitu ServiceNow w Webex Contact Center.

1

Pobierz układ pulpitu dla usługi ServiceNow z https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

W razie potrzeby zaktualizuj właściwości w pliku układu pulpitu.

3

Przejdź do portalu zarządzania Webex Contact Center .

4

Na pasku nawigacyjnym Management Portal wybierz kolejno opcje Konfiguracja > Układ pulpitu.

5

Kliknij przycisk Nowy układ i wprowadź szczegóły układu pulpitu.

6

Prześlij plik JSON układu pulpitu ServiceNow.

7

Kliknij przycisk Zapisz , aby zapisać konfigurację.

Teraz można uruchomić pulpit Centrum kontaktowego Webex w konsoli ServiceNow.

8

W polu Nawigator filtrów przejdź do pozycji Obszar roboczy operacji serwisowych.

Strona główna usługi ServiceNow z programem Webex Contact Center Agent Desktop zintegrowanym z usługą ServiceNow.

1

W polu Nawigator filtrów przejdź do pozycji Zdarzenia > Otwarte zdarzenie.

2

Kliknij prawym przyciskiem myszy pole nawiązującego połączenie i kliknij opcję Konfiguruj słownik.

3

Dodaj atrybuty rozdzielone przecinkami “ref_contributions=show_phone,.

Teraz można zacząć korzystać z pulpitu centrum kontaktu Webex w konsoli ServiceNow.

4

W polu Nawigator filtrów przejdź do pozycji Obszar roboczy operacji serwisowych.

Strona główna usługi ServiceNow z programem Webex Contact Center Agent Desktop zintegrowanym z usługą ServiceNow.

Obecnie nie jest obsługiwane logowanie do programu Agent Desktop za pomocą opcji Desktop (WebRTC).

Agent Desktop w konsoli ServiceNow

Przed wykonaniem połączeń z numerem outdial upewnij się, że wykonano następujące czynności:

  • Utwórz punkt wejścia na zewnątrz i skonfiguruj strategię wychodzącego punktu wejścia.

  • Włącz rozszerzenie ani dla profilu agenta.

  • Ustaw numer wyjściowy ANI na mapowanie numeru wybierania numeru do punktu wejścia.

Aby uzyskać więcej informacji, zobacz rozdział Obsługa administracyjna w podręczniku konfiguracji i administratora Cisco Webex Contact Center.

W polu Nawigator filtrów przejdź do pozycji Obszar roboczy operacji serwisowych.

Strona główna usługi ServiceNow z programem Webex Contact Center Agent Desktop zintegrowanym z usługą ServiceNow.

Informacje na temat korzystania z pulpitu można znaleźć na karcie Agent w pomocy Webex Contact Center.

Przegląd

Ten artykuł obejmuje kilka sposobów na dostosowanie reguł biznesowych dla łącznika ServiceNow CRM. Szczegółowo opisano, w jaki sposób można dostosować przypadki użycia w oparciu o reguły biznesowe specyficzne dla usługi ServiceNow.

Klient musi samodzielnie zarządzać tymi przypadkami użycia w ServiceNow. Konfiguracja jest specyficzna dla usługi ServiceNow, a nie oprogramowania ani wiedzy fachowej Webex Contact Center.

Jest to dokumentacja referencyjna ułatwiająca modyfikację zasad biznesowych. Programiści ServiceNow będą tworzyć reguły biznesowe i zarządzać nimi oraz zapewniać wsparcie.

Firma Cisco udostępnia tylko przykładową dokumentację.

Poniższe sekcje zawierają szczegółowe informacje na temat konfigurowania i włączania widżetu czynności dla wystąpień programistów i przedsiębiorstw oraz zarządzania nimi.

Zatwierdź zestaw aktualizacji widgetu czynności

W przypadku licencjonowanych wystąpień przedsiębiorstwa zainstaluj najnowszą aplikację Webex Contact Center ze sklepu ServiceNow.

Aby skonfigurować widżet Czynności dla wystąpień programistów, pobierz najnowszy plik XML z aktualizacją systemu dostępny w repo github pod adresem: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Nazwa pliku to webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Aby zatwierdzić zestaw aktualizacji dla widżetu Czynności, zobacz kroki od 2 do 9 w artykule Zatwierdź zestaw aktualizacji.

Włącz widget czynności

Użyj właściwości isWidgetDisplayEnabled , aby włączyć widget Czynności. Nie można modyfikować wartości tej właściwości w sekcji bez łba w niestandardowym układzie pulpitu. W sekcji bez łba niestandardowego układu pulpitu zawsze ustawiona jest wartość false. Wartość właściwości należy zaktualizować tylko w sekcji panelu niestandardowego układu pulpitu.

Po włączeniu widżetu Czynności w niestandardowym układzie pulpitu można wykonać następujące czynności:

  • Zarządzanie rekordami aktywności — kliknij opcję Wyświetl/Edytuj rekord aktywności , aby wyświetlić listę rekordów aktywności powiązanych z dzwoniącym.
  • Powiąż obiekty CRM — kliknij opcję Powiąż z rekordami aktywności , aby dodać do rekordu aktywności obiekty CRM, takie jak typ połączenia (przychodzące lub wychodzące), obiekt połączenia, notatki połączeń itd.
  • Zarządzanie zdarzeniami — kliknij opcję Utwórz zdarzenie. Zostanie utworzony nowy incydent z wstępnie wypełnionymi szczegółami dzwoniącego. Można dokonać wymaganych aktualizacji zdarzenia. Można zmodyfikować typ rekordu od zdarzenia do przypadku, modułu HR itd. w zależności od wymagań. Aby zmienić typ rekordu, zmodyfikuj wartość właściwości typeOfRecord w konfiguracji widżetu Czynności. Na przykład:
    { "comp": "md-tab-panel", "atrybuty": { "slot": "panel", "class": "widget-pane" }, "dzieci": [ { "comp": "agentx-custom-desktop", "skrypt": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "właściwości": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions !", "maximizeAreaName": "app-maximize-area" } } ] }
  • Dodawanie notatek o połączeniach na żywo — można przechwytywać dodatkowe informacje o połączeniu w obszarze tekstowym i podsumować połączenie. Możesz zobaczyć te notatki dodane jako notatki do połączenia w rekordzie aktywności.

Zmiana kodu w ServiceNow

Skrypt Zawiera zmiany
  1. Przejdź do filtrowania nawigatora i wyszukaj skrypt zawiera.

    Wybierz pozycję Skrypt obejmuje w obszarze Interfejs użytkownika systemu.

  2. Odfiltruj nazwę i wyszukaj propUtils.

  3. Zmień metodę UserGetSysId w skrypcie.

    Kurent:

    Identyfikator użytkownikaGetSysId: 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=użytkownik.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; },

    Nowy przykładowy kod zdarzenia:

    Identyfikator użytkownikaGetSysId: funkcja () { var opened_for; //zmiany związane ze zdarzeniem var sysidlist = {}; var user = nowy GlideRecordSecure ("sys_user"); user.addQuery(this.getParameter('pole'),this.getParameter('wartość')); user.query(); if(user.next()) { opened_for= użytkownik.sys_id;//powrót użytkownika.sys_id; var inc = nowy 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= 'Połączenie odebrane z '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },

Zmiana metody na stronach interfejsu użytkownika
  1. Przejdź do filtrowania aplikacji Navigator i wyszukaj stronę interfejsu użytkownika.

    Wybierz strony interfejsu użytkownika w obszarze Interfejs użytkownika systemu.

  2. Odfiltruj nazwę i wyszukaj agentdesktop.

  3. Zmień funkcję screenpop w skrypcie klienta.

    Bieżąca funkcja:

    // funkcja ekranu pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('pole', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: „interakcja”, zapytanie: 'sys_id='+sysid });

    Przykładowy kod zdarzenia:

    // funkcja ekranu pop 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(); // Dla zmiany związanej ze zdarzeniem var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: „zdarzenie”, zapytanie: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm ({ entity: „zdarzenie”, zapytanie: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }

Jeśli w CRM istnieją informacje o rozmówcy, a z tym kontaktem zostało już otwarte nowe zdarzenie, aplikacja otwiera trwające zdarzenie

Jeśli informacje o rozmówcy nie istnieją w CRM, aplikacja otwiera nowe zdarzenie

Jeśli informacje o rozmówcy istnieją w CRM, aplikacja otwiera nowy incydent z wstępnie wypełnionymi szczegółami

Przegląd

W tym przypadku użycia opisano proces dodania dodatkowej kolumny do tabeli ServiceNow - webexcc_imp_activity i utworzenia sn_openframe_phone_log podczas instalacji łącznika Webex CC for ServiceNow CRM.

Domyślnie tabela zawiera pewne pola i wartości spoza pola systemowego.

Możesz tworzyć więcej zmiennych specyficznych dla biznesu (zmienne CAD) w projektancie przepływów WebexCC i dodać zmienne CAD do dziennika aktywności po połączeniu ServiceNow, a także utrwalić je w danych tabeli aktywności po połączeniu.

Jest to tylko dokumentacja referencyjna - i pokazuje, jak to zrobić dla przykładowej zmiennej CAD o nazwie Customer Name, która przechowuje nazwę klienta w systemie IVR i publikuje ją na stronie ServiceNow.

Oczekuje się, że deweloperzy partner + klient ServiceNow skonfigurują tę konfigurację i nią zarządzają, ponieważ jest to dostosowanie do istniejącego łącznika.

Firma Cisco udostępnia tylko techniki dotyczące sposobu dostosowywania i przedłużania łącznika.

Zgodnie z tym artykułem zespół Cisco zatwierdził obsługę dodawania zmiennej CAD do dziennika aktywności i tabeli aktywności za pomocą opisanej poniżej techniki:

Dodaj kolumnę do aktywności WebexCC IMP

  1. Edytuj tabelę w wersji dla programistów ServiceNow.

  2. Przejdź do filtru Navigator i wyszukaj studio.

    Wybierz Centrum kontaktowe Webex

    lub

  3. Wybierz tabelę Aktywność WebexCC IMP

  4. Dodaj nową kolumnę, na przykład CustomerName

Dodaj kolumnę do dziennika telefonu

  1. Edytuj tabelę dzienników telefonu.

  2. Dodaj nową kolumnę, na przykład CustomerName.

Mapa przekształcenia aktywności WebexCC

Dodaj nową kolumnę, na przykład mapowanie pól CustomerName .

Spersonalizuj kolumny listy

Zgodnie z zaleceniem usługi Teraz zmień akcję Wybór z utwórz na zignoruj.

Konfigurowanie listy dzienników telefonu

Przejdź do uwzględniania skryptu

Dodaj tylko jedną linię webexcc.u_customername=actInfo.CustomerName do propUtils.

Przykładowy skrypt

Zobacz wiersz: webexcc.u_customername=actInfo.CustomerName; z komentarzem wspierającym.

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=użytkownik.sys_id;//powrót użytkownika.sys_id; // else // zwrot null; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; }, setWebexcctable : funkcja () { 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.⦅_ph_37⦆ =actInfo.queuename; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallTime; webexcc.activitydate =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Ta linia jest Dodana — aby przechwycić ją w dzienniku aktywności webexcc.u_customername=actInfo.nazwa_klienta; sys_id=webexcc.insert(); //Activities in Incident record; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id- Suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } zwrot sys_id; }, typ: 'propUtils' });

Tworzenie zmiennej CAD w Projektancie przepływów

Dodaj zmienną CAD do układu pulpitu

Przykład

"CadName1:SnowField1,CadName2:SnowField2" CadName1 jest CustomerName SnowField1 jest również używany jako CustomerName, który jest częścią przykładowego showen scirpt powyżej "actInfo.CustomerName".

Zrzuty ekranu demonstracyjnego

Wyświetl nowo dodaną zmienną CAD w tabeli aktywności WebexCC.

Utwórz zmienną CAD dla Projektanta przepływów

Pilny charakter zdarzenia

Wpływ zdarzenia

Aktualizacja skryptu Usługa teraz

Aktualizacje skryptu obejmują

  1. Przejdź do nawigatora filtrów i wyszukaj skrypt zawiera

    Wybierz opcję Skrypt zawiera w obszarze Interfejs użytkownika systemu.

  2. Filtruj Nazwę za pomocą propUtils.

  3. Zmień metodę UserGetSysId w polu Script .

    Bieżący skrypt:

    Identyfikator użytkownikaGetSysId: 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=użytkownik.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; },

    Nowy przykładowy kod zdarzenia:

    Identyfikator użytkownikaGetSysId: funkcja () { var opened_for; var sysidlist = {}; var user = nowy GlideRecordSecure ("sys_user"); user.addQuery(this.getParameter('pole'),this.getParameter('wartość')); user.query(); if(user.next()) { opened_for= użytkownik.sys_id;//powrót użytkownika.sys_id; var inc = nowy 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= 'Połączenie odebrane z '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },

Zmiana metody na stronach interfejsu użytkownika
  1. Przejdź do aplikacji Filter Navigator i wyszukaj strony interfejsu użytkownika.

    Wybierz opcję Strony interfejsu użytkownika w obszarze Interfejs użytkownika systemu.

  2. Odfiltruj strony interfejsu użytkownika za pomocą nazwy i wyszukaj agentdesktop.

  3. Zmień funkcję ekranu w polu skryptu.

    Bieżąca funkcja:

    // funkcja ekranu pop screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('pole', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: „interakcja”, zapytanie: 'sys_id='+sysid }); }

    Przykładowy kod zdarzenia:

    // screen pop function screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefon'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: „zdarzenie”, zapytanie: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm ({ entity: „zdarzenie”, zapytanie: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }

Jeśli informacje o rozmówcy istnieją w CRM i nie ma nowego lub trwającego zdarzenia, aplikacja otwiera nowe zdarzenie

Zmień kod w ServiceNow

Dodaj nowe kolumny do tabeli Aktywność WebexCC IMP

Otwórz tabelę Aktywność WebexCC IMP

Dodaj nową kolumnę - InteractionsNumber

Dodaj nową kolumnę - IncidentNumber

Kliknij Aktualizuj.

Dodaj nowe kolumny do tabeli Dziennik telefonu

Otwórz tabelę Dziennik telefonu

Dodaj nową kolumnę - InteractionsNumber

Dodaj nową kolumnę - IncidentNumber

Mapa przekształcenia aktywności WebexCC

Otwórz mapę przekształceń z poziomu nawigatora filtrów

Kliknij WebexCC Activity TransformMap

Dodaj nowy — dla mapy numerów interakcji

Dodaj nowy — dla mapy numerów incydentów

Kliknij opcję Aktualizuj.

Zmiany w skrypcie obejmują

  1. Przejdź do filtrowania nawigatora i wyszukaj „skrypt zawiera”.

    Wybierz pozycję Skrypt obejmuje w obszarze Interfejs użytkownika systemu.

  2. Filtruj Nazwę za pomocą propUtils.

  3. Zmień metodę setWebexcctable.

    Nowy przykładowy kod zdarzenia:

    setWebexcctable: funkcja () { 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 in Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; usuń actInfo['interaction_sys_id']; usuń 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','Zamknięte'); inte.work_notes='Aktualizuj stan na zamknięty.'; 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.-webexcc.u_queuename =actInfo.kolejka; 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=inicjacja; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } powrót sys_id; },

Zmiany metody na stronach interfejsu użytkownika

  1. Przejdź do filtrowania Navigator i wyszukaj strony interfejsu użytkownika

    Wybierz opcję Strony interfejsu użytkownika w obszarze Interfejs użytkownika systemu.

  2. Odfiltruj strony interfejsu użytkownika za pomocą nazwy i wyszukaj agentdesktop.

  3. Zmień funkcję nowActivities i screenpop w skrypcie.

    Bieżąca funkcja:

    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); }

    Przykładowy kod zdarzenia:

    function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != undefined) { var sysObjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = nowy 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('pole', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: „zdarzenie”, zapytanie: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm ({ entity: „zdarzenie”, zapytanie: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); } 

Wyniki po aktualizacji

Poniższe dostosowania dotyczą wersji 1.0.5 i poniżej. Aby uzyskać dostosowania do nowszych wersji 1.0.7 i nowszych, wykonaj powyższe kroki.

Personalizacja nr 1 – Dodaj niestandardowe reguły biznesowe dla przypadków użycia przepływu połączeń

Tworzenie nowego rekordu incydentów dla każdego połączenia

Dla każdego nowego połączenia z łącznikiem WebexCC CRM w ServiceNow utwórz nowy rekord incydentów.

  1. Wyszukaj reguły biznesowe w nawigatorze filtrów

  2. Kliknij przycisk Nowy.

    Przykładowy kod odniesienia:

    function customcti() { var url = null; nazwa var = 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; jeśli (widok == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && nazwa != null && nazwa != '') { userID = UserGetSysId("name", nazwa); } 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; } odpowiedź = url; return url; } funkcja UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(pole, wartość); user.query(); if (user.next()) zwróci użytkownika.sys_id; else zwróć null; }

    Przykładowa konfiguracja reguły biznesowej

  3. Włącz dzwonienie Klienta

    Przetwarzanie integracji telefonii komputerowej (CTI) w przypadku incydentu jest oznaczone jako Prawda.

  4. Zaktualizuj adres URL screenpop przy użyciu niestandardowej reguły CTI " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

Przykład

Nazwa sysparm_cti_rule=nazwa , gdzie 'nazwa' to nazwa funkcji ma być wywoływana dla przetwarzania CTI zamiast używać skryptu domyślnego.

Zdefiniuj funkcję w sys_script pozycji oznaczonej jako klient dzwoniący.

Jeśli musisz wstawić, zaktualizować lub usunąć jakiekolwiek rekordy GlideRecord(y) w tej funkcji, zadzwoń do osobnej funkcji z połączeniem nieklienckim, aby wykonać aktualizacje.

Aby skrypt mógł być wywoływany przez klienta, należy zaznaczyć pole wyboru z możliwością wywołania przez klienta w formularzu wyświetlanym po sys_script wyświetleniu wpisu.

Pole wyboru, z którym można nawiązać połączenie przez klienta, domyślnie nie jest wyświetlane. Aby wyświetlić, należy zmodyfikować pola wyświetlane w formularzu za pomocą ikony koła zębatego i mechanizmu wiadra szlamowego.

Materiały referencyjne

Personalizacja nr 2 – Dodaj zmienną CAD w tabeli aktywności Webex Contact Center

Przegląd

W tym artykule opisano proces dodawania dodatkowej kolumny do tabeli ServiceNow - webexcc_activity która jest tworzona podczas instalacji Webex CC for ServiceNow CRM Connector.

Domyślnie tabela zawiera pola i wartości systemowe znajdujące się poza ramką.

Możesz potencjalnie utworzyć więcej zmiennych specyficznych dla biznesu (zmiennych CAD) w projektancie przepływów WebexCC i dodać te zmienne CAD do dziennika aktywności po połączeniuServiceNow i zachować je w danych tabeli aktywności po połączeniu .

  • Jest to tylko dokumentacja referencyjna i pokazuje, jak to zrobić dla przykładowej zmiennej CAD o nazwie Customer Name, która przechowuje nazwę klienta w systemie IVR i publikuje ją na stronie ServiceNow.

  • Deweloperzy partnera + klienta ServiceNow skonfigurują tę konfigurację i będą nią zarządzać, ponieważ jest to dostosowanie do istniejącego łącznika.

  • Firma Cisco udostępni tylko techniki dotyczące dostosowywania i rozszerzania łącznika.

  • Począwszy od tego artykułu zespół firmy Cisco zatwierdził obsługę dodawania zmiennej CAD do dziennika aktywności i tabeli aktywności za pomocą opisanej poniżej techniki.

Dodaj kolumnę do aktywności WebexCC
  1. Edytuj tabelę w wersji dla programistów ServiceNow.

  2. Przejdź do Studio > Webex Contact Center.

  3. Wybierz tabelę Aktywność WebexCC .

  4. Na przykład CustomerName.

  5. Wybierz układ listy dla aktywności WebexCC.

Tworzenie nowego skryptu obejmuje

Ten krok nie jest wymagany, jeśli używasz kodu XML Update Set — do wartości propUtils należy dodać tylko jedną linię „webexcc.u_customername=actInfo.CustomerName”.

Przykładowy skrypt

Zobacz wiersz z:webexcc.u_customername=actInfo.CustomerName; z komentarzem wspierającym.

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 : funkcja () { 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.⦅_ph_37⦆ =actInfo.queuename; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallTime; webexcc.activitydate =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Ta linia jest Dodana — aby przechwycić ją w dzienniku aktywności webexcc.u_customername=actInfo.nazwa_klienta; sys_id=webexcc.insert(); // Czynności dotyczące rekordu zdarzenia; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id- Suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(ciąg aktorski), null, 2); inc.comments =jsonPretty; inc.update(); } } } zwrot sys_id; }, typ: 'propUtils2' });
Edytuj stronę interfejsu użytkownika przy użyciu nowej nazwy skryptu

Tworzenie zmiennej CAD w Projektancie przepływów

Dodaj zmienną CAD do układu pulpitu

Zrzuty ekranu demonstracyjnego

Wyświetl nowo dodaną zmienną CAD w tabeli aktywności WebexCC.