ServiceNow

Die Contact Center AI Platform (CCAI Platform) bietet eine Integration mit ServiceNow CRM.

ServiceNow-Entwicklereinstellungen

Bevorzugte Mindestanforderungen an die ServiceNow-Version: Tokyo patch 1

Nutzer für die Basisauthentifizierung einrichten

Wahrscheinlich ist für das ServiceNow-Administratorkonto die 2‑Faktor-Authentifizierung aktiviert und mit diesem Nutzer verknüpft. Daher kann sie nicht verwendet werden, um Administratorzugriff in der CCAI Platform zu erhalten. Sie müssen zu diesem Zweck ein Nutzerkonto in ServiceNow erstellen.

Erstellen Sie einen einfachen Nutzer mit Anmeldedaten:

  1. Klicken Sie auf Nutzer > Neu.

  2. Geben Sie die Details ein und wählen Sie „Nur Webdienstzugriff“ aus.

  3. Notieren Sie sich die Nutzer-ID und das Passwort.

Erforderliche Rollen in ServiceNow

Standardrollen in ServiceNow sind vorkonfiguriert, um bestimmten Zugriff und bestimmte Berechtigungen innerhalb der Plattform zu ermöglichen. Administratoren können Rollen erstellen und konfigurieren, die bestimmte Berechtigungen gewähren. Diese Berechtigungen legen fest, was Nutzer und Gruppen mit dieser Rolle tun können.

Für diese Integration benötigen Sie die folgenden Rollen in ServiceNow:

  • user_admin: Diese Rolle ist für Administratoren vorgesehen, die Nutzer, Gruppen, Standorte und Unternehmen in der ServiceNow-Instanz verwalten müssen.

  • sn_incident_read: Diese Rolle bietet schreibgeschützten Zugriff auf die Incident Management Application und die zugehörigen Funktionen. Nutzer können damit Vorfallsdatensätze aufrufen.

  • sn_incident_write: Diese Rolle gewährt Schreibzugriff auf die Incident Management-Anwendung und die zugehörigen Funktionen. Nutzer können damit Vorfallsdatensätze erstellen und ändern.

  • personalize_dictionary: Mit dieser Rolle können Wörterbucheinträge und Labels an spezifische Geschäftsanforderungen angepasst werden.

  • function_field_admin: Diese Rolle ist für Nutzer vorgesehen, die Funktionsfelder speziell im Berichtsdesigner erstellen, bearbeiten und ansehen müssen. Es bietet nicht die Möglichkeit, Funktionsfelder aus der Plattformliste oder dem Formular zu erstellen oder zu löschen.

Instanzansichten konfigurieren

In den folgenden Abschnitten werden die Konfigurationsänderungen beschrieben, die für Instanzansichten erforderlich sind.

Optional: Favoriten hinzufügen

Über Favoriten können Sie schnell auf die am häufigsten verwendeten Links in der ServiceNow-Instanz zugreifen. Wenn Sie ein Feld als Favorit hinzufügen möchten, wählen Sie im Navigationsbereich das Sternsymbol neben dem Feld aus. Wenn Sie das Navigationsfeld später filtern möchten, sodass nur Ihre Favoriten angezeigt werden, können Sie im Navigationsfeld direkt unter dem Feld „Filter“ das Sternsymbol auswählen.

Beispiele für nützliche Favoriten:

  • Vorfälle: Zuordnungen zu Datensätzen für benutzerdefiniertes CRM.
  • Nutzer: Verknüpfungen mit Konten für benutzerdefiniertes CRM.
  • Rest API Explorer: Eine gute Möglichkeit, die API zu testen.

Benutzerdefinierte Felder manuell hinzufügen

Wählen Sie in der Objektansicht, die Sie ändern möchten, oben links das Symbol zum Maximieren (3 horizontale Linien) aus. Sie können dies in der Self-Service-Ansicht oder in der Standardansicht tun.

  1. Wählen Sie im Menü Konfigurieren > Formulardesign aus, um den Formulardesigner zu öffnen.

  2. Wählen Sie in der linken Spalte den Tab Feldtypen aus.

  3. Ziehen Sie den Typ des benutzerdefinierten Felds, das Sie hinzufügen möchten.

  4. Nachdem Sie den Feldtyp in den gewünschten Bereich gezogen haben, wählen Sie das Zahnradsymbol aus, um die Einstellungen aufzurufen.

  5. Ändern Sie im Fenster das Label und notieren Sie sich den Namen. Diesen Namen verwenden Sie in den App-Einstellungen der CCAI Platform.

  6. Wählen Sie rechts oben auf dem Bildschirm Speichern aus.

Sitzungsdaten dem CRM zuordnen

Sie müssen die entsprechenden Sitzungsdaten aus CCAIP mithilfe von Dialogflow zuordnen und die folgenden Parameter verwenden:

Virtual Agent-Daten

{
  "ujet": {
    "session_variable": {
      "capture_target": "payload",
      "payload": {
        "value_one": "$session.params.payload_value_one"
      };
      "capture_type": [ "comment", "field" ] // optional, default of ["comment"]
    }
  }
}

Metadaten

https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dsys_user https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dincident

Label: column_label

API-Schlüssel: element

Benutzerdefinierte Felder befinden sich in der Antwort von sys_user oder incident auf derselben Ebene wie die Standardfelder.

Datei aus der CCAI Platform in das CRM hochladen

https://INSTANCE_URL.service-now.com/api/now/attachment/upload

Methode: POST

Format der Anfrage: property

Speicherort der Antwortdaten: data.result

Typ: Multi-part form

Anhangstyp: Attachment Url

URL des Anhangs: download_link

Parameter: table below

Beispielanfrage:

{
    file: FILE_DATA,
    table_name: incident,
    table_sys_id: RECORD_ID
}

Agent-Adapter (benutzerdefinierte Formulare) einbinden

In den folgenden Schritten wird beschrieben, wie Sie Agent-Adapter und die Funktion Click to Call in der ServiceNow-Instanz aktivieren.

OpenFrame installieren und konfigurieren

  1. Gehen Sie zu Alle > Systemanwendungen > Alle verfügbaren Anwendungen > Alle.

  2. Suchen Sie nach OpenFrame.

  3. Installieren Sie OpenFrame.

  4. Rufen Sie nach der Installation Alle > OpenFrame > Konfigurationen auf.

  5. Konfiguration mit einer URL erstellen Wenn Sie mehrere Konfigurationen in einer ServiceNow-Instanz haben, hat Ihr Nutzer möglicherweise keinen Zugriff auf eine neu erstellte Konfiguration. Prüfen Sie Ihre Gruppen und die Liste der OpenFrame-Konfigurationsbefehle, um herauszufinden, welche Konfiguration Ihr Nutzer verwendet.

  6. Geben Sie sys_properties.list in die Suche ein.

  7. glide.ui.concourse.onmessage_enforce_same_origin_whitelist bearbeiten

  8. Fügen Sie die neue URL der Liste der Werte hinzu.

  9. sn_openframe.cross.origin.access bearbeiten

  10. Fügen Sie autoplay der Liste der Werte hinzu.

Neue Benutzeroberfläche für Nutzer aktivieren

  1. Geben Sie sys_properties.list in die Navigationsleiste ein und drücken Sie die Eingabetaste.

  2. Setzen Sie die Systemeigenschaft glide.ui.polaris.experience auf true.

  3. Setzen Sie die Nutzereinstellung glide.ui.polaris.use für das System auf false.

  4. Legen Sie die Nutzereinstellung glide.ui.polaris.use für einen Nutzer auf true fest. Sie können eine Zeile mit Nutzerpräferenzen erstellen.

Systemattribute aktualisieren

  1. Geben Sie sys_properties.list in die Navigationsleiste ein und drücken Sie die Eingabetaste.

  2. glide.ui.concourse.onmessage_enforce_same_origin_whitelist bearbeiten

  3. Fügen Sie die URL der Liste der Werte hinzu. Mehrere Werte müssen durch Kommas getrennt werden.

  4. sn_openframe.cross.origin.access bearbeiten

  5. Fügen Sie der Liste der Werte „autoplay“ hinzu.

  6. glide.ui.polaris.experience bearbeiten

  7. Ändern Sie den Wert in false, da einige Funktionen nicht funktionieren, wenn sie aktiviert sind.

„Zum Anrufen klicken“ oben im Formular einfügen

  1. Gehen Sie zu System-UI > UI-Aktionen.

  2. Wählen Sie Neue Aktion erstellen aus.

  3. Wählen Sie im Formular, wie in der Abbildung dargestellt, die Tabelle aus, zu der dieser Click-to-Call-Link gehören soll.

  4. Bei Formularen mit einem Verweis auf einen Kontakt oder Nutzer verwenden Sie die g_form.getReference API, um auf die Telefonnummer des Nutzers zuzugreifen. Bei benutzerdefinierten Tabellen können sich die Referenz-ID und die resultierenden Attribute unterscheiden. Die Kommunikation mit der CCAI-Plattform bleibt unverändert. Die Nutzlast und die Datenstruktur müssen also mit den folgenden identisch sein:

    function clickToDial() {
      var user = g_form.getReference('caller_id',function(res) {
        var phone = res.phone || res.mobile_phone;
        var payload = {"name": "clicktodial", "number": phone}; 
        var data = {"payload": payload, "method": "openframe_communication" }; 
        CustomEvent.fireAll("openframe_request", data);
      });
    }
    
  5. Wenn Sie ein Formular mit einer Nummer innerhalb des Formulars aufrufen möchten, verwenden Sie die g_form.getValue-API, um die entsprechenden Werte abzurufen. Dies ist ein Beispiel für die UI-Aktion für die Tabelle „Nutzer“. Bei benutzerdefinierten Tabellen können die Namen der Formularfelder abweichen. Die Kommunikation mit der CCAI-Plattform bleibt unverändert. Nutzlast und Datenstruktur müssen also identisch sein:

    function clickToDial() {
      var phone = g_form.getValue('phone') || g_form.getValue('mobile_phone');
      var payload = {"name": "clicktodial", "number": phone}; 
      var context = {"payload": payload, "method" : "openframe_communication" }; 
      CustomEvent.fireAll("openframe_request", context);
    }
    

„Click-to-Call“ neben Verweisen hinzufügen

  1. Die Anrufschaltfläche neben Kontaktverweisen muss im Formular bearbeitet werden. Klicken Sie mit der rechten Maustaste auf das Feld und wählen Sie Wörterbuch konfigurieren aus. Fügen Sie für Attribute entweder den Wert show_phone oder show_phone_customer_service zum ref_contributions-Wert hinzu.

  2. Bearbeiten Sie in UI-Makros show_phone und show_phone_customer_service.

  3. Ersetzen Sie Folgendes:

Zurück:

var task =    {"entity": p.attr('data-task-table'), "query" :"sys_id="+p.attr('data-task-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-task-value'),"label":p.attr('data-task-label')};
                                        var company = {"entity": p.attr('data-company-table'),"query":"sys_id="+p.attr('data-company-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-company-value'),"label":p.attr('data-company-label')};
                                        var caller = {"entity": p.attr('data-caller-table'),"query": "sys_id="+p.attr('data-caller-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-caller-value'),"label":p.attr('data-caller-label')};
                                        
                                        var callContext = [];
                                        callContext.push(task);
                                        callContext.push(company);
                                        callContext.push(caller);
                
                                        var metaData = {"phoneNumber":p.attr('data-caller-phone'),"taskId":p.attr('data-task-id')};
                                        
                                        var data =    {"metaData":metaData , "data": callContext};
                                        var payload = {"type": "OUTGOING_CALL", "data" : data};
                                        var createInteractionData ={};
                                        createInteractionData.interactionSysId = -1;
                                        createInteractionData.direction = 'outbound';
                                        createInteractionData.context_document = p.attr('data-task-id');
                                        createInteractionData.context_table = p.attr('data-task-table');
                                        createInteractionData.account = p.attr('data-company-id');
                                        if(p.attr('data-caller-table') === 'customer_contact')
                                                createInteractionData.contact = p.attr('data-caller-id');
                                        createInteractionData.opened_for = p.attr('data-caller-id');
        
                                        var ga = new GlideAjax('sn_openframe.OpenFrameAjaxUtility');
                                        ga.addParam('sysparm_name', 'createInteractionWithPropertyCheck');
                                        ga.addParam('context', JSON.stringify(createInteractionData));
                                        ga.getXML(function(serverResponse) {
                                                var result = serverResponse.responseXML.getElementsByTagName("result");
                                                var output = JSON.parse(result[0].getAttribute("data"));
                                                if(output.status == "success"){
                                                        var interaction = {"entity": "interaction", "query" :"sys_id="+output.fields.interactionSysId, "value":output.fields.number, "label":"Interaction", "display":false};
                                                        payload.data.data.push(interaction);
                                                }
                                                var context = {"payload": payload, "method" : "openframe_communication" };
                                                jslog("context with interaction : "+ JSON.stringify(context));
                                                CustomEvent.fireAll("openframe_request", context);
                                        });

Neu:

var phone = p.attr('data-caller-phone')
                   var payload = {"name": "clicktodial", "number": phone}; 
                   var data = {"payload": payload, "method": "openframe_communication" }; 
                   CustomEvent.fireAll("openframe_request", data);

CRM-Einstellungen

In den folgenden Schritten wird beschrieben, wie Sie die API über das CCAI Platform-Portal mit ServiceNow verbinden.

  1. Rufen Sie im CCAI Platform-Portal Einstellungen > Entwicklereinstellungen > CRM auf.

  2. Wählen Sie im Abschnitt „Agent Platform“ (Agent-Plattform) die Option ServiceNow aus.

  3. Geben Sie Ihre ServiceNow-Domaininformationen in das Feld ServiceNow Domain ein. Dies kann je nach Bedarf eine Entwickler- oder Anbieterinstanz sein, steht aber in direkter Beziehung zur Instanz und ist der erste Teil der URL in der ServiceNow-Portal-Webadresse: https://{your instance}.servicenow.com.

  4. Wählen Sie im Feld ServiceNow Cloud Selection (ServiceNow-Cloud-Auswahl) Incident für einen einfachen Tickettyp aus. Wenn Sie Custom auswählen, werden zusätzliche Optionen angezeigt. Vorfälle sind Erweiterungen der Aufgabentabelle. Benutzerdefinierte Objekte sollten Erweiterungen von Vorfällen sein.

  5. Geben Sie in den Feldern Authentifizierungsanmeldedaten Ihren Nutzernamen und Ihr Passwort ein.

  6. Wenn Sie Incident für den Feldtyp „Cloud Selection Field“ ausgewählt haben, werden die folgenden Felder angezeigt:

    • Lookup Account Object enthält drei Drop-down-Felder: Object Type, Phone Number lookup fields und Phone number primary field.
  7. Wenn Sie Custom für den Feldtyp „Cloud Selection Field“ ausgewählt haben, werden die folgenden Felder angezeigt:

    • Lookup Record Object (Lookup-Datensatzobjekt):
      • Basiseintragsobjekttyp: Wählen Sie entweder einen task- oder einen incident-Tabellentyp aus.
      • Datensatzobjekttyp: Dieses Feld wird mit Daten gefüllt, wenn eine Incident-Tabelle erweitert wurde. Sie können es bei Bedarf auswählen.
    • Lookup Account Object enthält drei Drop-down-Felder: Object Type, Phone Number lookup fields und Phone number primary field.
  8. Benutzerdefinierte Felder für Nutzer-IDs: Markieren Sie dieses Kästchen, wenn Sie benutzerdefinierte Suchfelder für Nutzer für Mobile- oder Web-SDK-Sitzungen aktivieren möchten.

  9. Telefonnummernformat: Hier können Sie das Format auswählen, das für die Anzeige von Telefonnummern verwendet werden soll.

  10. Datei mit Sitzungsmetadaten: Setzen Sie ein Häkchen, um CRM-Datensätzen Sitzungsmetadaten anzuhängen.

  11. Klicken Sie auf Speichern, um die Auswahl zu speichern. Wenn Sie das Kästchen Benutzerdefinierte Felder für Nutzer-IDs angekreuzt haben, können Sie benutzerdefinierte Felder für Datensätze erstellen. Dadurch werden unten auf jeder ServiceNow-Vorgangsseite unter den Abschnitten „Resolution Code“ (Lösungscode) und „Resolution Notes“ (Lösungsanmerkungen) Tabs für benutzerdefinierte Felder hinzugefügt.

Benutzerdefinierte Felder für Datensätze

Dies sind benutzerdefinierte Felder, die bereits für die ServiceNow-Instanz im Formulardesigner erstellt wurden. Eine Anleitung zum Erstellen anderer benutzerdefinierter Felder finden Sie in der ServiceNow-Dokumentation unter ServiceNow CRM Setup (ServiceNow CRM-Einrichtung) im Abschnitt Add Custom Fields Manually (Benutzerdefinierte Felder manuell hinzufügen).

Feld Typ Definition
u_ujet_custom_field_after_call_work String Dauer der Anrufnachbereitung
u_ujet_custom_field_call_duration String Anrufdauer
u_ujet_custom_field_comm_id Ganzzahl Anruf- oder Chat-ID je nach Kontakttyp
u_ujet_custom_field_rating Ganzzahl CSAT-Wert
u_ujet_custom_field_email_via_web String E‑Mail über das Web gesendet
u_ujet_custom_field_feedback String Feedback
u_ujet_custom_field_from_phone_number String Telefonnummer des Anrufers
u_ujet_custom_field_hold_duration String Gesamte Wartezeit
u_ujet_custom_field_menu_path String Menüauswahl
u_ujet_custom_field_queue_name String Warteschlangenname
u_ujet_custom_field_session_type String Sitzungstyp
u_ujet_custom_field_verification Wahr/falsch Bestätigen, dass die Überprüfung abgeschlossen ist
u_ujet_custom_field_wait_time String Gesamtwartezeit

OAuth einrichten

Um OAuth zu konfigurieren, müssen Sie eine OAuth-Anwendung in ServiceNow erstellen. Geben Sie dann unter Entwicklereinstellungen > CRM > Authentifizierungsmethode die Anmeldedaten (OAuth-Client-ID und OAuth-Clientschlüssel) ein.

OAuth-Anwendung in ServiceNow erstellen

  1. Rufen Sie in Ihrem ServiceNow-Konto Alle > System OAuth > Anwendungsregistrierung auf.

  2. Erstellen Sie eine OAuth-Anwendung und wählen Sie OAuth-API-Endpunkt für externe Clients erstellen aus.

  3. Konfigurieren Sie die folgenden Felder:

    • Name: Geben Sie einen eindeutigen Namen ein.

    • Client-ID: Die Client-ID wird automatisch vom ServiceNow-OAuth-Server generiert.

    • Clientschlüssel: Dies ist der Clientschlüssel für die OAuth-Anwendung. Lassen Sie das Feld leer, um die Zusammenfassung automatisch generieren zu lassen.

    • Lebensdauer des Aktualisierungstokens: Die Zeit in Sekunden, in der das Aktualisierungstoken gültig ist.

    • Lebensdauer des Zugriffstokens: Die Zeit in Sekunden, für die das Zugriffstoken gültig ist.

    • Weiterleitungs-URL: Geben Sie die URL Ihrer Umgebung plus das Unterverzeichnis ein. Beispiel: https://servicenow.yourcompany.co/v1/servicenow/oauth_callback

    • Token-Einschränkung erzwingen: Beschränkt die Verwendung des Zugriffstokens auf die APIs, die in den REST API Access Policies in der ServiceNow-Dokumentation definiert sind. Wenn Sie diese Option deaktivieren, kann das Zugriffstoken für andere REST APIs verwendet werden.

  4. Klicken Sie auf Senden.

  5. Nachdem Sie die Anwendung erstellt haben, rufen Sie den Eintrag noch einmal auf und rufen Sie die Client-ID und den neu erstellten Clientschlüssel ab.

Einstellungen in den Entwicklereinstellungen aktualisieren

  1. Rufen Sie Entwicklereinstellungen > CRM auf.

  2. Achten Sie darauf, dass die Einstellungen gemäß den vorherigen Schritten eingegeben und konfiguriert wurden.

  3. Klicken Sie unter „Authentifizierungsmethode“ auf OAuth.

  4. Geben Sie die OAuth-Client-ID und den OAuth-Clientschlüssel ein. Siehe Schritt 5 oben.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie auf Anmeldedaten verknüpfen.

Benutzerdefinierte Feldzuordnung für Virtual Agent

Wenn Sie Virtual Agent verwenden, konfigurieren Sie dieses Feld auf dem Bildschirm Custom Field Mappings (Zuordnungen benutzerdefinierter Felder). So können die Virtual Agent-Variablen von der Virtual Agent-Sitzungsnutzlast an ServiceNow übertragen werden. Variablennamen können beliebige Strings sein. Die hier aufgeführten Feldlabels sind nur ein Beispiel.

Konfigurieren Sie auf dem Bildschirm Benutzerdefinierte Feldzuordnungen die Verbindung zwischen den Variablen, die durch die Nutzlastdefinitionen erstellt wurden, die Sie in der ursprünglichen Virtual Agent-Konfiguration verwendet haben, und der entsprechenden Variable in ServiceNow.

Titel der Feldzuordnung CRM-Feldlabel Label für benutzerdefiniertes Datenfeld
Feedback zum virtuellen Kundenservicemitarbeiter ccaip_custom_field_incident_feedback va_feedback

Weitere Einstellungen konfigurieren

Die anderen Einstellungen, mit denen Sie die CCAI-Plattform richtig in Ihre ServiceNow-Instanz einbinden können, finden Sie im Drop-down-Menü Einstellungen. Über die Links in der folgenden Liste erhalten Sie weitere Informationen zum Konfigurieren der einzelnen Abschnitte.

Testausgaben

Sie können die Funktionalität Ihrer Anruf- und Chat-Abläufe jetzt überprüfen, indem Sie oben auf dem Bildschirm des CCAI Platform-Portals auf die entsprechenden Schaltflächen klicken. Achten Sie darauf, dass Ihr Pop‑up-Blocker deaktiviert ist, wenn Sie diesen Test ausführen.

In ServiceNow sollte ein Vorfall erstellt werden, wobei der Anruf- oder Chatkontakt im Abschnitt Aktivitäten des Vorfalls aufgeführt ist. Dies sollte als Arbeitsnotiz und nicht als Vorfallskommentar angezeigt werden, damit diese Backend-Aktivität für Kunden nicht sichtbar ist.

Die Fallbeschreibung wird automatisch mit „Anruf über die CCAI Platform“ oder „Chat über die CCAI Platform“ ausgefüllt und muss möglicherweise von Kundenservicemitarbeitern aktualisiert werden.

Wenn Sie mit den Ergebnissen Ihres Anrufs oder Chats zufrieden sind, können Sie einen Lösungscode und eine Notiz eingeben (sofern die Felder für Lösungscode und Notizen in ServiceNow konfiguriert wurden) und den Fall dann schließen.

Möglicherweise müssen Sie im Browser auf die Navigationsschaltfläche back klicken, um zu prüfen, ob der Fall geschlossen wurde. Es ist das erwartete Verhalten in der ServiceNow-Instanz, dass der Fall nach der Lösung automatisch geschlossen wird und Sie zur Seite mit dem Kundendatensatz weitergeleitet werden.