Zintegruj Webex Contact Center z ServiceNow
Po zintegrowaniu Webex Contact Center z konsolą programu CRM ServiceNow można uruchomić Webex programu Contact Center Desktop z poziomu programu ServiceNow.
Wymagania wstępne
Przed zintegrowaniem Webex Contact Center z konsolą programu CRM ServiceNow 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 oraz portalu zarządzania centrum kontaktowego Webex. Adresy URL portalu zarządzania są specyficzne dla danego regionu.
-
Ameryka Północna: https://portal.wxcc-us1.cisco.com
-
Wielka Brytania: https://portal.wxcc-eu1.cisco.com
-
Japonia: https://portal-v2.wxcc-jp1.cisco.com
-
Singapur: https://portal-v2.wxcc-sg1.cisco.com
-
-
Agent z dostępem do pulpitu. Adres URL pulpitu jest specyficzny dla danego regionu.
-
Ameryka Północna: https://desktop.wxcc-us1.cisco.com
-
Wielka Brytania: https://desktop.wxcc-eu1.cisco.com
-
Japonia: https://desktop.wxcc-jp1.cisco.com
-
Singapur: https://desktop.wxcc-sg1.cisco.com
-
-
Dostęp agenta do następującej domeny dodanej do listy dozwolonych zasad zabezpieczeń:
-
*.service-now.com
Aby uzyskać więcej informacji na temat definiowania listy dozwolonych, zobacz artykuł Ustawienia zabezpieczeń dla Webex Contact Center.
-
-
Konto portalu deweloperów ServiceNow.A ServiceNow developer portal account. Aby utworzyć konto, przejdź do portalu deweloperów ServiceNow pod adresem https://developer.servicenow.com/dev.do i kliknij pozycję Zarejestruj się i rozpocznij tworzenie.
-
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)
-
ServiceNow Contact Center Desktop Layout (JSON)
-
- Wersje ServiceNow obsługiwane przez Webex Contact Center to Vancouver, Utah, Tokya, Washington i Xanadu. Aby uzyskać więcej informacji, zobacz Webex Integracja centrum kontaktowego z usługą ServiceNow.
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 |
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 |
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 przejdź do . |
2 |
Kliknij przycisk Nowy. |
3 |
Wprowadź następujące właściwości adresu URL:
|
4 |
Po prawej stronie pola Adres URL kliknij przycisk Zablokuj i dodaj |
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 . |
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 . |
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. |
Wystąpienia z licencjami korporacyjnymi mogą instalować aplikację Webex Contact Center bezpośrednio ze sklepu ServiceNow.
Pobierz i zainstaluj pakiet Webex Contact Center ze sklepu ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
W polu Nawigator filtrów w lewym górnym rogu okna wpisz |
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.
|
7 |
(Opcjonalnie) Dodaj grupy użytkowników w następujący sposób:
|
1 |
W polu Nawigator filtrów przejdź do . |
2 |
Kliknij przycisk Nowy. |
3 |
Wprowadź następujące właściwości adresu URL:
|
4 |
Po prawej stronie pola adresu URL kliknij przycisk Zablokuj i dodaj |
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 . |
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 . |
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 . |
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 Teraz można rozpocząć korzystanie z programu Webex Contact Center Desktop w konsoli ServiceNow. |
4 |
W polu Nawigator filtrów przejdź do . |
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 .
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-
Przejdź do nawigatora filtrów i wyszukaj
Skrypt zawiera
.Wybierz dołączone skrypty w obszarze Interfejs użytkownika systemu.
-
Przefiltruj nazwę i wyszukaj
propUtils
. -
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); },
-
Przejdź do nawigatora filtrów i wyszukaj
stronę
interfejsu użytkownika.Wybierz strony interfejsu użytkownika w obszarze Interfejs użytkownika systemu.
-
Przefiltruj nazwę i wyszukaj
AgentDesktop
. -
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
-
Edytuj tabelę w wersji deweloperskiej ServiceNow.
-
Przejdź do nawigatora filtrów i wyszukaj studio.
Wybierz
Webex Contact Center
lub
-
Wybierz ikonę
Aktywność WebexCC IMP
stół -
Dodaj nową kolumnę, na przykład
nazwa_klienta
Dodaj kolumnę do dziennika telefonu
-
Edytuj tabelę dziennika telefonu.
-
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ść incydentuWpływ incydentu
Aktualizacja skryptu usługi Teraz
Aktualizacje skryptu obejmują:
-
Przejdź do nawigatora filtrów i wyszukaj
dołączenia skryptu
Wybierz opcję Dołącza skrypt w obszarze Interfejs użytkownika systemu.
-
Przefiltruj nazwę za pomocą
propUtils
. -
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; },
-
Przejdź do nawigatora filtrów i wyszukaj
strony
interfejsu użytkownika.Wybierz opcję Strony interfejsu użytkownika w obszarze Interfejs użytkownika systemu.
-
Przefiltruj strony interfejsu użytkownika za pomocą nazwy i wyszukaj agentdesktop
.
-
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 IMPstół Dodawanie nowej kolumny — InteractionsNumber Dodawanie nowej kolumny — IncidentNumber
Kliknij Aktualizuj .
Dodaj nowe kolumny do Dziennik telefonu
stół
Otwórz okno Dziennik telefonu
stół
Mapa przekształcania aktywności WebexCC
Otwórz Przekształć mapę
Z nawigatora filtrów
Kliknij na WebexCC Activity TransformMap
Kliknij przycisk Aktualizuj.
Zmiany w skrypcie obejmują:
-
Przejdź do nawigatora filtrów i wyszukaj "skrypt zawiera".
Wybierz dołączone skrypty w obszarze Interfejs użytkownika systemu.
-
Filtruj nazwę za pomocą
propUtils
. -
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
-
Przejdź do nawigatora filtrów i wyszukaj
Strony interfejsu użytkownika
Wybierz opcję Strony interfejsu użytkownika w obszarze Interfejs użytkownika systemu.
-
Przefiltruj strony interfejsu użytkownika za pomocą nazwy i wyszukaj agentdesktop
.
-
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łączeniaDla każdego nowego połączenia do łącznika WebexCC CRM w ServiceNow utwórz nowy rekord zdarzenia.
Wyszukiwanie reguł biznesowych w nawigatorze filtrów
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("nazwa", 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; } odpowiedź = url; zwracany adres URL; } function UserGetSysId(pole, wartość) { var user = new GlideRecord("sys_user"); user.addQuery(pole, wartość); user.query(); if (user.next()) return user.sys_id; else return null; }
Przykładowa konfiguracja reguły biznesowej
Włącz możliwość wywołania klienta
Przetwarzanie CTI (Computer Telephony Integration) dla zdarzenia jest oznaczone jako Prawda.
Zaktualizuj adres URL screenpop za pomocą niestandardowej reguły CTI" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =nazwa , gdzie 'nazwa' jest nazwą funkcji , która ma być wywoływana dla CTI Przetwarzanie , a nie używanie domyślnego skryptu.
Zdefiniuj funkcję we wpisie sys_script oznaczonym jako klient callable.
Jeśli konieczne jest wstawienie, zaktualizowanie lub usunięcie jakichkolwiek rekordów GlideRecords w funkcji, wywołaj oddzielną funkcję niewywoływaną przez klienta, aby wykonać aktualizacje.
Aby skrypt był możliwy do wywołania przez klienta, należy zaznaczyć pole wyboru Klient-callable w formularzu, który jest wyświetlany po wyświetleniu wpisu sys_script.
Pole wyboru z możliwością wywołania klienta nie jest wyświetlane domyślnie. Aby wyświetlić, musisz zmodyfikować pola, które są wyświetlane w formularzu, za pomocą ikony koła zębatego i mechanizmu wiadra z błotem pośniegowym.
Dostosowanie # 2 - Dodaj zmienną CAD w tabeli aktywności Webex Contact Center
OmówienieTen artykuł zawiera szczegółowe informacje na temat procesu dodawania dodatkowej kolumny do tabeli ServiceNow — webexcc_activity, która jest tworzona podczas instalacji łącznika Webex CC for ServiceNow CRM.
Domyślnie tabela zawiera gotowe pola i wartości systemowe.
Potencjalnie można utworzyć więcej zmiennych specyficznych dla firmy (zmiennych CAD) w projektancie WebexCC Flow i dodać te zmienne CAD w dzienniku aktywności po wywołaniu ServiceNow, a następnie zachować je w danych tabeli aktywności po połączeniu.
-
Jest to tylko dokumentacja referencyjna i pokazuje, jak to zrobić dla przykładowej zmiennej CAD o nazwie 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 tylko techniki dostosowywania i rozszerzania łącznika.
-
W tym artykule zespół Cisco zweryfikował obsługę dodawania zmiennych CAD do dziennika aktywności i tabeli aktywności przy użyciu techniki opisanej poniżej.
Edytuj tabelę w deweloperskiej wersji ServiceNow.
Przejdź do
Webex.Wybierz pozycję WebexCC Activity table (Tabela aktywności ).
Na przykład CustomerName.
Wybierz opcję Układ listy dla działania WebexCC.
Ten krok nie jest wymagany, jeśli używasz XML Zestawu aktualizacji - Tylko jedna linia jest wymagana do dodania "webexcc.u_customername=actInfo.CustomerName" do propUtils.
Przykładowy skrypt
Zobacz wiersz z:webexcc.u_customername=actInfo.CustomerName; z komentarzem wspierającym.
var propUtils2 = Klasa.create(); propUtils2.prototype = Obiekt.extendsObject(globalny. 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; // Ta linia jest dodana - aby przechwycić ją w dzienniku aktywności webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Działania związane z rejestrem incydentów; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("telefon", 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(działający ciąg),null,2); inc.comments =jsonPretty; inc.update(); } } } zwrócić sys_id; }, wpisz: 'propUtils2' });
Edytowanie strony interfejsu użytkownika przy użyciu nowej nazwy skryptuTworzenie zmiennej CAD w Flow Designer
Dodawanie zmiennej CAD do układu pulpitu
Zrzuty ekranu z wersji demonstracyjnej
Wyświetl nowo dodaną zmienną CAD w tabeli Aktywność WebexCC.