Integration von Webex Contact Center in ServiceNow (Version 1 – Vorgängerversion)
Voraussetzungen
Diese Funktion ist derzeit nur auf Agenten anwendbar.
Stellen Sie vor der Integration von Webex Contact Center in die ServiceNow-CRM-Konsole Folgendes sicher:
-
Zugriff auf das Webex Contact Center.
-
Administratorzugriff auf den Control Hub unter https://admin.webex.com und das Webex Contact Center Management Portal. Die URLs für das Management-Portal sind für Ihre Region spezifisch.
-
Nordamerika: https://portal.wxcc-us1.cisco.com
-
Vereinigtes Königreich: https://portal.wxcc-eu1.cisco.com
-
Singapur: https://portal-v2.wxcc-sg1.cisco.com
-
-
Ein Agent mit Zugriff auf den Desktop. Die URL für den Desktop ist spezifisch für Ihre Region.
-
Nordamerika: https://desktop.wxcc-us1.cisco.com
-
Vereinigtes Königreich: https://desktop.wxcc-eu1.cisco.com
-
Singapur: https://desktop.wxcc-sg1.cisco.com
-
-
Agent-Zugriff auf die folgende Domäne, die in der Liste erlaubte Content Security Policy Allowed List (Erlaubte Inhaltssicherheitsrichtlinie) hinzugefügt wurde:
-
*.service-now.com
Weitere Informationen zum Definieren der erlaubten Liste finden Sie im Artikel Sicherheitseinstellungen für Webex Contact Center.
-
-
Ein ServiceNow-Entwicklerportal-Account. Um einen Account zu erstellen, gehen Sie zum ServiceNow-Entwicklerportal unter https://developer.servicenow.com/dev.do und klicken Sie auf Anmelden und Gebäude starten.
-
Zugriff auf die folgenden Dateien unter https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow-Updatesatz (XML)
-
ServiceNow Contact Center-Desktoplayout (JSON)
-
- Die von Webex Contact Center unterstützten ServiceNow-Editionen sind Vancouver, Utah, Tokya, Washington und Xanadu. Weitere Informationen finden Sie unter Webex Contact Center-Integration mit ServiceNow.
Führen Sie eine der beiden folgenden Methoden aus:
Für Entwicklerinstanzen empfehlen wir, die Schritte im Handbuch für Entwicklerinstanzen zu befolgen.
Wenn Sie eine Instanz mit Unternehmenslizenz besitzen, befolgen Sie die Richtlinien für Instanzen mit Unternehmenslizenz.
Wir empfehlen nicht, die vom Unternehmen lizenzierte App mit Entwickler-Sandbox-Instanzen zu mischen.
In den folgenden Abschnitten werden die Schritte zum Installieren des ServiceNow-Connectors für Entwicklerinstanzen beschrieben.
1 |
Melden Sie sich bei Ihrem ServiceNow-Entwicklerportalkonto an und öffnen Sie die Administration -Konsole. |
2 |
Klicken Sie im Bereich Meine Instanz des Konto-Menüs auf Gebäude beginnen. |
3 |
Navigieren Sie in Ihrer Entwicklerinstanz im Feld Filter-Navigator oben links im Fenster zu Plugins. |
4 |
Suchen Sie nach dem Openframe-Plugin mit dem Titel Openframe. Möglicherweise müssen Sie durch die Liste blättern. |
5 |
Klicken Sie auf Installieren , um das Openframe-Plug-in zu installieren. |
6 |
Klicken Sie in der Dialogfeld auf Aktivieren. |
7 |
Wenn die Plugin-Aktivierung abgeschlossen ist, klicken Sie im Dialogfeld Plugin-Aktivierung auf Formular schließen und erneut laden . |
8 |
Um die Aktivierung des Plug-ins zu verifizieren, navigieren Sie im Filter Navigator-Feld oben links im Fenster zu OpenFrame. |
9 |
Klicken Sie auf Konfigurationen und stellen Sie sicher, dass das OpenFrame-Plugin in der Liste OpenFrame-Konfigurationen angezeigt wird. |
1 |
Laden Sie die neueste XML-Datei für das System-Update-Set herunter, die im Github-Repo verfügbar ist: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. Dateiname: webexcc-servicenow-update-setV(X).xml |
2 |
Navigieren Sie in Ihrer ServiceNow-Instanz im Feld Filter Navigator oben links im Fenster zu . |
3 |
Klicken Sie auf den Link Aktualisierung aus XML importieren . |
4 |
Klicken Sie auf Datei auswählen, wählen Sie die XML-Datei für das Systemaktualisierungsset und klicken Sie dann auf Hochladen.
Der Aktualisierungssatz wird in der Liste Abgerufene Aktualisierungssätze im Status Geladen angezeigt.
|
5 |
Klicken Sie in der Liste Abgerufene Updatesätze auf den Dateinamen des Updatesatzes (Link), um das Updateset zu öffnen. |
6 |
Klicken Sie oben rechts im Fenster auf Vorschau Aktualisierung eingestellt, um das Update auf Probleme zu überprüfen. |
7 |
Klicken Sie im Dialogfeld „Vorschau festlegen aktualisieren“ auf Schließen , sobald die Vorschau abgeschlossen ist. |
8 |
Klicken Sie auf Commit Update Set (Aktualisierungssatz). |
9 |
Klicken Sie im Dialogfeld Einspielen des Aktualisierungssatzes auf Schließen , sobald das Einspielen des Aktualisierungssatzes abgeschlossen ist. |
1 |
Geben Sie in das Feld Filter Navigator oben links im Fenster |
2 |
Sortieren Sie die Eigenschaften auf der Seite Systemeigenschaften nach dem aktualisierten Datum. Stellen Sie sicher, dass die folgenden Webex Contact Center-Eigenschaften angezeigt werden: |
3 |
Klicken Sie agentdesktop_url hier, um die Seite Systemeigenschaft zu agentdesktop_url öffnen. |
4 |
Geben Sie im Feld Wert die URL für den Webex Contact Center Desktop entsprechend der Einsatzregion ein.
|
5 |
Klicken Sie auf Aktualisieren , um die Änderungen zu speichern. |
6 |
(Optional) Um den Namen der Aktivitätstabelle zu ändern, bearbeiten Sie die webexccactivitytable Eigenschaften nach Bedarf. Klicken Sie auf der Seite Systemeigenschaften auf webexccactivitytable. Ändern Sie das Feld Wert nach Bedarf. |
7 |
(Optional) Fügen Sie Benutzergruppen wie folgt hinzu:
|
1 |
Navigieren Sie im Feld Navigator filtern zu |
2 |
Klicken Sie auf Neu. |
3 |
Geben Sie die folgenden Eigenschaften für die URL ein:
|
4 |
Klicken Sie rechts neben dem Feld URL auf die Schaltfläche Sperren und fügen Sie |
5 |
(Optional) Wählen Sie die Benutzer-/Agentengruppe(n) aus, um die Konfiguration zuzuweisen. |
6 |
Klicken Sie auf Senden. Der URL wird als Link angezeigt. |
7 |
Bevor Sie versuchen, das OpenFrame-Telefon zu verwenden, stellen Sie sicher, dass Sie die JSON-Datei für das benutzerdefinierte Desktop-Layout von ServiceNow in das Webex Contact Center-Verwaltungsportal hochladen. Weitere Informationen finden Sie unter Einrichten des ServiceNow-Desktoplayouts in Webex Contact Center. |
1 |
Laden Sie das Desktop-Layout für ServiceNow von https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow herunter. |
2 |
Aktualisieren Sie bei Bedarf die Eigenschaften in der Desktop-Layoutdatei. |
3 |
Gehen Sie zum Webex Contact Center-Verwaltungsportal . |
4 |
Wählen Sie in der Navigationsleiste des Management Portals aus. |
5 |
Klicken Sie auf Neues Layout und geben Sie die Details für das Desktop-Layout ein. |
6 |
Laden Sie die JSON-Datei für das ServiceNow-Desktop-Layout hoch. |
7 |
Klicken Sie auf Speichern, um die Konfiguration zu speichern. Sie können den Webex Contact Center-Desktop jetzt innerhalb der ServiceNow-Konsole starten. |
8 |
Navigieren Sie im Feld Filter-Navigator zu . |
In den folgenden Abschnitten werden die Schritte zum Installieren des ServiceNow-Connectors für lizenzierte Unternehmensinstanzen beschrieben.
1 |
Melden Sie sich bei Ihrem ServiceNow-Entwicklerportalkonto an und öffnen Sie die Administration -Konsole. |
2 |
Klicken Sie im Bereich Meine Instanz des Konto-Menüs auf Gebäude beginnen. |
3 |
Navigieren Sie in Ihrer Entwicklerinstanz im Feld Filter-Navigator oben links im Fenster zu Plugins. |
4 |
Suchen Sie nach dem Openframe-Plugin mit dem Titel Openframe. Möglicherweise müssen Sie durch die Liste blättern. |
5 |
Klicken Sie auf Installieren , um das Openframe-Plug-in zu installieren. |
6 |
Klicken Sie in der Dialogfeld auf Aktivieren. |
7 |
Wenn die Plugin-Aktivierung abgeschlossen ist, klicken Sie im Dialogfeld Plugin-Aktivierung auf Formular schließen und erneut laden . |
8 |
Um die Aktivierung des Plug-ins zu verifizieren, navigieren Sie im Filter Navigator-Feld oben links im Fenster zu OpenFrame. |
9 |
Klicken Sie auf Konfigurationen und stellen Sie sicher, dass das OpenFrame-Plugin in der Liste OpenFrame-Konfigurationen angezeigt wird. |
Instanzen mit Unternehmenslizenzen können die Webex Contact Center-Anwendung direkt aus dem ServiceNow-Store installieren.
Laden Sie das Webex Contact Center-Paket aus dem ServiceNow-Store herunter und installieren Sie es: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
Geben Sie im Feld Navigator filtern in der oberen linken Ecke des Fensters . |
2 |
Sortieren Sie die Eigenschaften auf der Seite Systemeigenschaften nach dem aktualisierten Datum. Stellen Sie sicher, dass die folgenden Webex Contact Center-Eigenschaften angezeigt werden: |
3 |
Klicken Sie agentdesktop_url hier, um die Seite Systemeigenschaft zu agentdesktop_url öffnen. |
4 |
Geben Sie im Feld Wert die URL für den Webex Contact Center Desktop entsprechend der Einsatzregion ein.
|
5 |
Klicken Sie auf Aktualisieren , um die Änderungen zu speichern. |
6 |
(Optional) Um den Namen der Aktivitätstabelle zu ändern, bearbeiten Sie die Eigenschaften x_caci_webexcc.webexccactivitytable nach Bedarf.
|
7 |
(Optional) Fügen Sie Benutzergruppen wie folgt hinzu:
|
1 |
Navigieren Sie im Feld Navigator filtern zu |
2 |
Klicken Sie auf Neu. |
3 |
Geben Sie die folgenden Eigenschaften für die URL ein:
|
4 |
Klicken Sie rechts neben dem Feld URL auf die Schaltfläche Sperren und fügen Sie |
5 |
(Optional) Wählen Sie die Benutzer-/Agentengruppe(n) aus, um die Konfiguration zuzuweisen. |
6 |
Klicken Sie auf Senden. Der URL wird als Link angezeigt. |
7 |
Navigieren Sie im Feld Filter-Navigator zu . |
8 |
(Optional) Verschieben Sie in der Liste Benutzergruppe die Benutzergruppen, die auf den Webex Contact Center Desktop zugreifen können, von Verfügbar zu Ausgewählt. |
9 |
Bevor Sie versuchen, das OpenFrame-Telefon zu verwenden, stellen Sie sicher, dass Sie die JSON-Datei für das benutzerdefinierte Desktop-Layout von ServiceNow in das Webex Contact Center-Verwaltungsportal hochladen. Weitere Informationen finden Sie unter Einrichten des ServiceNow-Desktoplayouts in Webex Contact Center. |
1 |
Laden Sie das Desktop-Layout für ServiceNow von https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow herunter. |
2 |
Aktualisieren Sie bei Bedarf die Eigenschaften in der Desktop-Layoutdatei. |
3 |
Gehen Sie zum Webex Contact Center-Verwaltungsportal . |
4 |
Wählen Sie in der Navigationsleiste des Management Portals aus. |
5 |
Klicken Sie auf Neues Layout und geben Sie die Details für das Desktop-Layout ein. |
6 |
Laden Sie die JSON-Datei für das ServiceNow-Desktop-Layout hoch. |
7 |
Klicken Sie auf Speichern, um die Konfiguration zu speichern. Sie können den Webex Contact Center-Desktop jetzt innerhalb der ServiceNow-Konsole starten. |
8 |
Navigieren Sie im Feld Filter-Navigator zu . |
1 |
Navigieren Sie im Feld Filter Navigator zu Vorfälle > Vorfall öffnen. |
2 |
Klicken Sie mit der rechten Maustaste auf das Feld des Anrufers, und klicken Sie auf Wörterbuch konfigurieren. |
3 |
Fügen Sie kommagetrennte Attribute hinzu Sie können jetzt den Webex Contact Center Desktop in der ServiceNow-Konsole verwenden. |
4 |
Navigieren Sie im Feld Filter-Navigator zu . |
Die Anmeldung bei Agent Desktop mithilfe der Desktop-Option (WebRTC) wird derzeit nicht unterstützt.
Agent Desktop in der ServiceNow-Konsole
Stellen Sie vor Outdial-Anrufen Folgendes sicher:
-
Erstellen Sie den Outdial-Einstiegspunkt und richten Sie eine Strategie für einen Outdial-Einstiegspunkt ein.
-
Aktivieren Sie outdial ANI für das Agentenprofil.
-
Legen Sie das ANI für die Wahl auf eine Zuordnung von Wählnummer zu Eingabepunkt fest.
Weitere Informationen finden Sie im Kapitel Bereitstellung des Einrichtungs- und Administratorhandbuchs für Cisco Webex Contact Center.
Navigieren Sie im Feld Filter-Navigator zu .
Weitere Informationen zur Verwendung von Desktop finden Sie auf der Registerkarte Agent in der Webex Contact Center-Hilfe.
Übersicht
Dieser Artikel behandelt verschiedene Möglichkeiten, Ihre Geschäftsregeln für den ServiceNow CRM-Connector anzupassen. Darin wird beschrieben, wie Sie die Anwendungsfälle anhand von Geschäftsregeln anpassen können, die spezifisch für ServiceNow sind.
Der Kunde muss diese Anwendungsfälle in ServiceNow selbst verwalten. Die Konfiguration ist spezifisch für ServiceNow und nicht für die Webex Contact Center-Software oder -Expertise.
Hierbei handelt es sich um eine Referenzdokumentation zur Unterstützung der Änderung von Geschäftsregeln. Die ServiceNow-Entwickler erstellen und verwalten die Geschäftsregeln und bieten Unterstützung.
Cisco stellt nur Beispieldokumentation zur Verfügung.
Die folgenden Abschnitte enthalten Details zum Einrichten, Aktivieren und Verwalten des Actions-Widgets für Entwickler- und Enterprise-Instanzen.
Widget zur Aktualisierung für Aktionen einspielen
Installieren Sie für die lizenzierten Unternehmensinstanzen die neueste Webex Contact Center-App aus dem ServiceNow Store.
Um das Actions-Widget für die Entwicklerinstanzen einzurichten, laden Sie die neueste XML-Datei für das System-Update-Set herunter, die im Github-Repo verfügbar ist: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Der Dateiname lautet webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Informationen zum Einspielen des Aktualisierungssatzes für das Actions-Widget finden Sie in den Schritten 2 bis 9 unter Einspielen des Aktualisierungssatzes.
Aktions-Widget aktivieren
Verwenden Sie die Eigenschaft isWidgetDisplayEnabled , um das Aktionen-Widget zu aktivieren. Sie dürfen den Wert dieser Eigenschaft nicht im kopflosen Abschnitt des benutzerdefinierten Desktop-Layouts ändern. Die Eigenschaft wird im kopflosen Abschnitt des benutzerdefinierten Desktop-Layouts immer auf „false“ gesetzt. Sie sollten den Wert der Eigenschaft nur im Bereich des benutzerdefinierten Desktop-Layouts aktualisieren.
Nachdem Sie das Aktionen-Widget im benutzerdefinierten Desktop-Layout aktiviert haben, können Sie die folgenden Aktionen ausführen:
- Aktivitätsdatensätze verwalten – Klicken Sie auf Aktivitätsdatensatz anzeigen/bearbeiten , um die Liste der Aktivitätsdatensätze anzuzeigen, die dem Anrufer zugeordnet sind.
- CRM-Objekte verknüpfen: Klicken Sie auf Mit Aktivitätsaufzeichnungen verknüpfen , um CRM-Objekte wie Anruftyp (eingehend oder ausgehend), Anrufobjekt, Anrufnotizen usw. zum Aktivitätsdatensatz hinzuzufügen.
- Vorfälle verwalten – Klicken Sie auf Vorfall erstellen. Ein neuer Vorfall wird erstellt, in dem die Details des Anrufers vorab ausgefüllt sind. Sie können die erforderlichen Aktualisierungen des Vorfalls vornehmen. Sie können den Datensatztyp von Vorfall zu Fall, HR-Modul usw. je nach Ihren Anforderungen ändern. Um den Aufzeichnungstyp zu ändern, ändern Sie den Wert der Eigenschaft typeOfRecord in der Einstellungen des Actions-Widgets. Beispiel:
{ "comp": "md-tab-panel", "attribute": { "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" : "Vorfall erstellen" }, "Wrapper": { "title": "SNOW Actions !", "maximizeAreaName": "app-maximize-area" } } ] }
- Hinzufügen von Live-Anrufprotokollen – Sie können zusätzliche Informationen über den Anruf im Textbereich erfassen und den Anruf nachfassen. Sie können diese Notizen als Anrufnotizen im Aktivitätsdatensatz sehen.
Code-Änderung bei ServiceNow
Das Skript Enthält Änderungen-
Wechseln Sie zum Filter-Navigator und suchen Sie nach
Skripteinschluss
.Wählen Sie unter Systembenutzeroberfläche die Option Skript enthält aus.
-
Filtern Sie den Namen und suchen Sie nach
propUtils
. -
Ändern Sie die Methode
UserGetSysId
im Skript.Kurent:
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; },
Neuer Beispielcode für den Vorfall:
UserGetSysId: Funktion () { var opened_for; //Vorfallbezogene Änderungen var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for= Benutzer.sys_id;//Benutzer zurückgeben.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; einschl.contact_type= 'phone'; einschl.short_description= 'Anruf erhalten von '+ 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; gibt JSON.stringify(sysidlist); },
-
Wechseln Sie zum Filter-Navigator, und suchen Sie nach der
Benutzeroberflächen-Seite
.Wählen Sie Benutzeroberflächen-Seiten unter Systembenutzeroberfläche aus.
-
Filtern Sie den Namen und suchen Sie nach
agentdesktop
. -
Ändern Sie die Funktion
screenpop
im Client-Skript.Aktuelle Funktion:
// Bildschirm-Popup-Funktion 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: 'Interaktion', Abfrage: 'sys_id='+sysid });
Beispielcode für den Vorfall:
// Bildschirm-Popup-Funktion 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(); // Für Vorfallbezogene Änderungen var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'Vorfall', Abfrage: „sys_id=“+sysObj.incsysid, „interaction_sys_id“: sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'Vorfall', Abfrage: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); }}
Wenn die Anruferinformationen in CRM vorhanden sind und bereits ein neuer Vorfall mit diesem Kontakt eröffnet wurde, öffnet die Anwendung den Vorfall in Bearbeitung
Wenn die Anruferinformationen in CRM nicht vorhanden sind, öffnet die Anwendung einen neuen Vorfall
Wenn die Anruferinformationen in CRM vorhanden sind, öffnet die Anwendung einen neuen Vorfall mit vorab ausgefüllten Details.
Übersicht
Dieser Anwendungsfall beschreibt den Prozess zum Hinzufügen einer zusätzlichen Spalte zur ServiceNow-Tabelle – webexcc_imp_activity und zum Erstellen sn_openframe_phone_log nach der Installation des Webex CC for ServiceNow CRM-Connectors.
Standardmäßig enthält die Tabelle bestimmte Felder und Werte des Out-of-Box-Systems.
Sie können weitere unternehmensspezifische Variablen (CAD-Variablen) im WebexCC Flow Designer erstellen und die CAD-Variablen im ServiceNow-Protokoll nach Anrufaktivitäten hinzufügen und diese in den Tabellendaten nach Anrufaktivitäten beibehalten.
Dies ist nur eine Referenzdokumentation – und zeigt, wie dies für eine Beispiel-CAD-Variable mit der Bezeichnung „Kundenname“ getan wird, die den Kundennamen in der IVR speichert und in ServiceNow veröffentlicht.
Es wird erwartet, dass die Entwickler von partner+customer ServiceNow diese Konfiguration konfigurieren und verwalten, da es sich um eine Anpassung für den vorhandenen Konnektor handelt.
Cisco bietet nur die Techniken zum Anpassen und Erweitern des Connectors.
Ab diesem Artikel hat das Cisco-Team die Unterstützung für das Hinzufügen der CAD-Variable zu Aktivitätsprotokoll und Aktivitätstabelle mithilfe der unten beschriebenen Technik validiert:
Spalte zu WebexCC IMP-Aktivität hinzufügen
-
Bearbeiten Sie die Tabelle in der Entwicklerversion von ServiceNow.
-
Wechseln Sie zum Filter Navigator und suchen Sie nach Studio.
Wählen Sie
Webex Contact Center
.oder
-
Wählen Sie die Tabelle
WebexCC IMP-Aktivität
aus. -
Neue Spalte hinzufügen, z. B.
CustomerName
Spalte zum Telefonprotokoll hinzufügen
-
Bearbeiten Sie die Telefonprotokolltabelle.
-
Fügen Sie eine neue Spalte hinzu, zum Beispiel
CustomerName
.
Karte zur Transformation von WebexCC-Aktivitäten
Fügen Sie eine neue Spalte hinzu, z. B. CustomerName
-Feldzuordnung.
Listenspalten personalisieren
Wie von Service Now empfohlen, ändern Sie die Aktion "Auswahl" von "Erstellen" in "Ignorieren".
Telefonprotokollliste konfigurieren
Zu „Skript einschließen“ wechseln
Fügen Sie webexcc.u_customername=actInfo.CustomerName
nur eine Zeile zu propUtils hinzu.
Beispielskript
Siehe Zeile: webexcc.u_customername=actInfo.CustomerName; mit einem unterstützenden Kommentar.
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 : Funktion () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = neues 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.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Diese Zeile wird Hinzugefügt, um sie im Aktivitätsprotokoll webexcc zu erfassen.u_customername=actInfo.Kundenname; sys_id=webexcc.insert(); //Aktivitäten bei Vorfall-Datensatz; 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); einschl. 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; }, Typ: „propUtils“ });
Erstellen einer CAD-Variablen im Flow Designer
Die CAD-Variable zum Desktop-Layout hinzufügen
Beispiel
"CadName1:SnowField1,CadName2:SnowField2" CadName1 ist CustomerName SnowField1 wird auch als CustomerName verwendet, der Teil der Beispiel-Scirpt zeigt oben "actInfo.CustomerName".
Demo-Screenshots
Sehen Sie sich die neu hinzugefügte CAD-Variable in der WebexCC-Aktivitätstabelle an.
CAD-Variable für Flow Designer erstellen
Dringlichkeit des VorfallsAuswirkung des Vorfalls
Aktualisierung des Service Now-Skripts
Aktualisierungen des Skripts umfassen
-
Wechseln Sie zum Filter-Navigator und suchen Sie nach
Skripteinschlüssen
Wählen Sie die Option Skript enthält unter Systembenutzeroberfläche aus.
-
Filtern Sie den Namen mit
propUtils
. -
Ändern Sie die Methode
UserGetSysId
im Feld Skript .Aktuelles Skript:
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; },
Neuer Beispielcode für den Vorfall:
UserGetSysId: Funktion () { 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= Benutzer.sys_id;//Benutzer zurückgeben.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; einschl.contact_type= 'phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description= 'Anruf erhalten von '+ 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; gibt JSON.stringify(sysidlist);//sysid; } zurück,
-
Wechseln Sie zum Filter-Navigator und suchen Sie nach
Benutzeroberflächen-Seiten
.Wählen Sie die Option Benutzeroberflächen-Seiten unter Systembenutzeroberfläche aus.
-
Filtern Sie die Benutzeroberflächen-Seiten mit Name und suchen Sie nach agentdesktop .
-
Ändern Sie die Funktion
screenpop
im Skriptfeld.Aktuelle Funktion:
// Bildschirm-Popup-Funktion 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: 'Interaktion', Abfrage: 'sys_id='+sysid }); }
Beispielcode für den Vorfall:
// Bildschirm-Popup-Funktion Screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact != undefined) { 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: 'Vorfall', Abfrage: „sys_id=“+sysObj.incsysid, „interaction_sys_id“: sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'Vorfall', Abfrage: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Wenn die Anruferinformationen in CRM vorhanden sind und es keinen neuen oder nicht laufenden Vorfall gibt, öffnet die Anwendung einen neuen Vorfall
Ändern des Codes in ServiceNow
Neue Spalten zur Tabelle WebexCC IMP-Aktivität
hinzufügen
Öffnen Sie die Tabelle WebexCC IMP-AktivitätenNeue Spalte hinzufügen – InteractionsNumber Neue Spalte hinzufügen – IncidentNumber
Klicken Sie auf Aktualisieren.
Neue Spalten zur Tabelle Telefonprotokoll
hinzufügen
Öffnen Sie die Tabelle Telefonprotokoll
Karte zur Transformation von WebexCC-Aktivitäten
Öffnen Sie die Transformationskarte
über den Filter-Navigator.
Klicken Sie auf WebexCC Activity TransformMap
Klicken Sie auf Aktualisieren.
Änderungen am Skript umfassen
-
Navigieren Sie zu Filter Navigator und suchen Sie nach "script includes".
Wählen Sie unter Systembenutzeroberfläche die Option Skript enthält aus.
-
Filtern Sie den Namen mit
propUtils
. -
Ändern Sie die Methode
setWebexcable
.Neuer Beispielcode für Vorfall:
Webexcaccessible festlegen: Funktion () { 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=""; actInfo[' löscheninteraction_sys_id']; actInfo[' löschenincident_sys_id']; if( interactionsysid!= null && interactionsysid != undefiniert){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', Interaktionssysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes= 'Status zu geschlossen aktualisieren.'; inte.update(); }} if( incsysid!= null && incsysid != undefiniert){ 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(); } Rückgabe sys_id; },
Methodenänderungen auf UI-Seiten
-
Gehen Sie zum Filter-Navigator und suchen Sie nach
Benutzeroberflächen-Seiten
Wählen Sie die Option Benutzeroberflächen-Seiten unter Systembenutzeroberfläche aus.
-
Filtern Sie die Benutzeroberflächen-Seiten mit Name und suchen Sie nach
agentdesktop
. -
Ändern Sie die Funktion
nowActivities und screenpop
im Skript.Aktuelle Funktion:
function nowActivities(actInfo, ani) { var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }
Beispielcode für den Vorfall:
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: 'Vorfall', Abfrage: „sys_id=“+sysObj.incsysid, „interaction_sys_id“: sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'Vorfall', Abfrage: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Ergebnisse nach der Aktualisierung
Die folgenden Anpassungen gelten für die Versionen 1.0.5 und niedriger. Führen Sie für die Anpassungen für die neueren Versionen 1.0.7 und höher die folgenden Schritte aus.
Anpassungsnr. 1 – Benutzerdefinierte Geschäftsregeln für Anwendungsfälle für den Anrufverlauf hinzufügen
Einen neuen Vorfalldatensatz für jeden Anruf erstellenErstellen Sie für jeden neuen Anruf beim WebexCC CRM-Connector in ServiceNow einen neuen Vorfalldatensatz.
Suchen Sie im Filter-Navigator nach Geschäftsregeln
Klicken Sie auf „Neu“.
Beispielcode als Referenz:
function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var-Telefon = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var Ansicht = sysparm_view; if (Ansicht == 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; } Antwort = URL; Rückgabe-URL; } Funktion UserGetSysId(Feld, Wert) { var user = new GlideRecord("sys_user"); user.addQuery(Feld, Wert); user.query(); if (user.next()) gibt Benutzer zurück.sys_id; else Null zurückgeben; }
Beispielkonfiguration der Geschäftsregel
Client-Anrufbarkeit aktivieren
Die Verarbeitung der Computer Telephony Integration (CTI) für einen Vorfall ist als True markiert.
Aktualisieren Sie die Screenpop-URL mit der benutzerdefinierten CTI-Regel " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
Der sysparm_cti_rule=name , wobei 'name' der Name einer Funktion ist, wird für die CTI-Verarbeitung anstatt des Standardskripts aufgerufen.
Definieren Sie die Funktion in einem sys_script Eintrag, der mit Client-Anrufbar markiert ist.
Wenn Sie GlideRecords in die Funktion einfügen, aktualisieren oder löschen müssen, rufen Sie eine separate Nicht-Client-aufrufbare Funktion auf, um die Aktualisierungen durchzuführen.
Um ein Skript client-anrufbar zu machen, müssen Sie das Kontrollkästchen client-anrufbar im Formular aktivieren, das angezeigt wird, wenn der sys_script Eintrag angezeigt wird.
Das Kontrollkästchen für Client-Anrufe wird standardmäßig nicht angezeigt. Zur Anzeige müssen Sie die auf dem Formular angezeigten Felder mithilfe des Zahnradsymbols und des Slush-Bucket-Mechanismus ändern.
Anpassungsnr. 2 – CAD-Variable in der Webex Contact Center-Aktivitätstabelle hinzufügen
ÜbersichtDieser Artikel beschreibt den Prozess zum Hinzufügen einer zusätzlichen Spalte zur ServiceNow-Tabelle – webexcc_activity die bei der Installation des Webex CC for ServiceNow CRM-Connectors erstellt wird.
Standardmäßig enthält die Tabelle verpackte Systemfelder und -werte.
Sie können potenziell unternehmensspezifische Variablen (CAD-Variablen) im WebexCC Flow Designer erstellen und diese CAD-Variablen im ServiceNow Protokoll nach Anrufaktivität hinzufügen und diese in den Daten der Tabelle nach Anrufaktivität beibehalten.
-
Dies ist nur eine Referenzdokumentation – und zeigt, wie dies für eine Beispiel-CAD-Variable namens „Customer Name“ (Kundenname) getan wird, die den Kundennamen in der IVR speichert und in ServiceNow veröffentlicht.
-
Die Entwickler von partner+customer ServiceNow konfigurieren und verwalten diese Konfiguration, da es sich um eine Anpassung für den vorhandenen Connector handelt.
-
Cisco bietet nur die Techniken zum Anpassen und Erweitern des Connectors an.
-
Ab diesem Artikel hat das Cisco-Team die Unterstützung für das Hinzufügen der CAD-Variable zu Aktivitätsprotokoll und Aktivitätstabelle mithilfe der unten beschriebenen Technik validiert.
Bearbeiten Sie die Tabelle in der Entwicklerversion von ServiceNow.
Gehen Sie zu
.Wählen Sie die Tabelle WebexCC-Aktivität aus.
Beispiel: CustomerName.
Wählen Sie das Listenlayout für WebexCC-Aktivität aus.
Dieser Schritt ist nicht erforderlich, wenn Sie das XML-Update-Set verwenden: Um „webexcc.u_customername=actInfo.CustomerName“ zu propUtils hinzuzufügen, ist nur eine Zeile erforderlich.
Beispielskript
Siehe Zeile mit:webexcc.u_customername=actInfo.CustomerName; mit einem unterstützenden Kommentar.
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 : Funktion () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = neues 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.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Diese Zeile wird Hinzugefügt, um sie im Aktivitätsprotokoll webexcc zu erfassen.u_customername=actInfo.Kundenname; sys_id=webexcc.insert(); // Aktivitäten bei Vorfall-Datensatz; 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); einschl. 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; }, Typ: 'propUtils2' });
Bearbeiten Sie die UI-Seite mit einem neuen SkriptnamenErstellen einer CAD-Variablen im Flow Designer
Die CAD-Variable zum Desktop-Layout hinzufügen
Demo-Screenshots
Sehen Sie sich die neu hinzugefügte CAD-Variable in der WebexCC-Aktivitätstabelle an.