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
Obecnie ta funkcja ma zastosowanie tylko do agentów.
Przed zintegrowaniem Webex Contact Center z konsolą programu CRM ServiceNow upewnij się, że masz następujące elementy:
-
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("name", imię i nazwisko); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; zwrotny adres URL; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }
Przykładowa konfiguracja reguły biznesowej
Włącz wywoływanie klienta
Przetwarzanie CTI (Computer Telephony Integration) dla incydentu jest oznaczone jako Prawda.
Zaktualizuj adres URL ekranu przy użyciu niestandardowej reguły CTI"cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =nazwa , gdzie 'name' jest nazwą funkcji , ma być wywoływana dla CTI Przetwarzanie , a nie używanie skryptu domyślnego.
Zdefiniuj funkcję w sys_script wpisie oznaczonym jako wywoływany przezklienta.
Jeśli musisz wstawić, zaktualizować lub usunąć jakiekolwiek GlideRecords w funkcji, wywołaj oddzielną niekliencką funkcję wywoływania, aby wykonać aktualizacje.
Aby umożliwić wywoływanie skryptu przez klienta, należy zaznaczyć pole wyboru client-callable w formularzu wyświetlanym po wyświetleniu wpisu sys_script.
Pole wyboru klient-callable nie jest domyślnie wyświetlane. Aby wyświetlić, należy zmodyfikować pola wyświetlane w formularzu za pomocą ikony koła zębatego i mechanizmu wiadra błota pośniegowego.
Dostosowywanie # 2 - Dodawanie zmiennej CAD w tabeli aktywności centrum kontaktowego Webex
OmówienieTen artykuł zawiera szczegółowe informacje na temat procesu dodawania dodatkowej kolumny do tabeli ServiceNow — webexcc_activity, która jest tworzona po zainstalowaniu łącznika programu CRM Webex CC for ServiceNow.
Domyślnie tabela zawiera gotowe pola systemowe i wartości.
Można potencjalnie utworzyć więcej zmiennych specyficznych dla biznesu (zmiennych CAD) wewnątrz projektanta WebexCC Flow i dodać te zmienne CAD w dzienniku aktywności po wywołaniu ServiceNowi utrwalić to w danych tabeli aktywności po połączeniu.
-
Jest to tylko dokumentacja referencyjna - i pokazuje, jak to zrobić dla przykładowej zmiennej CAD o nazwie Nazwa klienta, która przechowuje nazwę klienta w IVR i publikuje ją w ServiceNow.
-
Programiści partner + klient ServiceNow skonfigurują tę konfigurację i będą nią zarządzać, ponieważ jest to dostosowanie do istniejącego łącznika.
-
Firma Cisco dostarczy jedynie techniki dostosowywania i rozszerzania łącznika.
-
W tym artykule zespół firmy Cisco potwierdził obsługę dodawania zmiennych CAD do dziennika aktywności i tabeli aktywności przy użyciu techniki opisanej poniżej.
Edytuj tabelę w wersji deweloperskiej ServiceNow.
Przejdź do Centrum
Webex.Wybierz tabelę aktywności WebexCC.
Na przykład CustomerName.
Wybierz Układ listy dla aktywności WebexCC.
Ten krok nie jest wymagany w przypadku korzystania z zestawu aktualizacji XML — do propUtils należy dodać tylko jeden wiersz "webexcc.u_customername=actInfo.CustomerName".
Przykładowy skrypt
Zobacz wiersz z:webexcc.u_customername=actInfo.CustomerName; z komentarzem wspierającym.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_ webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Ten wiersz jest dodawany - aby przechwycić go w dzienniku aktywności webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Działania w rejestrze incydentów; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } powrót sys_id; }, wpisz: 'propUtils2' });
Edytowanie strony interfejsu użytkownika przy użyciu nowej nazwy skryptuTworzenie zmiennej CAD w projektancie Flow
Dodawanie zmiennej CAD do układu pulpitu
Zrzuty ekranu demonstracyjne
Wyświetl nowo dodaną zmienną CAD w tabeli Aktywność WebexCC.