Integrieren Sie Webex Contact Center mit ServiceNow
Wenn Sie Webex Contact Center in die ServiceNow CRM-Konsole integrieren, können Sie Webex Contact Center Desktop aus ServiceNow heraus starten.
Voraussetzungen
Bevor Sie Webex Contact Center in die ServiceNow CRM-Konsole integrieren, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Zugriff auf Webex Contact Center.
-
Administratorzugriff auf den Control Hub unter https://admin.webex.com und das Webex Contact Center-Managementportal. Die URLs für das Managementportal hängen von Ihrer Region ab.
-
Nordamerika: https://Portal.wxcc-us1.cisco.com
-
Großbritannien: 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 hängt von Ihrer Region ab.
-
Nordamerika: https://Desktop.wxcc-us1.cisco.com
-
Großbritannien: https://Desktop.wxcc-eu1.cisco.com
-
Singapur: https://Desktop.wxcc-sg1.cisco.com
-
-
Agentenzugriff auf die folgende Domäne, die in der Liste der zulässigen Inhaltssicherheitsrichtlinie hinzugefügt wurde:
-
*.service-now.com
Weitere Informationen zum Definieren der Zulassungsliste finden Sie im Artikel Sicherheitseinstellungen für Webex Contact Center.
-
-
Ein ServiceNow-Konto für das Entwicklerportal. Um ein Konto zu erstellen, rufen Sie das ServiceNow-Entwicklerportal unter https://developer.servicenow.com/dev.do auf, und klicken Sie auf Registrieren und mit dem Erstellen beginnen.
-
Zugriff auf folgende Dateien unter https://github.com/CiscoDevNet/webex-contact-Center-crm-Integrations/tree/main/ServiceNow:
-
ServiceNow-Update-Set (XML)
-
ServiceNow Contact Center Desktop-Layout (JSON)
-
- Die ServiceNow-Editionen, die von Webex Contact Center unterstützt werden, sind Vancouver, Utah, Tokya, Washington und Xanadu. Weitere Informationen finden Sie unter Webex Contact Center-Integration mit ServiceNow.
Befolgen Sie eine der beiden folgenden Methoden:
Für Entwicklerinstanzen empfehlen wir, die Schritte im Leitfaden für Entwicklerinstanzen zu befolgen.
Wenn Sie eine Enterprise-lizenzierte Instance besitzen, befolgen Sie die Richtlinien für Enterprise-lizenzierte Instances.
Es wird nicht empfohlen, die Enterprise-lizenzierte App mit Entwickler-Sandbox-Instanzen zu kombinieren.
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 Administrationskonsole . |
2 |
Klicken Sie im Bereich "Meine Instanz " des Menüs " Konto " auf "Start Building". |
3 |
Navigieren Sie auf Ihrer Entwicklerinstanz im Feld Filternavigator 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-Plugin zu installieren. |
6 |
Klicken Sie im Dialogfeld "Plugin aktivieren" auf "Aktivieren". |
7 |
Wenn die Plugin-Aktivierung abgeschlossen ist, klicken Sie im Dialogfeld Plugin-Aktivierung auf Formular schließen und neu laden . |
8 |
Um die Aktivierung des Plug-ins zu überprüfen, navigieren Sie im Feld Filter-Navigator 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 des Systemupdate-Sets herunter, die im Github-Repository an diesem Speicherort 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 auf Ihrer ServiceNow-Instanz im Feld Filternavigator oben links im Fenster zu ausgeführt werden soll. |
3 |
Klicken Sie auf den Link Update-Set importieren von XML . |
4 |
Klicken Sie auf Datei auswählen, wählen Sie die Datei XML Systemupdateset aus, und klicken Sie dann auf Hochladen.
Der Updatesatz wird in der Liste der abgerufenen Updatesätze angezeigt und befindet sich im Status "Geladen ".
|
5 |
Klicken Sie in der Liste der abgerufenen Update-Sets auf den Dateinamen des Update-Sets (Link), um das Update-Set zu öffnen. |
6 |
Klicken Sie oben rechts im Fenster auf Vorschau des Update-Sets , um das Update-Set auf Probleme zu überprüfen. |
7 |
Klicken Sie im Dialogfeld "Update-Set-Vorschau" auf "Schließen ", sobald die Vorschau abgeschlossen ist. |
8 |
Klicken Sie auf Update-Set übernehmen. |
9 |
Klicken Sie im Dialogfeld "Updatesatz-Commit" auf "Schließen ", sobald die Festschreibung des Update-Sets abgeschlossen ist. |
1 |
Geben Sie im Feld Filter-Navigator oben links im Fenster sys_properties.list |
2 |
Sortieren Sie die Eigenschaften auf der Seite Systemeigenschaften nach Aktualisierungsdatum. Stellen Sie sicher, dass die folgenden Webex Contact Center-Eigenschaften angezeigt werden: |
3 |
Klicken Sie auf agentdesktop_url , um die Seite Systemeigenschaften-agentdesktop_url zu öffnen. |
4 |
Geben Sie im Feld Wert die URL für den Webex Contact Center Desktop entsprechend der Region ein, in der er ausgeführt wird.
|
5 |
Klicken Sie auf Aktualisieren , um die Änderungen zu speichern. |
6 |
(Optional) Um den Namen der Activity-Tabelle zu ändern, bearbeiten Sie die Eigenschaften der webexccactivitytable nach Bedarf. Klicken Sie auf der Seite Systemeigenschaften auf webexccactivitytable. Ändern Sie das Feld Wert nach Bedarf. |
7 |
(Optional) Sie können Benutzergruppen auf folgende Weise hinzufügen:
|
1 |
Navigieren Sie im Feld Filter-Navigator zu . |
2 |
Klicken Sie auf Neu. |
3 |
Geben Sie die folgenden Eigenschaften für die URL ein:
|
4 |
Klicken Sie rechts neben dem URL-Feld auf die Schaltfläche "Sperren " und fügen Sie agentdesktop.do |
5 |
(Optional) Wählen Sie die Benutzer-/Agentengruppen aus, denen die Konfiguration zugewiesen werden soll. |
6 |
Klicken Sie auf Senden. Die URL wird als Link angezeigt. |
7 |
Bevor Sie versuchen, das OpenFrame-Telefon zu verwenden, stellen Sie sicher, dass Sie die JSON-Datei mit dem benutzerdefinierten Desktop-Layout von ServiceNow in das Webex Contact Center-Managementportal 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 Desktoplayoutdatei. |
3 |
Navigieren Sie zum Webex Contact Center-Managementportal. |
4 |
Wählen Sie in der Navigationsleiste des Managementportals die Option Provisioning . |
5 |
Klicken Sie auf Neues Layout, und geben Sie die Details für das Desktop-Layout ein. |
6 |
Laden Sie die JSON-Datei ServiceNow Desktop Layout hoch. |
7 |
Klicken Sie auf Speichern , um die Konfiguration zu speichern. Sie können jetzt den Webex Contact Center Desktop in der ServiceNow-Konsole starten. |
8 |
Navigieren Sie im Feld Filternavigator 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 Administrationskonsole . |
2 |
Klicken Sie im Bereich "Meine Instanz " des Menüs " Konto " auf "Start Building". |
3 |
Navigieren Sie auf Ihrer Entwicklerinstanz im Feld Filternavigator 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-Plugin zu installieren. |
6 |
Klicken Sie im Dialogfeld "Plugin aktivieren" auf "Aktivieren". |
7 |
Wenn die Plugin-Aktivierung abgeschlossen ist, klicken Sie im Dialogfeld Plugin-Aktivierung auf Formular schließen und neu laden . |
8 |
Um die Aktivierung des Plug-ins zu überprüfen, navigieren Sie im Feld Filter-Navigator 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 Enterprise-Lizenzen 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 Filter-Navigator oben links im Fenster sys_properties.list ein. |
2 |
Sortieren Sie die Eigenschaften auf der Seite Systemeigenschaften nach Aktualisierungsdatum. Stellen Sie sicher, dass die folgenden Webex Contact Center-Eigenschaften angezeigt werden: |
3 |
Klicken Sie auf agentdesktop_url , um die Seite Systemeigenschaften-agentdesktop_url zu öffnen. |
4 |
Geben Sie im Feld Wert die URL für den Webex Contact Center Desktop entsprechend der Region ein, in der er ausgeführt wird.
|
5 |
Klicken Sie auf Aktualisieren , um die Änderungen zu speichern. |
6 |
(Optional) Um den Namen der Activity-Tabelle zu ändern, bearbeiten Sie die Eigenschaften der x_caci_webexcc.webexccactivitytable nach Bedarf.
|
7 |
(Optional) Sie können Benutzergruppen auf folgende Weise hinzufügen:
|
1 |
Navigieren Sie im Feld Filter-Navigator zu . |
2 |
Klicken Sie auf Neu. |
3 |
Geben Sie die folgenden Eigenschaften für die URL ein:
|
4 |
Klicken Sie rechts neben dem URL-Feld auf die Schaltfläche "Sperren " und fügen Sie x_caci_webexcc_agentdesktop.do |
5 |
(Optional) Wählen Sie die Benutzer-/Agentengruppen aus, denen die Konfiguration zugewiesen werden soll. |
6 |
Klicken Sie auf Senden. Die URL wird als Link angezeigt. |
7 |
Navigieren Sie im Feld Filternavigator zu . |
8 |
(Optional) Verschieben Sie in der Liste "Benutzergruppe " die Benutzergruppen, die auf den Webex Contact Center Desktop zugreifen können, von "Verfügbar " nach "Ausgewählt". |
9 |
Bevor Sie versuchen, das OpenFrame-Telefon zu verwenden, stellen Sie sicher, dass Sie die JSON-Datei mit dem benutzerdefinierten Desktop-Layout von ServiceNow in das Webex Contact Center-Managementportal 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 Desktoplayoutdatei. |
3 |
Navigieren Sie zum Webex Contact Center-Managementportal. |
4 |
Wählen Sie in der Navigationsleiste des Managementportals die Option Provisioning . |
5 |
Klicken Sie auf Neues Layout, und geben Sie die Details für das Desktop-Layout ein. |
6 |
Laden Sie die JSON-Datei ServiceNow Desktop Layout hoch. |
7 |
Klicken Sie auf Speichern , um die Konfiguration zu speichern. Sie können jetzt den Webex Contact Center Desktop in der ServiceNow-Konsole starten. |
8 |
Navigieren Sie im Feld Filternavigator zu . |
1 |
Navigieren Sie im Feld Filter-Navigator zu Incidents > Open Incident. |
2 |
Klicken Sie mit der rechten Maustaste auf das Feld "Anrufer", und klicken Sie auf "Wörterbuch konfigurieren". |
3 |
Fügen Sie durch Komma getrennte Attribute hinzu Sie können jetzt den Webex Contact Center Desktop in der ServiceNow-Konsole verwenden. |
4 |
Navigieren Sie im Feld Filternavigator zu . |
Agent Desktop in der ServiceNow-Konsole
Bevor Sie ausgehende Anrufe tätigen, gehen Sie wie folgt vor:
-
Erstellen Sie den Outdial-Einstiegspunkt, und richten Sie eine Outdial-Einstiegspunktstrategie ein.
-
Aktivieren Sie die ausgehende ANI für das Agentenprofil.
-
Legen Sie für die ANI des ausgehenden Anrufs eine Zuordnung zwischen Wählnummer und Einstiegspunkt fest.
Weitere Informationen finden Sie im Kapitel "Bereitstellung" im Cisco Webex Contact Center Setup- und Administrationshandbuch.
Navigieren Sie im Feld Filternavigator zu .
Informationen zur Verwendung des Desktop-PCs finden Sie auf der Registerkarte "Agent " in der Webex Contact Center-Hilfe.
Übersicht
In diesem Artikel werden verschiedene Möglichkeiten beschrieben, wie Sie Ihre Geschäftsregeln für den ServiceNow CRM-Connector anpassen können. Es wird beschrieben, wie Sie die Anwendungsfälle basierend auf Geschäftsregeln anpassen können, die für ServiceNow spezifisch sind.
Der Kunde muss diese Anwendungsfälle auf ServiceNow selbst verwalten. Die Konfiguration ist ServiceNow-spezifisch und nicht Webex Contact Center-Software oder -Fachwissen.
Dies ist eine Referenzdokumentation zur Änderung von Geschäftsregeln. Die ServiceNow-Entwickler erstellen und verwalten die Geschäftsregeln und bieten Support.
Cisco stellt lediglich eine Beispieldokumentation zur Verfügung.
In den folgenden Abschnitten erfahren Sie, wie Sie das Aktions-Widget für Entwickler- und Enterprise-Instanzen einrichten, aktivieren und verwalten.
Bestätigen Sie den Update-Satz für das Widget "Aktionen"
Installieren Sie für die lizenzierten Unternehmensinstanzen die neueste Webex Contact Center-App aus dem ServiceNow Store.
Um das Widget "Aktionen" für die Entwicklerinstanzen einzurichten, laden Sie die neueste XML-Datei "Systemupdatesatz" herunter, die im Github-Repository unter folgendem Speicherort verfügbar ist: https://github.com/CiscoDevNet/webex-contact-Center-crm-Integrations/tree/main/ServiceNow/ActionsWidget. Der Dateiname ist webexcc-servicenow-Update-Setv7-1-ActionsWidget.xml. Informationen zum Commit des Updatesatzes für das Widget "Aktionen" finden Sie in den Schritten 2 bis 9 unter Ausführen eines Commits für den Updatesatz.
Widget "Aktionen aktivieren"
Verwenden Sie die isWidgetDisplayEnabled-Eigenschaft , um das Actions-Widget zu aktivieren. Sie dürfen den Wert dieser Eigenschaft im Headless-Abschnitt des benutzerdefinierten Desktoplayouts nicht ändern. Die Eigenschaft wird im Headless-Abschnitt des benutzerdefinierten Desktoplayouts immer auf false festgelegt. Sie sollten den Wert der Eigenschaft nur im Panel-Abschnitt des benutzerdefinierten Desktop-Layouts aktualisieren.
Nachdem Sie das Widget "Aktionen" 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 mit dem Anrufer verknüpft sind.
- CRM-Objekte zuordnen – Klicken Sie auf " Mit Aktivitätsdatensätzen verknüpfen", um CRM-Objekte wie Anrufart (eingehend oder ausgehend), Anrufobjekt, Anrufnotizen usw. zum Aktivitätsdatensatz hinzuzufügen.
- Incidents verwalten: Klicken Sie auf Incident erstellen. Wenn die Anruferdetails bereits ausgefüllt sind, wird ein neuer Incident erstellt. Sie können die erforderlichen Aktualisierungen am Vorfall vornehmen. Sie können den Datensatztyp basierend auf Ihren Anforderungen von Fall zu Fall, HR-Modul usw. Ändern. Um den Datensatztyp zu ändern, ändern Sie den Wert der typeOfRecord-Eigenschaft in der Konfiguration des Actions-Widgets. Zum Beispiel:
{ "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" : "Incident erstellen" }, "wrapper": { "title": "SNOW-Aktionen !", "maximizeAreaName": "App-maximize-area" } } ] }
- Live-Anrufnotizen hinzufügen: Sie können zusätzliche Informationen zum Anruf im Textbereich erfassen und den Anruf nachfassen. Diese Notizen werden als Anrufnotizen im Aktivitätsdatensatz hinzugefügt.
Codeänderung in ServiceNow
Das Skript enthält Änderungen-
Gehen Sie zum Filter-Navigator und suchen Sie nach
Das Skript enthält
.Wählen Sie unter "Systembenutzeroberfläche" die Option "Skripteinschlüsse " aus.
-
Filtern Sie den Namen und suchen Sie nach
propUtils
. -
Ändern der Methode
BenutzerGetSysId
im Skript.Aktuell:
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: function () { var opened_for; //Incident-bezogene Änderungen 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='Anruf erhalten von '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); 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); },
-
Wechseln Sie zum Filter-Navigator, und suchen Sie nach
der UI-Seite
.Wählen Sie UI-Seiten unter System-UI aus.
-
Filtern Sie den Namen und suchen Sie nach
Agentendesktop
. -
Ändern Sie die
Screenshot
Funktion im Client-Skript.aktuelle Funktion:
screenpop-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:
screenpop-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 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' }); } }
Wenn die Anruferinformationen in CRM vorhanden sind und bereits ein neuer Incident mit diesem Kontakt geöffnet wurde, öffnet die Anwendung den inprogress incident
Wenn die Anruferinformationen nicht in CRM vorhanden sind, öffnet die Anwendung einen neuen Incident
Wenn die Anruferinformationen in CRM vorhanden sind, öffnet die Anwendung einen neuen Incident mit vorausgefüllten Details
Übersicht
Dieser Anwendungsfall beschreibt den Prozess zum Hinzufügen einer zusätzlichen Spalte zur ServiceNow-Tabelle – webexcc_imp_activity und zum Erstellen von sn_openframe_phone_log bei der Installation des Webex CC für ServiceNow CRM Connector.
Standardmäßig enthält die Tabelle bestimmte vordefinierte Systemfelder und -werte.
Sie können weitere geschäftsspezifische Variablen (CAD-Variablen) im WebexCC-Flow-Designer erstellen und die CAD-Variablen im ServiceNow-Aktivitätsprotokoll nach dem Anruf hinzufügen sowie diese in den Daten der Aktivitätstabelle nach dem Anruf beibehalten.
Dies ist nur eine Referenzdokumentation – und zeigt, wie dies für eine Beispiel-CAD-Variable namens "Kundenname" geht, die den Kundennamen in der IVR speichert und an ServiceNow sendet.
Es wird erwartet, dass die Entwickler von Partner+Customer ServiceNow diese Konfiguration konfigurieren und verwalten, da es sich um eine Anpassung des vorhandenen Konnektors handelt.
Cisco stellt lediglich die Techniken zum Anpassen und Erweitern des Konnektors zur Verfügung.
Seit diesem Artikel hat das Cisco-Team die Unterstützung für das Hinzufügen von CAD-Variablen zum Aktivitätsprotokoll und zur 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.
-
Rufen Sie den Filternavigator auf und suchen Sie nach Studio.
Auswahl
Webex Contact Center
oder
-
Wählen Sie die Option
WebexCC IMP-Aktivität
Tisch -
Fügen Sie eine neue Spalte hinzu, z. B.
Name des Kunden
Spalte zum Telefonprotokoll hinzufügen
-
Bearbeiten Sie die Telefonprotokolltabelle.
-
Fügen Sie eine neue Spalte hinzu, z. B.
Name des Kunden
.
WebexCC-Aktivitätstransformationskarte
Fügen Sie eine neue Spalte hinzu, z. B. Name des Kunden
Feldzuordnung.
Listenspalten personalisieren
Wie von Service Now empfohlen, ändern Sie die Auswahlaktion von "Erstellen" in "Ignorieren".
Telefonprotokollliste konfigurieren
Gehe zu Script Include
Fügen Sie nur eine Leitung hinzu webexcc.u_customername=actInfo.CustomerName
Zu propUtils.
Beispielskript
Siehe die 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 // null zurückgeben; var grInt = new GlideRecord('Interaktion'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'Telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysid zurückgeben; }, 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; Diese Zeile wird hinzugefügt, um sie im Aktivitätsprotokoll zu erfassen webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Aktivitäten im Vorfallsdatensatz; 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(); } } } Kehren Sie sys_id zurück; }, Typ: 'propUtils' });
Erstellen einer CAD-Variablen im Flow Designer
Hinzufügen der CAD-Variablen zum Desktop-Layout
Beispiel
"CadName1:SnowField1,CadName2:SnowField2" CadName1 ist CustomerName SnowField1 wird auch als CustomerName verwendet, der Teil der obigen Beispielscirpt "actInfo.CustomerName" ist.
Demo-Screenshots
Zeigen Sie die neu hinzugefügte CAD-Variable in der WebexCC-Aktivitätstabelle an.
Erstellen einer CAD-Variablen für Flow Designer
Dringlichkeit des VorfallsAuswirkungen des Vorfalls
Skriptaktualisierung "Service Now"
Zu den Aktualisierungen des Skripts gehören:
-
Rufen Sie den Filter-Navigator auf und suchen Sie nach
Skript-Includes
Wählen Sie unter "Systembenutzeroberfläche " die Option "Skripteinschlüsse" aus.
-
Filtern Sie den Namen mit
propUtils
. -
Ändern der Methode
BenutzerGetSysId
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: 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='Anruf empfangen von '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); 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; },
-
Wechseln Sie zum Filter-Navigator, und suchen Sie nach
UI-Seiten
.Wählen Sie unter "Systembenutzeroberfläche" die Option "UI-Seiten " aus .
-
Filtern Sie die UI-Seiten nach Name , und suchen Sie nach
agentdesktop
. -
Ändern Sie die
Screenshot
Im Skriptfeld.aktuelle Funktion:
screenpop-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:
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('Feld', 'Telefon'); gaout.addParam('Wert', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Auswirkung', Auswirkung); 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)); }
Wenn die Anruferinformationen in CRM vorhanden sind und kein neuer oder im Gange befindlicher Vorfall vorliegt, öffnet die Anwendung einen neuen Vorfall
Ändern Sie den Code auf ServiceNow
Fügen Sie neue Spalten zum WebexCC IMP-Aktivität
Tisch
Öffnen Sie die WebexCC IMP-AktivitätTisch Neue Spalte hinzufügen – InteractionsNumber Neue Spalte hinzufügen – IncidentNumber
Klicken Sie auf Aktualisieren.
Fügen Sie neue Spalten zum Telefonprotokoll
Tisch
Öffnen Sie die Telefonprotokoll
Tisch
WebexCC-Aktivitätstransformationskarte
Offen Karte transformieren
Über den Filter-Navigator
Anklicken WebexCC-Aktivität TransformMap
Klicken Sie auf Aktualisieren.
Änderungen am Skript beinhalten
-
Gehen Sie zum Filter-Navigator und suchen Sie nach "Skript-Includes".
Wählen Sie unter "Systembenutzeroberfläche" die Option "Skripteinschlüsse " aus.
-
Filtern Sie den Namen mit
propUtils
. -
Ändern der Methode
setWebexcctable
.Neuer Beispielcode für Incident:
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()) { //Aktivitäten im Incident-Datensatz; //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='Status auf geschlossen aktualisieren.'; 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; },
Methodenänderungen auf UI-Seiten
-
Gehen Sie zum Filter-Navigator und suchen Sie nach
UI-Seiten
Wählen Sie unter "Systembenutzeroberfläche" die Option "UI-Seiten " aus.
-
Filtern Sie die UI-Seiten nach Name , und suchen Sie nach
agentdesktop
. -
Ändern Sie die
nowAktivitäten und Screenpop
-Funktion im Skript enthalten.aktuelle Funktion:
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); }
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: '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)); }
Ergebnisse nach dem Update
Die folgenden Anpassungen gelten für Version 1.0.5 und niedriger. Führen Sie für die Anpassungen für die neueren Versionen 1.0.7 und höher die obigen Schritte aus.
Anpassung 1 – Fügen Sie benutzerdefinierte Geschäftsregeln für Anwendungsfälle von Anrufabläufen hinzu
Erstellen Sie für jeden Anruf einen neuen Incident-DatensatzErstellen Sie für jeden neuen Anruf im WebexCC CRM Connector in ServiceNow einen neuen Incident-Datensatz.
Suche nach Geschäftsregeln im Filter-Navigator
Klicken Sie auf Neu.
Beispielcode als Referenz:
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; Rückgabe-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; }
Beispielkonfiguration der Geschäftsregel
Client aufrufbar aktivieren
Die CTI-Verarbeitung (Computer Telephony Integration) für Incident ist als Wahr 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, für die aufgerufen werden soll CTI Verarbeitung statt Verwendung des Standardskripts.
Definieren Sie die Funktion in einem sys_script Eintrag, der als mandantenfähig gekennzeichnet ist .
Wenn Sie GlideRecords in der Funktion einfügen, aktualisieren oder löschen müssen, rufen Sie eine separate, nicht vom Client aufrufbare Funktion auf, um die Aktualisierungen durchzuführen.
Um ein Skript mandantenaufrufbar zu machen, müssen Sie das Kontrollkästchen "Vom Client aufrufbar" in dem Formular aktivieren, das angezeigt wird, wenn der sys_script Eintrag angezeigt wird.
Das Kontrollkästchen "Vom Client aufrufbar" wird standardmäßig nicht angezeigt. Zur Anzeige müssen Sie die Felder, die im Formular angezeigt werden, mithilfe des Zahnradsymbols und des Matsch-Eimer-Mechanismus ändern.
Anpassung 2 – Hinzufügen einer CAD-Variablen in Webex Contact Center-Aktivitätstabelle
ÜbersichtIn diesem Artikel wird beschrieben, wie Sie der ServiceNow-Tabelle eine zusätzliche Spalte hinzufügen – webexcc_activity, die bei der Installation von Webex CC für ServiceNow CRM Connector erstellt wird.
Standardmäßig enthält die Tabelle vordefinierte Systemfelder und -werte.
Sie können potenziell weitere geschäftsspezifische Variablen (CAD-Variablen) im WebexCC Flow Designer erstellen und diese CAD-Variablen im ServiceNow-Aktivitätsprotokoll nach dem Anruf hinzufügen und diese in den Daten der Post-Call-Aktivitätstabelle beibehalten.
-
Dies ist nur eine Referenzdokumentation – und zeigt, wie dies für eine Beispiel-CAD-Variable namens Kundenname geht, die den Kundennamen in der IVR speichert und an ServiceNow sendet.
-
Die Entwickler von Partner+Customer ServiceNow konfigurieren und verwalten diese Konfiguration, da es sich um eine Anpassung des vorhandenen Konnektors handelt.
-
Cisco stellt lediglich die Techniken zum Anpassen und Erweitern des Konnektors zur Verfügung.
-
Zum Zeitpunkt dieses Artikels hat das Cisco-Team die Unterstützung für das Hinzufügen von CAD-Variablen zum Aktivitätsprotokoll und zur Aktivitätstabelle mit der unten beschriebenen Technik validiert.
Bearbeiten Sie die Tabelle in der Entwicklerversion von ServiceNow.
Wechseln Sie zum
.Wählen Sie die WebexCC-Aktivitätstabelle aus .
Beispiel: CustomerName.
Wählen Sie Listenlayout für WebexCC-Aktivität aus.
Dieser Schritt ist nicht erforderlich, wenn Sie den Update-Set-XML verwenden – Es muss nur eine Zeile "webexcc.u_customername=actInfo.CustomerName" zu propUtils hinzugefügt werden.
Beispielskript
Siehe die 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: 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; // Diese Zeile wird hinzugefügt, um sie im Aktivitätsprotokoll webexcc zu erfassen. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Aktivitäten im Vorfallsdatensatz; 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(); } } } Kehren Sie sys_id zurück; }, Typ: 'propUtils2' });
Bearbeiten der UI-Seite mit einem neuen SkriptnamenErstellen einer CAD-Variablen im Flow Designer
Hinzufügen der CAD-Variablen zum Desktop-Layout
Demo-Screenshots
Zeigen Sie die neu hinzugefügte CAD-Variable in der WebexCC-Aktivitätstabelle an.