Integracja Webex Contact Center z ServiceNow (wersja 1 — Legacy)

list-menuOpinia?
Po zintegrowaniu Webex Contact Center z konsolą ServiceNow CRM można uruchomić Webex Contact Center Desktop z poziomu ServiceNow.

Wymagania wstępne

Minimalny obsługiwany rozmiar interfejsu softphone to 500px. Każda wartość niższa niż 500 pikseli może powodować problemy z wyświetlaniem lub funkcjonalnością.

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

  • Dostęp do Webex Contact Center.

  • Dostęp administratora do centrum sterowania pod adresem https://admin.webex.com i Centrum kontaktowego Webex. Management Portal Adresy URL Management Portal są specyficzne dla Twojego regionu.

  • Agent z dostępem do pulpitu. Adres URL pulpitu jest specyficzny dla danego regionu.

  • Dostęp agenta do następującej domeny, która jest dodana na liście dozwolonych zasad zabezpieczeń treści:

    • *.service-now.com

    Aby uzyskać więcej informacji na temat definiowania listy dozwolonych, zobacz artykuł Ustawienia zabezpieczeń dla Webex Contact Center.

  • Konto portalu programisty ServiceNow. Aby utworzyć konto, przejdź do portalu programistów ServiceNow pod adresem https://developer.servicenow.com/dev.do i kliknij Zarejestruj się i Rozpocznij budowanie.

  • Dostęp do następujących plików pod adresem https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:

    • Zestaw aktualizacji ServiceNow (XML)

    • Układ pulpitu ServiceNow Contact Center (JSON)

  • Edycje ServiceNow obsługiwane przez Webex Contact Center to Vancouver, Utah, Tokya, Waszyngton i Xanadu. Aby uzyskać więcej informacji, zobacz Integracja Webex Contact Center z ServiceNow.

Postępuj zgodnie z jedną z dwóch poniższych metod:

  • W przypadku wystąpień programistycznych zalecamy wykonanie czynności opisanych w przewodniku po wystąpieniu programisty.
  • Jeśli posiadasz instancję licencjonowaną przez firmę, postępuj zgodnie z wytycznymi dotyczącymi instancji licencjonowanych przez przedsiębiorstwo.

Nie zalecamy mieszania aplikacji licencjonowanej dla przedsiębiorstw z instancjami piaskownicy dla programistów.

Kanały cyfrowe, takie jak czat i e-mail, nie są obsługiwane przez złącza CRM. Dotyczy to wszystkich integracji CRM wykorzystujących te złącza. Prosimy o odpowiednie zaplanowanie procesów wdrażania i zaangażowania klientów.

W poniższych sekcjach opisano kroki instalacji złącza ServiceNow dla wystąpień programistycznych.

1

Zaloguj się na swoje konto portalu programistycznego ServiceNow i otwórz konsolę administr acyjną.

2

W obszarze Moje wystąpienie menu Kon to kliknij przycisk Rozpocz nij budowanie.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

W instancji programisty przejdź do opcji Wtyczki w polu N awigator filtr ów w lewym górnym rogu okna.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Wyszukaj wtyczkę Openframe, która ma tytuł Open frame. Może być konieczne przewijanie listy.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Kliknij Zainstaluj, aby zainstalować wtyczkę Openframe.

6

W oknie dialogowym Aktywuj wtycz kę kliknij przycisk Aktywuj.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Po zakończeniu aktywacji wtyczki kliknij przycisk Zamknij i przeładuj formular z w oknie dialogowym Aktywacja wtycz ki.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

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

9

Kliknij opcję Konfiguracje i upewnij się, że wtyczka OpenFrame pojawi się na liście Kon figuracje OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

Pobierz najnowszy plik XML zestawu aktualizacji systemu 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

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

W instancji ServiceNow w polu N awigator filtrów w lewym górnym rogu okna przejdź do opcji Zest awy aktualizacji systemu > Zaktualizuj zestawy do zatwierdzenia.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

Kliknij łącze Importuj zestaw aktualizacji z XML.

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

4

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

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

Zestaw aktualizacji pojawia się na liście Pobrane zestawy aktualizacji i znajduje się w stanie W czy tane.
5

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

ServiceNow developer portal retrieved update sets list for an updated file.

6

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

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

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

ServiceNow developer portal with the update set preview success notification.

8

Kliknij polec enie Zatwierdź zestaw aktualizacji.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

Kliknij przycisk Zamkni j w oknie dialogo wym Zatwierdzenie zestawu aktualizacji po zakończeniu zatwierdzania zest awu aktualizacji.

ServiceNow developer portal with the update set commit success notification.

1

W polu N awigator filtr ów w lewym górnym rogu okna wpisz sys_properties.listi naciśnij klawisz enter.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

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

ServiceNow developer instance system properties page.

3

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

4

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

ServiceNow developer instance system property details for agentdesktop_url.

5

Kliknij przycisk Aktualiz uj, aby zapisać zmiany.

6

(Opcjonalnie) Aby zmienić nazwę tabeli aktywności, należy edytować właściwości webexccactivity table zgodnie z wymaganiami.

Na stronie Właściwości systemu kliknij webex ccactivitytable.

Zmień pole Wartość zgodnie z wymaganiami.

ServiceNow developer instance system property details for webexactivitytable.

7

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

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

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Utwórz nową grupę użytkowników lub użyj istniejącej.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Kliknij Edytuj.

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

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

  5. Kliknij przycisk Zapisz.

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

    ServiceNow developer instance group page with user roles assigned.

1

W polu N awigator filtr ów przejdź do opcji OpenFrame > Konfiguracje.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Kliknij Nowy.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

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

  • Nazwa: Webex Contact Center Desktop

  • Tytuł: Webex Contact Center

  • Szerokość: 550 (zalecane)

  • Wysokość: 600 (zalecane)

4

Po prawej stronie pola adresu URL kliknij przycisk Zablo ku j i dodaj agentdesktop.dojako adres URL. (Wykonaj ten krok, aby wskazać konfigurację na stronę interfejsu użytkownika)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Opcjonalnie) Wybierz grupę użytkowników/agentów, aby przypisać konfigurację.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Kliknij Prześlij. Adres URL jest wyświetlany jako łącze.

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

7

Przed podjęciem próby użycia telefonu OpenFrame upewnij się, że przesłałeś niestandardowy plik JSON układu pulpitu ServiceNow do Centrum kontaktowego Webex. Management Portal Aby uzyskać więcej informacji, zobacz Konfigu rowanie układu pulpitu ServiceNow w Centrum kontaktów Webex.

1

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

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

W razie potrzeby zaktualizuj właściwości w pliku Układ pulpitu.

3

Przejdź do Centrum Kontaktowego Webex. Management Portal

4

Na pasku Management Portal nawigacyjnym wybierz polecenie Provisioning > Układ pul pitu.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

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

6

Prześlij plik ServiceNow Desktop Layout JSON.

7

Kliknij przycisk Zapisz, aby zapisać konfigurację.

Możesz teraz uruchomić Webex Contact Center Desktop w konsoli ServiceNow.

8

W polu N awigator filtr ów przejdź do Obszar roboczy operacji serwisowych.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

W poniższych sekcjach opisano kroki instalacji złącza ServiceNow dla licencjonowanych instancji korporacyjnych.

1

Zaloguj się na swoje konto portalu programistycznego ServiceNow i otwórz konsolę administr acyjną.

2

W obszarze Moje wystąpienie menu Kon to kliknij przycisk Rozpocz nij budowanie.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

W instancji programisty przejdź do opcji Wtyczki w polu N awigator filtr ów w lewym górnym rogu okna.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Wyszukaj wtyczkę Openframe, która ma tytuł Open frame. Może być konieczne przewijanie listy.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Kliknij Zainstaluj, aby zainstalować wtyczkę Openframe.

6

W oknie dialogowym Aktywuj wtycz kę kliknij przycisk Aktywuj.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Po zakończeniu aktywacji wtyczki kliknij przycisk Zamknij i przeładuj formular z w oknie dialogowym Aktywacja wtycz ki.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

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

9

Kliknij opcję Konfiguracje i upewnij się, że wtyczka OpenFrame pojawi się na liście Kon figuracje OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

W polu N awigator filtr ów w lewym górnym rogu okna wprowadź sys_properties.list.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

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

ServiceNow developer instance system properties page results.

3

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

4

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

ServiceNow developer instance system property details page for agentdesktop_url.

5

Kliknij przycisk Aktualiz uj, aby zapisać zmiany.

6

(Opcjonalnie) Aby zmienić nazwę tabeli aktywności, należy edytować właściwości x_caci_webexcc.webexccactiv itytable zgodnie z wymaganiami.

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

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

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

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

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

  1. W polu N awigator filtr ów w lewym górnym rogu okna przejdź do Grupy w obszarze Zabez pieczenia systemu.

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. Kliknij 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

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

W polu N awigator filtr ów przejdź do opcji OpenFrame > Konfiguracje.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Kliknij Nowy.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

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

  • Nazwa: Webex Contact Center Desktop

  • Tytuł: Webex Contact Center

  • Szerokość: 550 (zalecane)

  • Wysokość: 600 (zalecane)

4

Po prawej stronie pola adresu URL kliknij przycisk Zablo ku j i dodaj x_caci_webexcc_agentdesktop.dojako adres URL. (Wykonaj ten krok, aby wskazać konfigurację na stronę interfejsu użytkownika)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Opcjonalnie) Wybierz grupę użytkowników/agentów, aby przypisać konfigurację.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Kliknij Prześlij. Adres URL jest wyświetlany jako łącze.

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

W polu N awigator filtr ów przejdź do Obszar roboczy operacji serwisowych.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

8

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

9

Przed podjęciem próby użycia telefonu OpenFrame upewnij się, że przesłałeś niestandardowy plik JSON układu pulpitu ServiceNow do Centrum kontaktowego Webex. Management Portal Aby uzyskać więcej informacji, zobacz Konfigu rowanie układu pulpitu ServiceNow w Centrum kontaktów Webex.

1

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

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

W razie potrzeby zaktualizuj właściwości w pliku Układ pulpitu.

3

Przejdź do Centrum Kontaktowego Webex. Management Portal

4

Na pasku Management Portal nawigacyjnym wybierz polecenie Provisioning > Układ pul pitu.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

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

6

Prześlij plik ServiceNow Desktop Layout JSON.

7

Kliknij przycisk Zapisz, aby zapisać konfigurację.

Możesz teraz uruchomić Webex Contact Center Desktop w konsoli ServiceNow.

8

W polu N awigator filtr ów przejdź do Obszar roboczy operacji serwisowych.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

1

W polu N awigator filtr ów przejdź do opcji Incydenty > Otwórz incydent.

2

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

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

Dodaj atrybuty “ref_contributions=show_phone,oddzielone przecinkami.

ServiceNow developer instance call incident window for a Directory Entry.

Możesz teraz rozpocząć korzystanie z pulpitu Webex Contact Center w konsoli ServiceNow.

4

W polu N awigator filtr ów przejdź do Obszar roboczy operacji serwisowych.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • Obsługujemy logowanie się Agent Desktop tylko przy użyciu złączy WebRTC dla Salesforce (SFDC) i Microsoft Dynamics (MS Dynamics).
  • Obecnie ta funkcja ma zastosowanie tylko do agentów.

Agent Desktopw ServiceNow Console

Przed wykonaniem połączeń zewnętrznych upewnij się, że wykonałeś następujące czynności:

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

  • Włącz Outdial ANI dla profilu agenta.

  • Ustaw zewnętrzne sterowanie ANI na odwzorowanie numeru wybierania do punktu wejścia.

Aby uzyskać więcej informacji, zobacz rozdział Przydzielanie w Przewodniku Cisco Webex Contact Centerkonfiguracji i administr acji.

W polu N awigator filtr ów przejdź do Obszar roboczy operacji serwisowych.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

Aby uzyskać informacje na temat korzystania z pulpitu, zobacz kartę Agent w pomocy Webex Contact Center.

Przegląd

W tym artykule omówiono kilka sposobów dostosowywania reguł biznesowych dla złącza ServiceNow CRM. Określa, w jaki sposób można dostosować przypadki użycia w oparciu o reguły biznesowe, które są specyficzne dla ServiceNow.

Klient musi samodzielnie zarządzać tymi przypadkami użycia w ServiceNow. Konfiguracja jest specyficzna dla ServiceNow, a nie oprogramowania lub specjalistycznej wiedzy Webex Contact Center.

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

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

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

Zatwierdź zestaw aktualizacji dla widżetu akcji

W przypadku licencjonowanych instancji korporacyjnych zainstaluj najnowszą aplikację Webex Contact Center ze sklepu Service Now.

Aby skonfigurować widżet Akcje dla wystąpień programisty, pobierz najnowszy plik XML zestawu aktualizacji systemu dostępny w repozytorium github w tej lokalizacji: 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 obszarze Zatwierdź zestaw aktualizacji.

Włącz widżet akcji

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 zaktualizować tylko w sekcji panelu niestandardowego układu pulpitu.

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

  • Zarządzaj rekordami aktywności — kliknij Wyświet l/edytuj rekord aktywności, aby wyświetlić listę rekordów aktywności powiązanych z dzw oniącym.
  • Skojarzenie obiektów CRM — kliknij przycisk Sko jarz z rekordami aktywności, aby dodać do rekord u aktywności obiekty CRM, takie jak typ połączenia (przychodzące lub wychodzące), obiekt wywołania, notatki połączeń itp.
  • Zarządzaj incydentami — kliknij przycisk Utwórz incydent. Tworzony jest nowy incydent z wstępnie wypełnionymi danymi dzwoniącego. Możesz wprowadzić wymagane aktualizacje incydentu. Możesz zmienić typ rekordu z incydentu do przypadku, modułu HR i tak dalej w zależności od wymagań. 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"
                      }
                    }
                  ]
                }
  • Dodawanie notatek o połączeniach na żywo — możesz przechwycić dodatkowe informacje o połączeniu w obszarze tekstowym i zakończyć połączenie. Możesz zobaczyć te notatki dodane jako notatki połączeń w rekordzie aktywności.

Zmiana kodu w ServiceNow

Skrypt zawiera zmiany
  1. Przejdź do nawigatora filtrów i wyszukaj skrypty zawierające.

    Wybierz opcję Skry pt zawiera w obszarze Interfejs systemu.

  2. Filtruj nazwę i wyszukaj PropuTils.

  3. Zmień metodę UserGetSySid w skrypcie.

    Bieżący:

    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 incydentu:

    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='Call Received From '+ 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 nawigatora filtrów i wyszukaj UI page.

    Wybierz strony interfejsu użytkownika w obszarze System UI.

  2. Filtruj nazwę i wyszukaj agentdesktop.

  3. Zmień funkcję screenpop w skrypcie klienta.

    Obecna 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 incydentu:

    // 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 istnieją w CRM, a za pomocą tego kontaktu został już otwarty nowy incydent, aplikacja otwiera incydent inprogress

Jeśli informacje o dzwoniącym nie istnieją w CRM, aplikacja otwiera nowy incydent

Jeśli informacje o dzwoniącym istnieją w CRM, aplikacja otwiera nowy incydent z wstępnie wypełnionymi danymi

Przegląd

Ten przypadek użycia szczegółowo opisuje proces dodawania dodatkowej kolumny do tabeli ServiceNow - webexcc_imp_activity i utworzenia sn_openframe_phone_log po zainstalowaniu Webex CC for ServiceNow CRM Connector.

Domyślnie tabela zawiera pewne pola systemowe i wartości poza pudełkiem.

Możesz utworzyć więcej zmiennych specyficznych dla biznesu (Zmienne CAD) wewnątrz projektanta WebExCC Flow i dodać zmienne CAD w dzienniku aktywności połączeń pocztowych ServiceNow, a także zachować to w danych tabeli aktywności po wywołaniu.

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

Oczekuje się, że programiści partner+Customer ServiceNow skonfigurują i zarządzają tą konfiguracją, ponieważ jest to dostosowanie do istniejącego złącza.

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

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

Dodaj kolumnę do aktywności IMP WebExCC

  1. Edytuj tabelę w wersji programistycznej ServiceNow.

    ServiceNow developer instance WebexCC IMP activity table.

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

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    Wybierz Webex Contact Center

    Studio app for ServiceNow with the Select Application window open.

    albo

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. Wybierz tabelę aktywności IMP WebExCC

    Studio app for ServiceNow WebexCC IMP Activity table.

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

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

Dodaj kolumnę do dziennika telefonu

  1. Edytuj tabelę dziennika telefonu.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

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

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

Mapa transformacji aktywności WebExCC

Studio app for ServiceNow WebexCC Activity Transform Map.

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

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

Personalizacja kolumn listy

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

Zgodnie z zaleceniami usługi Service Now zmień akcję Wybór z utworzenia na zignoruj.

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

Skonfiguruj listę dzienników telefonów

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

Przejdź do opcji Skrypt Include

Dodaj tylko jedną linię webexcc. u_customername=ActInfo.CustomerName do PropuTils.

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

Przykładowy skrypt

Zobacz linię: webexcc. u_customername=ActInfo.Customer Name; z komentarzem pomocniczym.

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('interaction');
                grInt.initialize();
                grInt.assigned_to= gs.getUserID();
                grInt.type= 'phone';
                grInt.opened_for= opened_for;
            var sysid=grInt.insert();
            return 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;
                 
                // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
                 
                sys_id=webexcc.insert();
 
                //Activities on 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();
     
                            }
                    }
            }  
            return sys_id;
       },
 
    type: 'propUtils'
});

Tworzenie zmiennej CAD w projektancie przepływu

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

Dodawanie zmiennej CAD do układu pulpitu

Przykład

"CadName1:SnowField1,CadName2:SnowField2"
 CadName1 is CustomerName
 SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Example source code for adding the CAD variable to the Desktop Layout.

Zrzuty ekranu demonstracyjnego

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

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

Utwórz zmienną CAD dla Flow Designer

Pilny incydent

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Wpływ incydentu

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Aktualizacja skryptu Service Now

Aktualizacje skryptu zawiera

  1. Przejdź do nawigatora filtrów i wyszukaj script includes

    Wybierz opcję S krypt zawiera w obszarze Inter fejs systemu.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtruj nazwę za pomocą propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Zmień metodę UserGetSySid w polu S krypt.

    ServiceNow developer instance Script Includes – propUtils details page.

    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 incydentu:

    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='Call Received From '+ 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 nawigatora filtrów i wyszukaj UI pages.

    Wybierz opcję Strony interfejsu użytkownika w obszarze System UI.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtruj strony interfej su użytkownika za pomocą nazwy i wyszukaj agentdesktop.

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. Zmień funkcję screenpop w polu skryptu.

    ServiceNow developer instance UI Page – agentdesktop details page.

    Obecna 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 incydentu:

    // 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 CRM i nie ma nowego lub niepostępowego incydentu, aplikacja otwiera nowy incydent

ServiceNow example of an incident.

ServiceNow example of an interaction.

Zmień kod na ServiceNow

Dodawanie nowych kolumn do tabeli aktywności IMP WebExCC

Otwórz tabelę aktywności IMP WebExCC

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Dodawanie nowej kolumny - InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

Dodawanie nowej kolumny - IncidentNumber

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

Kliknij Aktualizuj.

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

Dodawanie nowych kolumn do tabeli Dziennik telefonu

Otwórz tabelę Dziennik telefonu

ServiceNow developer instance Phone Log table.

Dodawanie nowej kolumny - InteractionsNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

Dodawanie nowej kolumny - IncidentNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

Mapa transformacji aktywności WebExCC

Otwórz mapę transformacji z nawigatora filtrów

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

Kliknij na WebExCC Activity TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Dodaj nowy - dla mapy numerów interakcji

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

Dodaj nowe - dla mapy numerów incydentów

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

Kliknij Aktualizuj.

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

Zmiany w skrypcie zawiera

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

    Wybierz opcję Skry pt zawiera w obszarze Interfejs systemu.

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. Filtruj nazwę za pomocą Proputils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. Zmień metodę setWeb Excctable.

    ServiceNow developer instance Script includes - propUtils page

    Nowy przykładowy kod dla incydentu:

    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'];
                    delete 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();
    
                    
                                
                }    
                return 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 System UI.

    ServiceNow developer instance filter navigator with search for ‘Ui page’

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

    ServiceNow developer instance UI Pages with Name filter applied to search.

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

    ServiceNow developer instance UI Page – agentdesktop.

    Obecna 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 incydentu:

    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

ServiceNow developer instance Phone Logs page.

Poniższe dostosowania dotyczą wersji 1.0.5 i nowszych. Aby dostosować nowsze wersje 1.0.7 i nowsze, wykonaj powyższe kroki.

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

Utwórz nowy rekord incydentów dla każdego połączenia

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

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

    ServiceNow developer instance Business Rules page header.
  2. Kliknij Nowy.

    ServiceNow developer instance Business Rule – New Record.

    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", name);                
                }
                if (userID == null && phone != null && phone != '') {
                    userID = UserGetSysId("phone", phone);
                }
     
                if (userID != null) {
                    if (fQuery.length > 0)
                        fQuery += "^";
                    fQuery += "caller_id=" + userID;
                }
                if (url == null) {
                    url = "incident.do?sys_id=-1";
                    if (fQuery != null)
                       url += "&sysparm_query=" + fQuery;
                }
                answer = url;
                return 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

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. Włącz możliwość wywołania klienta

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    Komputerowa integracja telefonii komputerowej (CTI) Processing For Incident jest oznaczona jako Praw da.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Zaktualizuj adres URL ekranu za pomocą niestandardowej reguły CTI "cti.do? sysparm_cti_rule=CreateIncident & = sysparm_caller_phone "

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
Przykład

sysparm_cti_rule=name, gdzie 'name' jest nazwą funkcji, ma być wywoływana dla Przetwarzania CTI zamiast używać domyśl nego skryptu.

Zdefiniuj funkcję we wpisie oznacz sys_scriptonym jako klient wywoławalny.

Jeśli musisz wstawić, zaktualizować lub usunąć dowolne GlideRecord (y) w funkcji, wywołaj oddzielną funkcję wywoławczą bez klienta, aby wykonać aktualizacje.

Aby skrypt był możliwy do wywołania przez klienta, należy zaznaczyć pole wyboru z możliwością wywołania przez klienta w formularzu wyświetlanym podczas wyświetlania wpisu. sys_script

Pole wyboru, które można wywołać przez klienta, nie jest wyświetlane domyślnie. Aby wyświetlić, należy zmodyfikować pola widoczne w formularzu za pomocą ikony koła zębatego i mechanizmu łyżki.

Referencje

Dostosowanie nr 2 - Dodaj zmienną CAD w tabeli aktywności Webex Contact Center

Przegląd

W tym artykule szczegółowo opisano proces dodawania dodatkowej kolumny do tabeli ServiceNow, webexcc_activity która jest tworzona po instalacji Webex CC dla ServiceNow CRM Connector.

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

Możesz potencjalnie utworzyć więcej zmiennych specyficznych dla biznesu (Zmienne CAD) w projektancie WebExCC Flow i dodać te zmienne CAD w dzienniku aktywności usługi ServiceNow po wywołaniu i utrzymywać je w danych tabeli aktywności po wywołaniu.

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

  • Programiści Partner+Customer ServiceNow skonfigurują i zarządzają tą konfiguracją, ponieważ jest to dostosowanie do istniejącego złącza.

  • Cisco zapewni tylko techniki dostosowywania i rozszerzania złącza.

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

Dodaj kolumnę do aktywności WebExCC
  1. Edytuj tabelę w wersji programistycznej ServiceNow.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Przejdź do Studia > Webex Contact Center.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. Wybierz Tab ela aktywności WebExCC.

    App Engine Studio WebexCC Activity table.
  4. Na przykład CustomerName.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

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

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Tworzenie nowego skryptu zawiera

Ten krok nie jest wymagany, jeśli używasz zestawu aktualizacji XML - Do dodania wymagana jest tylko jedna linia "webexcc. u_customername=ActInfo.CustomerName "do PropuT ils.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

Przykładowy skrypt

Zobacz linię z: webexcc. u_customername=ActInfo.Customer Name; z komentarzem pomocniczym.

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;
 
               // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
 
                sys_id=webexcc.insert();
  
                // Activities on 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(acting string),null,2);  
                                    inc.comments =jsonPretty;
                                inc.update();
                                 }
                    } 
            }    
            return sys_id;
       },
 
    type: 'propUtils2'
});
Edytuj stronę interfejsu użytkownika z nową nazwą skryptuApp Engine Studio agentdesktop UI page with new script name.

Tworzenie zmiennej CAD w projektancie przepływuWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Dodawanie zmiennej CAD do układu pulpituWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Zrzuty ekranu demonstracyjnego

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

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

Złącze CRM działa w oparciu o wersję widżetu określoną w układzie pulpitu JSON. Niezwykle ważne jest, aby upewnić się, że wersja widżetu w układzie pulpitu jest aktualizowana.

Administratorzy powinni upewnić się, że wszystkie układy pulpitu dla tego złącza CRM używają tej wersji widżetu. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.

  • Ostatnia aktualizacja ServiceNow— .1.0_v5.0.3.jsonServiceNow_Desktop_0. Od marca 2024 roku wersja pakietu wynosi 1.0.9
  • Ostatnia aktualizacja XML—WebExcc-ServiceNow-update-setv7-1-ActionsWidget.xml, czerwiec 2024

Czy ten artykuł był pomocny?
Czy ten artykuł był pomocny?