Integrieren Sie Webex Contact Center mit ServiceNow (Version 1 — Legacy)

list-menuFeedback?
Wenn Sie Webex Contact Center in die ServiceNow CRM-Konsole integrieren, können Sie Webex Contact Center Desktop von ServiceNow aus starten.

Voraussetzungen

Die unterstützte Mindestgröße für die Softphone-Schnittstelle ist 500 Pixel. Jeder Wert unter 500px kann zu Anzeige- oder Funktionsproblemen führen.

Bevor Sie Webex Contact Center in die ServiceNow CRM-Konsole integrieren, stellen Sie sicher, dass Sie über Folgendes verfügen:

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.

Digitale Kanäle wie Chat und E-Mail werden mit CRM-Konnektoren nicht unterstützt. Dies gilt für alle CRM-Integrationen, die diese Konnektoren verwenden. Planen Sie Ihre Bereitstellungs- und Kundenbindungs-Workflows entsprechend.

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

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

Navigieren Sie auf Ihrer Entwicklerinstanz im Feld Filternavigator oben links im Fenster zu Plugins.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Suchen Sie nach dem Openframe-Plugin mit dem Titel Openframe. Möglicherweise müssen Sie durch die Liste blättern.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Klicken Sie auf Installieren , um das Openframe-Plugin zu installieren.

6

Klicken Sie im Dialogfeld "Plugin aktivieren" auf "Aktivieren".

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Wenn die Plugin-Aktivierung abgeschlossen ist, klicken Sie im Dialogfeld Plugin-Aktivierung auf Formular schließen und neu laden .

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

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.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

Laden Sie die neueste Datei des Systemupdatesatzes XML 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

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

Navigieren Sie auf Ihrer ServiceNow-Instanz im Feld Filternavigator oben links im Fenster zu Systemupdate-Sets >Update-Sets, für die ein Commit ausgeführt werden soll.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

Klicken Sie auf den Link Update-Set importieren aus XML .

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

4

Klicken Sie auf Datei auswählen, wählen Sie die Datei System Update Set XML aus, und klicken Sie dann auf Hochladen.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

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.

ServiceNow developer portal retrieved update sets list for an updated file.

6

Klicken Sie oben rechts im Fenster auf Vorschau des Update-Sets , um das Update-Set auf Probleme zu überprüfen.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

Klicken Sie im Dialogfeld "Update-Set-Vorschau" auf "Schließen ", sobald die Vorschau abgeschlossen ist.

ServiceNow developer portal with the update set preview success notification.

8

Klicken Sie auf Update-Set übernehmen.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

Klicken Sie im Dialogfeld "Updatesatz-Commit" auf "Schließen ", sobald die Festschreibung des Update-Sets abgeschlossen ist.

ServiceNow developer portal with the update set commit success notification.

1

Geben Sie im Feld Filter-Navigator oben links im Fenster sys_properties.list ein , und drücken Sie die Eingabetaste.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘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:

ServiceNow developer instance system properties page.

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 Einsatzregion ein.

ServiceNow developer instance system property details for agentdesktop_url.

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.

ServiceNow developer instance system property details for webexactivitytable.

7

(Optional) Sie können Benutzergruppen auf folgende Weise hinzufügen:

  1. Navigieren Sie im Feld Filter-Navigator oben links im Fenster zu Gruppen unter "Systemsicherheit".

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Erstellen Sie eine neue Benutzergruppe, oder verwenden Sie eine vorhandene.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Klicken Sie auf Bearbeiten.

  4. Suchen Sie unter Sammlung nach sn_openframe_user und verschieben Sie sie in Ihre Benutzergruppe.

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

  5. Klicken Sie auf Speichern.

  6. Fügen Sie den Benutzer als Gruppenmitglied hinzu.

    ServiceNow developer instance group page with user roles assigned.

1

Navigieren Sie im Feld Filter-Navigator zu OpenFrame > Configurations.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Klicken Sie auf Neu.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

Geben Sie die folgenden Eigenschaften für die URL ein:

  • Name: Webex Contact Center Desktop

  • Titel: Webex Contact Center

  • Breite: 550 (empfohlen)

  • Größe: 600 (empfohlen)

4

Klicken Sie rechts neben dem URL-Feld auf die Schaltfläche "Sperren " und fügen Sie agentdesktop.do als URL hinzu . (Führen Sie diesen Schritt aus, um die Konfiguration auf die UI-Seite zu verweisen)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Optional) Wählen Sie die Benutzer-/Agentengruppen aus, denen die Konfiguration zugewiesen werden soll.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Klicken Sie auf Senden. Die URL wird als Link angezeigt.

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

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

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

Aktualisieren Sie bei Bedarf die Eigenschaften in der Desktoplayoutdatei.

3

Rufen Sie das Webex Contact Center Managementportal auf.

4

Wählen Sie auf der Navigationsleiste des Managementportals Provisioning > Desktoplayout aus .

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

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 Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

Navigieren Sie auf Ihrer Entwicklerinstanz im Feld Filternavigator oben links im Fenster zu Plugins.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Suchen Sie nach dem Openframe-Plugin mit dem Titel Openframe. Möglicherweise müssen Sie durch die Liste blättern.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Klicken Sie auf Installieren , um das Openframe-Plugin zu installieren.

6

Klicken Sie im Dialogfeld "Plugin aktivieren" auf "Aktivieren".

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Wenn die Plugin-Aktivierung abgeschlossen ist, klicken Sie im Dialogfeld Plugin-Aktivierung auf Formular schließen und neu laden .

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

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.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

Geben Sie im Feld Filter-Navigator oben links im Fenster sys_properties.list ein.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘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:

ServiceNow developer instance system properties page results.

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 Einsatzregion ein.

ServiceNow developer instance system property details page for agentdesktop_url.

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.

  1. Klicken Sie auf der Seite Systemeigenschaften auf x_caci_webexcc.webexccactivitytable.

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

  2. Ändern Sie das Feld Wert nach Bedarf.

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(Optional) Sie können Benutzergruppen auf folgende Weise hinzufügen:

  1. Navigieren Sie im Feld Filter-Navigator oben links im Fenster zu Gruppen unter "Systemsicherheit".

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. Klicken Sie auf Bearbeiten und fügen Sie die folgenden Rollen hinzu:

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_Center

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

Navigieren Sie im Feld Filter-Navigator zu OpenFrame > Configurations.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Klicken Sie auf Neu.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

Geben Sie die folgenden Eigenschaften für die URL ein:

  • Name: Webex Contact Center Desktop

  • Titel: Webex Contact Center

  • Breite: 550 (empfohlen)

  • Größe: 600 (empfohlen)

4

Klicken Sie rechts neben dem URL-Feld auf die Schaltfläche "Sperren " und fügen Sie x_caci_webexcc_agentdesktop.do als URL hinzu . (Führen Sie diesen Schritt aus, um die Konfiguration auf die UI-Seite zu verweisen)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Optional) Wählen Sie die Benutzer-/Agentengruppen aus, denen die Konfiguration zugewiesen werden soll.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Klicken Sie auf Senden. Die URL wird als Link angezeigt.

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

Navigieren Sie im Feld Filternavigator zu Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

Aktualisieren Sie bei Bedarf die Eigenschaften in der Desktoplayoutdatei.

3

Rufen Sie das Webex Contact Center Managementportal auf.

4

Wählen Sie auf der Navigationsleiste des Managementportals Provisioning > Desktoplayout aus .

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

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 Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

Fügen Sie durch Komma getrennte Attribute hinzu "ref_contributions=show_phone,.

ServiceNow developer instance call incident window for a Directory Entry.

Sie können jetzt den Webex Contact Center Desktop in der ServiceNow-Konsole verwenden.

4

Navigieren Sie im Feld Filternavigator zu Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • Wir unterstützen die Anmeldung bei Agent Desktop nur mit WebRTC for Salesforce (SFDC) und Microsoft Dynamics (MS Dynamics) Connectors.
  • Derzeit ist diese Funktion nur für Agenten verfügbar.

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 Setup- und Administrationshandbuch Cisco Webex Contact Center.

Navigieren Sie im Feld Filternavigator zu Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

Informationen zur Verwendung des Desktop-Clients finden Sie unter Agent Tab 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 spezifisch für ServiceNow 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 enthält nur Beispieldokumentationen.

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 Datei "System Update Set XML" herunter, die im Github-Repository unter # https://github.com/CiscoDevNet/webex-contact-Center-crm-Integrations/tree/main/ServiceNow/ActionsWidget verfügbar ist. Der Dateiname lautet 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" : "Create Incident" 
                      },
                      "wrapper": {
                        "title": "SNOW Actions !",
                        "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
  1. Gehen Sie zum Filter-Navigator und suchen Sie nach Das Skript enthält.

    Wählen Sie unter "Systembenutzeroberfläche" die Option "Skripteinschlüsse " aus.

  2. Filtern Sie den Namen und suchen Sie nach propUtils.

  3. Ä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 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);
            },

Methodenänderung auf UI-Seiten
  1. Wechseln Sie zum Filter-Navigator, und suchen Sie nach der UI-Seite.

    Wählen Sie UI-Seiten unter System-UI aus.

  2. Filtern Sie den Namen und suchen Sie nach Agentendesktop.

  3. Ändern Sie die Screenshot Funktion im Client-Skript.

    aktuelle Funktion:

    // 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
    });

    Beispielcode für den Vorfall:

    // 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'  
           });
        }
       
    }

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 erstellen Sie sn_openframe_phone_log nach der Installation des Webex CC for 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 POST Anrufaktivitätsprotokoll hinzufügen sowie diese in den Daten der POST Anrufaktivitätstabelle speichern.

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 enthält nur die Techniken zum Anpassen und Erweitern des Konnektors.

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:

Spalte zu WebexCC IMP-Aktivität hinzufügen

  1. Bearbeiten Sie die Tabelle in der Entwicklerversion von ServiceNow.

    ServiceNow developer instance WebexCC IMP activity table.

  2. Rufen Sie den Filternavigator auf und suchen Sie nach Studio.

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    Auswahl Webex Contact Center

    Studio app for ServiceNow with the Select Application window open.

    Sie oder um für die Frage zu

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. Wählen Sie die Option WebexCC IMP-Aktivität Tisch

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. Fügen Sie eine neue Spalte hinzu, z. B. Name des Kunden

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

Spalte zum Telefonprotokoll hinzufügen

  1. Bearbeiten Sie die Telefonprotokolltabelle.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. Fügen Sie eine neue Spalte hinzu, z. B. Name des Kunden.

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

WebexCC-Aktivitätstransformationskarte

Studio app for ServiceNow WebexCC Activity Transform Map.

Fügen Sie eine neue Spalte hinzu, z. B. Name des Kunden Feldzuordnung.

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

Listenspalten personalisieren

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

Wie von Service Now empfohlen, ändern Sie die Auswahlaktion von "Erstellen" in "Ignorieren".

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

Telefonprotokollliste konfigurieren

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

Gehe zu Script Include

Fügen Sie nur eine Leitung hinzu webexcc.u_customername=actInfo.CustomerName Zu propUtils.

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

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
//               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'
});

Erstellen einer CAD-Variablen im Flow Designer

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

Hinzufügen der CAD-Variablen zum Desktop-Layout

Beispiel

"CadName1:SnowField1,CadName2:SnowField2"
 CadName1 is CustomerName
 SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Example source code for adding the CAD variable to the Desktop Layout.

Demo-Screenshots

Zeigen Sie die neu hinzugefügte CAD-Variable in der WebexCC-Aktivitätstabelle an.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

Erstellen einer CAD-Variablen für Flow Designer

Dringlichkeit des Vorfalls

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Auswirkungen des Vorfalls

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Skriptaktualisierung "Service Now"

Zu den Aktualisierungen des Skripts gehören:

  1. Rufen Sie den Filter-Navigator auf und suchen Sie nach Skript-Includes

    Wählen Sie unter "Systembenutzeroberfläche " die Option "Skripteinschlüsse" aus.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtern Sie den Namen mit propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Ändern der Methode BenutzerGetSysId im Feld Skript .

    ServiceNow developer instance Script Includes – propUtils details page.

    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='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;
            },

Eine Methodenänderung auf UI-Seiten
  1. Wechseln Sie zum Filter-Navigator, und suchen Sie nach UI-Seiten.

    Wählen Sie unter "Systembenutzeroberfläche" die Option "UI-Seiten " aus.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtern Sie die UI-Seiten nach Name , und suchen Sie nach agentdesktop.

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. Ändern Sie die Screenshot Im Skriptfeld.

    ServiceNow developer instance UI Page – agentdesktop details page.

    aktuelle Funktion:

    // 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
    });
    
    }

    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('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));
       
    }

Wenn die Anruferinformationen in CRM vorhanden sind und kein neuer oder im Gange befindlicher Vorfall vorliegt, öffnet die Anwendung einen neuen Vorfall

ServiceNow example of an incident.

ServiceNow example of an interaction.

Ändern Sie den Code auf ServiceNow

Fügen Sie neue Spalten zum WebexCC IMP-Aktivität Tisch

Öffnen Sie die WebexCC IMP-Aktivität Tisch

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Neue Spalte hinzufügen – InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

Neue Spalte hinzufügen – IncidentNumber

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

Klicken Sie auf Aktualisieren.

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

Fügen Sie neue Spalten zum Telefonprotokoll Tisch

Öffnen Sie die Telefonprotokoll Tisch

ServiceNow developer instance Phone Log table.

Neue Spalte hinzufügen – InteractionsNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

Neue Spalte hinzufügen – IncidentNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

WebexCC-Aktivitätstransformationskarte

Offen Karte transformieren Über den Filter-Navigator

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

Anklicken WebexCC-Aktivität TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Neu hinzufügen – für Interaktionsnummernzuordnung

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

Neu hinzufügen – für Incident-Nummern-Zuordnung

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

Klicken Sie auf Aktualisieren.

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

Änderungen am Skript beinhalten

  1. Gehen Sie zum Filter-Navigator und suchen Sie nach "Skript-Includes".

    Wählen Sie unter "Systembenutzeroberfläche" die Option "Skripteinschlüsse " aus.

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. Filtern Sie den Namen mit propUtils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. Ändern der Methode setWebexcctable.

    ServiceNow developer instance Script includes - propUtils page

    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()) {
                    
                    //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;
           },

Methodenänderungen auf UI-Seiten

  1. Gehen Sie zum Filter-Navigator und suchen Sie nach UI-Seiten

    Wählen Sie unter "Systembenutzeroberfläche" die Option "UI-Seiten " aus.

    ServiceNow developer instance filter navigator with search for ‘Ui page’

  2. Filtern Sie die UI-Seiten nach Name , und suchen Sie nach agentdesktop.

    ServiceNow developer instance UI Pages with Name filter applied to search.

  3. Ändern Sie die nowAktivitäten und Screenpop -Funktion im Skript enthalten.

    ServiceNow developer instance UI Page – agentdesktop.

    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

ServiceNow developer instance Phone Logs page.

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-Datensatz

Erstellen Sie für jeden neuen Anruf im WebexCC CRM Connector in ServiceNow einen neuen Incident-Datensatz.

  1. Suche nach Geschäftsregeln im Filter-Navigator

    ServiceNow developer instance Business Rules page header.
  2. Klicken Sie auf Neu.

    ServiceNow developer instance Business Rule – New Record.

    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;
                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;
    }

    Beispielkonfiguration der Geschäftsregel

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. Client aufrufbar aktivieren

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    Computer Telephony Integration (CTI) Processing For Incident ist als True markiert.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Aktualisieren Sie die Screenpop-URL mit der benutzerdefinierten CTI-Regel " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
Beispiel

Der sysparm_cti_rule=name , wobei 'name' der Name einer Funktion ist, soll für CTI Processing aufgerufen werden, anstatt das Standardskript zu verwenden.

Definieren Sie die Funktion in einem sys_script Eintrag, der als mandantenfähig gekennzeichnet ist .

Wenn Sie GlideRecords in der Funktion Insert, 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.

Referenzen

Anpassung 2 – CAD-Variable in Webex Contact Center Aktivitätstabelle einfügen

Übersicht

In diesem Artikel wird der Prozess zum Hinzufügen einer zusätzlichen Spalte zur ServiceNow-Tabelle beschrieben, webexcc_activity, die bei der Installation des 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 POST Anrufaktivitätsprotokoll hinzufügen und diese in den Daten der POST Anrufaktivitätstabelle speichern.

  • 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 diese 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 enthält nur die Techniken zum Anpassen und Erweitern des Konnektors.

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

Spalte zu WebexCC-Aktivität hinzufügen
  1. Bearbeiten Sie die Tabelle in der Entwicklerversion von ServiceNow.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Gehen Sie zum Studio > Webex Contact Center.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. Wählen Sie die WebexCC-Aktivitätstabelle aus .

    App Engine Studio WebexCC Activity table.
  4. Beispiel: CustomerName.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

  5. Wählen Sie Listenlayout für WebexCC-Aktivität aus.

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Neues Skript erstellen Enthält

Dieser Schritt ist nicht erforderlich, wenn Sie das Update-Set XML verwenden – Es muss nur eine Zeile "webexcc.u_customername=actInfo.CustomerName" zu propUtils hinzugefügt werden.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

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;
 
               // 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'
});
Bearbeiten der UI-Seite mit einem neuen SkriptnamenApp Engine Studio agentdesktop UI page with new script name.

Erstellen einer CAD-Variablen im Flow DesignerWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Hinzufügen der CAD-Variablen zum Desktop-LayoutWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Demo-Screenshots

Zeigen Sie die neu hinzugefügte CAD-Variable in der WebexCC-Aktivitätstabelle an.

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

Der CRM-Connector basiert auf der Version des Widgets, die im JSON-Code für das Desktoplayout angegeben ist. Es ist äußerst wichtig, dass die Widget-Version im Desktop-Layout immer auf dem neuesten Stand ist.

Von Administratoren wird erwartet, dass sie sicherstellen, dass alle Desktop-Layouts für diesen CRM-Connector diese Widget-Version verwenden. Wenn das Layout nicht aktualisiert wird, um die neueste Version zu verwenden, werden Funktionen nicht mehr unterstützt und funktionieren möglicherweise nicht mehr korrekt.

  • Letzte ServiceNow-Update—ServiceNow_Desktop_0.1.0_v5.0.3.json. Ab März 2024 ist die Paketversion 1.0.9
  • Letztes XML Update—webexcc-servicenow-Update-Setv7-1-ActionsWidget.XML, Juni 2024

War dieser Artikel hilfreich für Sie?
War dieser Artikel hilfreich für Sie?