Wymagania wstępne

Obecnie ta funkcja ma zastosowanie tylko do agentów.

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

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

W przypadku wystąpień deweloperskich zalecamy wykonanie kroków opisanych w przewodniku po wystąpieniach dla programistów.

Jeśli posiadasz instancję licencjonowaną dla przedsiębiorstwa, postępuj zgodnie ze wskazówkami dotyczącymi instancji licencjonowanych dla przedsiębiorstwa.

Nie zalecamy mieszania aplikacji licencjonowanej dla przedsiębiorstwa z wystąpieniami piaskownicy deweloperów.

W poniższych sekcjach opisano kroki, aby zainstalować łącznik ServiceNow dla wystąpień deweloperów.

1

Zaloguj się do konta portalu deweloperów ServiceNow i otwórz konsolę administracyjną .

2

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

3

W wystąpieniu programisty w polu Nawigator filtrów w lewym górnym rogu okna przejdź do pozycji Wtyczki.

4

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

5

Kliknij przycisk Instaluj , aby zainstalować wtyczkę Openframe.

6

W oknie dialogowym Aktywuj wtyczkę kliknij przycisk Aktywuj.

7

Po zakończeniu aktywacji wtyczki kliknij przycisk Zamknij i odśwież formularz w oknie dialogowym Aktywacja wtyczki .

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 System Update Set XML dostępny w repozytorium github w tej lokalizacji : 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 przejdź do pozycji Zestawy aktualizacji systemu> zestawy aktualizacji do zatwierdzenia .

3

Kliknij łącze Importuj zestaw aktualizacji z XML .

4

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

Zestaw aktualizacji pojawi się na liście Pobrane zestawy aktualizacji i będzie w stanie Załadowano .
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 przycisk Podgląd zestawu aktualizacji, aby sprawdzić, czy zestaw aktualizacji nie występuje.

7

Kliknij przycisk Zamknij w oknie dialogowym Podgląd zestawu aktualizacji po zakończeniu podglądu.

8

Kliknij przycisk Zatwierdź zestaw aktualizacji.

9

Kliknij przycisk Zamknij w oknie dialogowym Zatwierdzenie zestawu aktualizacji po zakończeniu zatwierdzania zestawu aktualizacji.

1

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

2

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

3

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

4

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

5

Kliknij przycisk Aktualizuj , aby zapisać zmiany.

6

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

Na stronie Właściwości systemu kliknij pozycję 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 pozycji Grupy w obszarze Zabezpieczenia systemu.

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

  3. Kliknij przycisk Edycja.

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

  5. Kliknij przycisk Zapisz.

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

1

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

2

Kliknij przycisk Nowy.

3

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

  • Nazwa: Webex Contact Center Desktop

  • Tytuł: Webex Contact Center

  • Szerokość: 550 (zalecana)

  • Wysokość: 600 (zalecane)

4

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

5

(Opcjonalnie) Wybierz grupy użytkowników/agentów, do których ma zostać przypisana konfiguracja.

6

Kliknij przycisk Wyślij. Adres URL zostanie wyświetlony jako łącze.

7

Przed próbą użycia telefonu OpenFrame upewnij się, że przesłałeś 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 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 centrum kontaktowego Webex.

4

Na pasku nawigacyjnym portalu zarządzania wybierz pozycję Provisioning > Desktop Layout.

5

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

6

Przekaż plik JSON układu pulpitu ServiceNow.

7

Kliknij przycisk Zapisz , aby zapisać konfigurację.

Teraz można uruchomić program Webex Contact Center Desktop w konsoli ServiceNow.

8

W polu Nawigator filtrów przejdź do obszaru roboczego Service Operations.

Strona główna ServiceNow z Webex Contact Center Agent Desktop zintegrowana z ServiceNow.

W poniższych sekcjach opisano kroki, aby zainstalować łącznik ServiceNow dla licencjonowanych wystąpień przedsiębiorstwa.

1

Zaloguj się do konta portalu deweloperów ServiceNow i otwórz konsolę administracyjną .

2

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

3

W wystąpieniu programisty w polu Nawigator filtrów w lewym górnym rogu okna przejdź do pozycji Wtyczki.

4

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

5

Kliknij przycisk Instaluj , aby zainstalować wtyczkę Openframe.

6

W oknie dialogowym Aktywuj wtyczkę kliknij przycisk Aktywuj.

7

Po zakończeniu aktywacji wtyczki kliknij przycisk Zamknij i odśwież formularz w oknie dialogowym Aktywacja wtyczki .

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 Webex właściwości Contact Center są widoczne:

3

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

4

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

5

Kliknij przycisk Aktualizuj , aby zapisać zmiany.

6

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

  1. Na stronie Właściwości systemu kliknij pozycję 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 pozycji Grupy w obszarze Zabezpieczenia systemu.

  2. Kliknij przycisk 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 OpenFrame > Configurations.

2

Kliknij przycisk Nowy.

3

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

  • Nazwa: Webex Contact Center Desktop

  • Tytuł: Webex Contact Center

  • Szerokość: 550 (zalecana)

  • Wysokość: 600 (zalecane)

4

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

5

(Opcjonalnie) Wybierz grupy użytkowników/agentów, do których ma zostać przypisana konfiguracja.

6

Kliknij przycisk Wyślij. Adres URL zostanie wyświetlony jako łącze.

7

W polu Nawigator filtrów przejdź do obszaru roboczego Service Operations.

Strona główna ServiceNow z Webex Contact Center Agent Desktop zintegrowana z ServiceNow.

8

(Opcjonalnie) Na liście Grupa użytkowników przenieś grupy użytkowników, które mogą uzyskiwać dostęp do programu Webex Contact Center Desktop, z pozycji Dostępne na Wybrane.

9

Przed próbą użycia telefonu OpenFrame upewnij się, że przesłałeś 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 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 centrum kontaktowego Webex.

4

Na pasku nawigacyjnym portalu zarządzania wybierz pozycję Provisioning > Desktop Layout.

5

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

6

Przekaż plik JSON układu pulpitu ServiceNow.

7

Kliknij przycisk Zapisz , aby zapisać konfigurację.

Teraz można uruchomić program Webex Contact Center Desktop w konsoli ServiceNow.

8

W polu Nawigator filtrów przejdź do obszaru roboczego Service Operations.

Strona główna ServiceNow z Webex Contact Center Agent Desktop zintegrowana z ServiceNow.

1

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

2

Kliknij prawym przyciskiem myszy pole dzwoniącego i kliknij Konfiguruj słownik.

3

Dodaj atrybuty oddzielone przecinkami"ref_contributions=show_phone,.

Teraz można rozpocząć korzystanie z programu Webex Contact Center Desktop w konsoli ServiceNow.

4

W polu Nawigator filtrów przejdź do obszaru roboczego Service Operations.

Strona główna ServiceNow z Webex Contact Center Agent Desktop zintegrowana z ServiceNow.

Agent Desktop w konsoli ServiceNow

Przed nawiązaniem połączenia wychodzącego upewnij się, że zostały wykonane następujące czynności:

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

  • Włącz funkcję ANI wybierania wychodzącego dla profilu agenta.

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

Więcej informacji można znaleźć w rozdziale Inicjowanie obsługi administracyjnej Cisco Webex Contact Center Podręczniku konfiguracji i administracji.

W polu Nawigator filtrów przejdź do obszaru roboczego Service Operations.

Strona główna ServiceNow z Webex Contact Center Agent Desktop zintegrowana z ServiceNow.

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

Omówienie

W tym artykule omówiono kilka sposobów dostosowywania reguł biznesowych dla łącznika programu CRM ServiceNow.This article covers several ways to customize your business rules for the ServiceNow CRM connector. Zawiera szczegółowe informacje, w jaki sposób można dostosować przypadki użycia na podstawie reguł biznesowych, które są specyficzne dla ServiceNow.

Klient musi samodzielnie zarządzać tymi przypadkami użycia w usłudze ServiceNow.The customer must self manage these use cases on ServiceNow. Konfiguracja jest specyficzna dla ServiceNow, a nie Webex oprogramowania lub wiedzy Contact Center.

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

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

Poniższe sekcje zawierają szczegółowe informacje na temat konfigurowania, włączania i zarządzania widżetem Akcje dla wystąpień deweloperskich i korporacyjnych.

Zatwierdź widżet Aktualizacja zestawu czynności

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

Aby skonfigurować widżet Akcje dla wystąpień deweloperów, pobierz najnowszy plik System Update Set XML dostępny w repozytorium github pod tą lokalizacją: 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 Akcje, zobacz kroki od 2 do 9 w temacie Zatwierdź zestaw aktualizacji.

Włącz widżet Czynności

Użyj właściwości isWidgetDisplayEnabled , aby włączyć widżet Akcje. Nie wolno modyfikować wartości tej właściwości w sekcji bez głowy niestandardowego układu pulpitu. Właściwość jest zawsze ustawiona na false w sekcji bez głowy niestandardowego układu pulpitu. Wartość właściwości należy aktualizować 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.
  • Skojarz obiekty CRM — kliknij opcję Skojarz z rekordami działań, aby dodać do rekordu działania obiekty CRM, takie jak typ połączenia (przychodzące lub wychodzące), obiekt połączenia, notatki dotyczące połączeń itp.
  • Zarządzaj zdarzeniami — kliknij Utwórz zdarzenie. Zostanie utworzone nowe zdarzenie ze wstępnie wypełnionymi szczegółami osoby dzwoniącej. Możesz wprowadzić wymagane aktualizacje zdarzenia. Typ rekordu można modyfikować z incydentu na przypadek, moduł HR itd. zgodnie z własnymi wymaganiami. Aby zmienić typ rekordu, zmodyfikuj wartość właściwości typeOfRecord w konfiguracji widżetu Akcje. Na przykład:
    { "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" } } ] }
  • Dodaj notatki z połączenia na żywo — możesz przechwycić dodatkowe informacje o połączeniu w obszarze tekstowym i podsumować połączenie. Te notatki można zobaczyć jako notatki połączenia w rekordzie aktywności.

Zmiana kodu w ServiceNow

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

    Wybierz dołączone skrypty w obszarze Interfejs użytkownika systemu.

  2. Przefiltruj nazwę i wyszukaj propUtils.

  3. Zmień metodę UserGetSysId w Skrypcie.

    Aktualne:

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

    Nowy przykładowy kod zdarzenia:

    UserGetSysId: function () { var opened_for; //Zmiany związane z incydentami 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='telefon'; inc.short_description='Połączenie odebrane z '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interakcja'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; 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 nawigatora filtrów i wyszukaj stronę interfejsu użytkownika.

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

  2. Przefiltruj nazwę i wyszukaj AgentDesktop.

  3. Zmień Screenpop w skrypcie klienta.

    Aktualna funkcja:

    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('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });

    Przykładowy kod zdarzenia:

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

Jeśli informacje o dzwoniącym znajdują się w programie CRM i z tym kontaktem otwarto już nowe zdarzenie, aplikacja otworzy zdarzenie w toku

Jeśli informacje o dzwoniącym nie istnieją w programie CRM, aplikacja otworzy nowe zdarzenie

Jeśli informacje o dzwoniącym istnieją w programie CRM, aplikacja otworzy nowe zdarzenie ze wstępnie wypełnionymi szczegółami

Omówienie

Ten przypadek użycia opisuje szczegółowo proces dodawania dodatkowej kolumny do tabeli ServiceNow — webexcc_imp_activity i tworzenia sn_openframe_phone_log po zainstalowaniu łącznika programu CRM Webex CC for ServiceNow.

Domyślnie tabela zawiera pewne gotowe pola i wartości systemowe.

Można utworzyć więcej zmiennych specyficznych dla biznesu (zmiennych CAD) wewnątrz projektanta WebexCC Flow i dodać zmienne CAD w dzienniku aktywności po połączeniu ServiceNow, a także utrwalić to 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 Nazwa klienta, która przechowuje nazwę klienta w IVR i publikuje ją w ServiceNow.

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

Firma Cisco udostępnia jedynie techniki dostosowywania i rozszerzania złącza.

W tym artykule zespół firmy Cisco potwierdził obsługę dodawania zmiennych CAD do dziennika aktywności i tabeli aktywności przy użyciu techniki opisanej poniżej:

Dodaj kolumnę do aktywności WebexCC IMP

  1. Edytuj tabelę w wersji deweloperskiej ServiceNow.

  2. Przejdź do nawigatora filtrów i wyszukaj studio.

    Wybierz Webex Contact Center

    lub

  3. Wybierz ikonę Aktywność WebexCC IMP stół

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

Dodaj kolumnę do dziennika telefonu

  1. Edytuj tabelę dziennika telefonu.

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

Mapa przekształcania aktywności WebexCC

Dodaj nową kolumnę, na przykład nazwa_klienta Mapowanie pól.

Personalizowanie kolumn listy

Zgodnie z zaleceniami usługi zmień akcję Wybór z utwórz na ignoruj.

Konfigurowanie listy dzienników telefonu

Przejdź do Dołącz skrypt

Dodawanie tylko jednego wiersza webexcc.u_customername=actInfo.CustomerName Do propUtils.

Przykładowy skrypt

Zobacz linię: 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=user.sys_id;//return user.sys_id; else // return null; var grInt = new GlideRecord('interakcja'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); powrót sysid; }, 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; Ten wiersz jest dodawany, aby przechwycić go w dzienniku aktywności webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Działania w rejestrze incydentów; 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(); } } } powrót sys_id; }, wpisz: 'propUtils' });

Tworzenie zmiennej CAD w projektancie Flow

Dodawanie zmiennej CAD do układu pulpitu

Przykład.

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

Zrzuty ekranu demonstracyjne

Wyświetl nowo dodaną zmienną CAD w tabeli Aktywność WebexCC.

Tworzenie zmiennej CAD dla programu Flow Designer

Pilność incydentu

Wpływ incydentu

Aktualizacja skryptu usługi Teraz

Aktualizacje skryptu obejmują:

  1. Przejdź do nawigatora filtrów i wyszukaj dołączenia skryptu

    Wybierz opcję Dołącza skrypt w obszarze Interfejs użytkownika systemu.

  2. Przefiltruj nazwę za pomocą propUtils.

  3. Zmień metodę UserGetSysId W polu Skrypt .

    Aktualny skrypt:

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

    Nowy przykładowy kod zdarzenia:

    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='telefon'; 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('interakcja'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; 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 nawigatora filtrów i wyszukaj strony interfejsu użytkownika.

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

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

  3. Zmień Screenpop W polu skryptu.

    Aktualna funkcja:

    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('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: '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.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('field', 'phone'); 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: '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)); }

Jeśli informacje o dzwoniącym istnieją w programie CRM i nie ma nowego ani nietrwającego zdarzenia, aplikacja otworzy nowe zdarzenie

Zmień kod na ServiceNow

Dodaj nowe kolumny do Aktywność WebexCC IMP stół

Otwórz okno Aktywność WebexCC IMP stół

Dodawanie nowej kolumny — InteractionsNumber

Dodawanie nowej kolumny — IncidentNumber

Kliknij Aktualizuj .

Dodaj nowe kolumny do Dziennik telefonu stół

Otwórz okno Dziennik telefonu stół

Dodawanie nowej kolumny — InteractionsNumber

Dodawanie nowej kolumny — IncidentNumber

Mapa przekształcania aktywności WebexCC

Otwórz Przekształć mapę Z nawigatora filtrów

Kliknij na WebexCC Activity TransformMap

Dodaj nowy — dla mapy numerów interakcji

Dodaj nowy — dla mapy numerów zdarzeń

Kliknij przycisk Aktualizuj.

Zmiany w skrypcie obejmują:

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

    Wybierz dołączone skrypty w obszarze Interfejs użytkownika systemu.

  2. Filtruj nazwę za pomocą propUtils.

  3. Zmień metodę setWebexcctable.

    Nowy przykładowy kod dla zdarzenia:

    setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; 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','Closed Complete'); inte.work_notes='Update State to closed.'; inte.update(); } } if( incsysid!= null && incsysid != undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } powrót sys_id; },

Zmiany metod na stronach interfejsu użytkownika

  1. Przejdź do nawigatora filtrów i wyszukaj Strony interfejsu użytkownika

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

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

  3. Zmień nowDziałania i screenpop W skrypcie.

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

Wyniki po aktualizacji

Poniższe dostosowania dotyczą wersji 1.0.5 i starszych. Aby uzyskać informacje na temat dostosowań dla nowszych wersji 1.0.7 i nowszych, wykonaj powyższe kroki.

Dostosowywanie # 1 - Dodawanie niestandardowych reguł biznesowych dla przypadków użycia przepływu połączeń

Tworzenie nowego rekordu zdarzenia dla każdego połączenia

Dla każdego nowego połączenia do łącznika WebexCC CRM w ServiceNow utwórz nowy rekord zdarzenia.

  1. Wyszukiwanie reguł biznesowych w nawigatorze filtrów

  2. Kliknij przycisk Nowy.

    Przykładowy kod w celach informacyjnych:

    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("name", imię i nazwisko); } 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; } answer = url; zwrotny adres URL; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }

    Przykładowa konfiguracja reguły biznesowej

  3. Włącz wywoływanie klienta

    Przetwarzanie CTI (Computer Telephony Integration) dla incydentu jest oznaczone jako Prawda.

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

Przykład.

sysparm_cti_rule =nazwa , gdzie 'name' jest nazwą funkcji , ma być wywoływana dla CTI Przetwarzanie , a nie używanie skryptu domyślnego.

Zdefiniuj funkcję w sys_script wpisie oznaczonym jako wywoływany przezklienta.

Jeśli musisz wstawić, zaktualizować lub usunąć jakiekolwiek GlideRecords w funkcji, wywołaj oddzielną niekliencką funkcję wywoływania, aby wykonać aktualizacje.

Aby umożliwić wywoływanie skryptu przez klienta, należy zaznaczyć pole wyboru client-callable w formularzu wyświetlanym po wyświetleniu wpisu sys_script.

Pole wyboru klient-callable nie jest domyślnie wyświetlane. Aby wyświetlić, należy zmodyfikować pola wyświetlane w formularzu za pomocą ikony koła zębatego i mechanizmu wiadra błota pośniegowego.

Odwołania

Dostosowywanie # 2 - Dodawanie zmiennej CAD w tabeli aktywności centrum kontaktowego Webex

Omówienie

Ten artykuł zawiera szczegółowe informacje na temat procesu dodawania dodatkowej kolumny do tabeli ServiceNow — webexcc_activity, która jest tworzona po zainstalowaniu łącznika programu CRM Webex CC for ServiceNow.

Domyślnie tabela zawiera gotowe pola systemowe i wartości.

Można potencjalnie utworzyć więcej zmiennych specyficznych dla biznesu (zmiennych CAD) wewnątrz projektanta WebexCC Flow i dodać te zmienne CAD w dzienniku aktywności po wywołaniu ServiceNowi utrwalić to 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 Nazwa klienta, która przechowuje nazwę klienta w IVR i publikuje ją w ServiceNow.

  • Programiści partner + klient ServiceNow skonfigurują tę konfigurację i będą nią zarządzać, ponieważ jest to dostosowanie do istniejącego łącznika.

  • Firma Cisco dostarczy jedynie techniki dostosowywania i rozszerzania łącznika.

  • W tym artykule zespół firmy Cisco potwierdził obsługę dodawania zmiennych CAD do dziennika aktywności i tabeli aktywności przy użyciu techniki opisanej poniżej.

Dodawanie kolumny do aktywności WebexCC
  1. Edytuj tabelę w wersji deweloperskiej ServiceNow.

  2. Przejdź do Centrum kontaktowego Studio >Webex.

  3. Wybierz tabelę aktywności WebexCC.

  4. Na przykład CustomerName.

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

Tworzenie nowego skryptu zawiera

Ten krok nie jest wymagany w przypadku korzystania z zestawu aktualizacji XML — do propUtils należy dodać tylko jeden wiersz "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: 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; // Ten wiersz jest dodawany - aby przechwycić go w dzienniku aktywności webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Działania w rejestrze incydentów; 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(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } powrót sys_id; }, wpisz: 'propUtils2' });
Edytowanie strony interfejsu użytkownika przy użyciu nowej nazwy skryptu

Tworzenie zmiennej CAD w projektancie Flow

Dodawanie zmiennej CAD do układu pulpitu

Zrzuty ekranu demonstracyjne

Wyświetl nowo dodaną zmienną CAD w tabeli Aktywność WebexCC.