Integracja Webex Contact Center z ServiceNow (wersja 1 — Legacy)
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.
|
| 3 |
W instancji programisty przejdź do opcji Wtyczki w polu N awigator filtr ów w lewym górnym rogu okna.
|
| 4 |
Wyszukaj wtyczkę Openframe, która ma tytuł Open frame. Może być konieczne przewijanie listy.
|
| 5 |
Kliknij Zainstaluj, aby zainstalować wtyczkę Openframe. |
| 6 |
W oknie dialogowym Aktywuj wtycz kę kliknij przycisk Aktywuj.
|
| 7 |
Po zakończeniu aktywacji wtyczki kliknij przycisk Zamknij i przeładuj formular z w oknie dialogowym Aktywacja wtycz ki.
|
| 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.
|
| 1 |
Nazwa pliku: WebExcc-ServiceNow-Update-Setv (X) .xml
|
| 2 |
W instancji ServiceNow w polu N awigator filtrów w lewym górnym rogu okna przejdź do opcji Zest .
|
| 3 |
Kliknij łącze Importuj zestaw aktualizacji z XML.
|
| 4 |
Kliknij Wybierz plik, wybierz plik XML zestawu aktualizacji systemu, a następnie kliknij polecenie Prześlij.
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.
|
| 6 |
W prawym górnym rogu okna kliknij Podgląd zestawu aktualizacji, aby sprawdzić zestaw aktualizacji pod kątem problemów.
|
| 7 |
Po zakończeniu podglądu kliknij przycisk Zamknij w oknie dialogowym Aktualizuj zestaw podglądu.
|
| 8 |
Kliknij polec enie Zatwierdź zestaw aktualizacji.
|
| 9 |
Kliknij przycisk Zamkni j w oknie dialogo wym Zatwierdzenie zestawu aktualizacji po zakończeniu zatwierdzania zest awu aktualizacji.
|
| 1 |
W polu N awigator 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 są widoczne następujące właściwości Webex Contact Center:
|
| 3 |
Kliknij agentdesktop_url, aby otworzyć stronę Właściwość agentdesktop_url systemu. |
| 4 |
W polu Wartość wprowadź adres URL pulpitu Webex Contact Center zgodnie z regionem działania.
|
| 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.
|
| 7 |
(Opcjonalnie) Dodaj grupy użytkowników w następujący sposób:
|
| 1 |
W polu N awigator filtr ów przejdź do opcji .
|
| 2 |
Kliknij Nowy.
|
| 3 |
Wprowadź następujące właściwości adresu URL:
|
| 4 |
Po prawej stronie pola adresu URL kliknij przycisk Zablo ku j i dodaj
|
| 5 |
(Opcjonalnie) Wybierz grupę użytkowników/agentów, aby przypisać konfigurację.
|
| 6 |
Kliknij Prześlij. Adres URL jest wyświetlany jako łącze.
|
| 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 |
|
| 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 .
|
| 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
|
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.
|
| 3 |
W instancji programisty przejdź do opcji Wtyczki w polu N awigator filtr ów w lewym górnym rogu okna.
|
| 4 |
Wyszukaj wtyczkę Openframe, która ma tytuł Open frame. Może być konieczne przewijanie listy.
|
| 5 |
Kliknij Zainstaluj, aby zainstalować wtyczkę Openframe. |
| 6 |
W oknie dialogowym Aktywuj wtycz kę kliknij przycisk Aktywuj.
|
| 7 |
Po zakończeniu aktywacji wtyczki kliknij przycisk Zamknij i przeładuj formular z w oknie dialogowym Aktywacja wtycz ki.
|
| 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.
|
Instancje posiadające licencje korporacyjne mogą zainstalować aplikację Webex Contact Center bezpośrednio ze Sklepu ServiceNow.
|
|
| 1 |
W polu N awigator filtr ów w lewym górnym rogu okna wprowadź
|
| 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:
|
| 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.
|
| 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.
|
| 7 |
(Opcjonalnie) Dodaj grupy użytkowników w następujący sposób:
|
| 1 |
W polu N awigator filtr ów przejdź do opcji .
|
| 2 |
Kliknij Nowy.
|
| 3 |
Wprowadź następujące właściwości adresu URL:
|
| 4 |
Po prawej stronie pola adresu URL kliknij przycisk Zablo ku j i dodaj
|
| 5 |
(Opcjonalnie) Wybierz grupę użytkowników/agentów, aby przypisać konfigurację.
|
| 6 |
Kliknij Prześlij. Adres URL jest wyświetlany jako łącze.
|
| 7 |
W polu N awigator filtr ów przejdź do Obszar
|
| 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 |
|
| 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 .
|
| 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
|
| 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.
|
| 3 |
Dodaj atrybuty
Możesz teraz rozpocząć korzystanie z pulpitu Webex Contact Center w konsoli ServiceNow. |
| 4 |
W polu N awigator filtr ów przejdź do Obszar
|
- 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
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-
Przejdź do nawigatora filtrów i wyszukaj
skrypty zawierające
.Wybierz opcję Skry pt zawiera w obszarze Interfejs systemu.
-
Filtruj nazwę i wyszukaj
PropuTils
. -
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); },
-
Przejdź do nawigatora filtrów i wyszukaj
UI page.Wybierz strony interfejsu użytkownika w obszarze System UI.
-
Filtruj nazwę i wyszukaj
agentdesktop
. -
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
-
Edytuj tabelę w wersji programistycznej ServiceNow.

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

Wybierz
Webex
Contact Center
albo



-
Wybierz tabelę
aktywności IMP WebExCC

-
Dodaj nową kolumnę, na przykład
CustomerName


Dodaj kolumnę do dziennika telefonu
-
Edytuj tabelę dziennika telefonu.


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

Mapa transformacji aktywności WebExCC

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


Personalizacja kolumn listy

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


Skonfiguruj listę dzienników telefonów

Przejdź do opcji Skrypt Include
Dodaj tylko jedną linię webexcc. u_customername=ActInfo.CustomerName do PropuTils
.



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

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".

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



Utwórz zmienną CAD dla Flow Designer
Pilny incydent
Wpływ incydentu

Aktualizacja skryptu Service Now
Aktualizacje skryptu zawiera
-
Przejdź do nawigatora filtrów i wyszukaj
script includesWybierz opcję S krypt zawiera w obszarze Inter fejs systemu.

-
Filtruj nazwę za pomocą
propUtils.
-
Zmień metodę
UserGetSySid w polu S
krypt.
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; },
-
Przejdź do nawigatora filtrów i wyszukaj
UI pages.Wybierz opcję Strony interfejsu użytkownika w obszarze System UI.

-
Filtruj strony interfej su użytkownika za pomocą nazwy i wyszukaj
agentdesktop.
-
Zmień funkcję
screenpop
w polu skryptu.
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


Zmień kod na ServiceNow
Dodawanie nowych kolumn do tabeli aktywności IMP WebExCC
Otwórz tabelę aktywności IMP WebExCC





Kliknij Aktualizuj.


Dodawanie nowych kolumn do tabeli Dziennik telefonu
Otwórz tabelę Dziennik telefonu





Mapa transformacji aktywności WebExCC
Otwórz mapę transformacji
z nawigatora filtrów


Kliknij na WebExCC Activity TransformMap




Kliknij Aktualizuj.

Zmiany w skrypcie zawiera
-
Przejdź do nawigatora filtrów i wyszukaj „skrypt zawiera”.
Wybierz opcję Skry pt zawiera w obszarze Interfejs systemu.

-
Filtruj nazwę za pomocą
Proputils
.
-
Zmień metodę
setWeb
Excctable.
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
-
Przejdź do nawigatora filtrów i wyszukaj
strony interfejsu użytkownika
Wybierz opcję Strony interfejsu użytkownika w obszarze System UI.

-
Filtruj strony interfejsu użytkownika za pomocą nazwy i wyszukaj
agentdesktop.
-
Zmień funkcję
nowActivities i screenpop
w skrypcie.
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

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łączeniaDla każdego nowego połączenia do złącza WebExCC CRM w ServiceNow utwórz nowy rekord incydentów.
Wyszukaj reguły biznesowe w nawigatorze filtrów

Kliknij 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", 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

Włącz możliwość wywołania klienta

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


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.
Dostosowanie nr 2 - Dodaj zmienną CAD w tabeli aktywności Webex Contact Center
PrzeglądW 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.
Edytuj tabelę w wersji programistycznej ServiceNow.

Przejdź do .



Wybierz Tab ela aktywności WebExCC.

Na przykład CustomerName.


Wybierz Układ listy dla aktywności WebExCC.

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.



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ą skryptu
Tworzenie zmiennej CAD w projektancie przepływu
Dodawanie zmiennej CAD do układu pulpitu
Zrzuty ekranu demonstracyjnego
Wyświetl nowo dodaną zmienną CAD w tabeli aktywności WebExCC.

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











































