ServiceNow

Contact Center AI Platform (CCAI Platform) fornisce l'integrazione con ServiceNow CRM.

Impostazioni sviluppatore ServiceNow

Requisiti minimi preferiti per la versione di ServiceNow: Tokyo patch 1

Configurare un utente di autenticazione di base

È probabile che la verifica in due passaggi sia attivata e associata all'account amministratore ServiceNow. Di conseguenza, non può essere utilizzato per ottenere l'accesso amministrativo in CCAI Platform. A questo scopo, devi creare un account utente in ServiceNow.

Crea un utente di base con le credenziali:

  1. Vai a Utente > Nuovo.

  2. Compila i dettagli e seleziona Solo accesso al servizio web.

  3. Prendi nota dell'ID utente e della password.

Ruoli obbligatori in ServiceNow

I ruoli predefiniti in ServiceNow sono preconfigurati per fornire accesso e autorizzazioni specifici all'interno della piattaforma. Gli amministratori possono creare e configurare ruoli che concedono autorizzazioni specifiche, che regolano le azioni che possono compiere gli utenti e i gruppi con quel ruolo.

Per eseguire questa integrazione, devi disporre dei seguenti ruoli in ServiceNow:

  • user_admin: questo ruolo è progettato per gli amministratori che devono gestire utenti, gruppi, sedi e società all'interno dell'istanza ServiceNow.

  • sn_incident_read: questo ruolo fornisce accesso di sola lettura all'applicazione di gestione degli incidenti e alle relative funzioni. Consente agli utenti di visualizzare i record degli incidenti.

  • sn_incident_write: questo ruolo concede l'accesso in scrittura all'applicazione di gestione degli incidenti e alle relative funzioni, consentendo agli utenti di creare e modificare i record degli incidenti.

  • personalize_dictionary: questo ruolo consente la personalizzazione delle voci e delle etichette del dizionario per soddisfare requisiti aziendali specifici.

  • function_field_admin: questo ruolo è destinato agli utenti che devono creare, modificare e visualizzare i campi funzione specificamente all'interno del report designer. Non consente di creare o eliminare campi di funzione dall'elenco o dal modulo della piattaforma.

Configura le visualizzazioni delle istanze

Le sezioni seguenti descrivono le modifiche alla configurazione necessarie per le visualizzazioni delle istanze.

(Facoltativo) Aggiungere preferiti

I preferiti sono un modo rapido per trovare i link più utilizzati all'interno dell'istanza ServiceNow. Per aggiungere un preferito, seleziona l'icona a forma di stella accanto a un campo nel pannello Navigatore. Se in un secondo momento vuoi filtrare il pannello di navigazione per visualizzare solo i tuoi preferiti, puoi selezionare l'icona a forma di stella direttamente sotto il campo del navigatore dei filtri nel pannello di navigazione.

Esempi di preferiti utili:

  • Incidenti: associazioni ai record per Custom CRM.
  • Utenti: associazioni agli account per il CRM personalizzato.
  • Explorer API REST: un buon modo per testare l'API.

Aggiungere campi personalizzati manualmente

Seleziona l'icona di espansione (tre linee orizzontali) nell'angolo in alto a sinistra all'interno della visualizzazione dell'oggetto che vuoi modificare. Puoi farlo nella visualizzazione Self-service o nella visualizzazione predefinita.

  1. Nel menu, seleziona Configura > Progettazione moduli per aprire Progettazione moduli.

  2. Nella colonna a sinistra, seleziona la scheda Tipi di campi.

  3. Trascina il tipo di campo personalizzato che vuoi aggiungere.

  4. Una volta trascinato il tipo di campo nella sezione che preferisci, seleziona l'icona a forma di ingranaggio per visualizzare le Impostazioni.

  5. All'interno della finestra, modifica l'etichetta e prendi nota del nome. Il nome è quello che utilizzi nelle impostazioni dell'app della piattaforma CCAI.

  6. Seleziona Salva nell'angolo in alto a destra dello schermo.

Mappare i dati della sessione al CRM

Devi mappare i dati di sessione appropriati da CCAIP utilizzando Dialogflow e utilizzare i seguenti parametri:

Dati dell'agente virtuale

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

Metadati

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

Etichetta: column_label

Chiave API: element

I campi personalizzati si trovano allo stesso livello dei campi standard nella risposta di sys_user o incident.

Caricare un file dalla piattaforma CCAI al CRM

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

Metodo: POST

Formato dei dati della richiesta: property

Posizione dei dati delle risposte: data.result

Tipo: Multi-part form

Tipo di allegato: Attachment Url

URL allegato: download_link

Parametri: table below

Esempio di richiesta:

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

Integrare gli adattatori degli agenti (moduli personalizzati)

I passaggi seguenti descrivono la procedura per attivare gli adattatori degli agenti e la funzione Fai clic e chiama nell'istanza ServiceNow.

Installa e configura OpenFrame

  1. Vai a All (Tutti) > System Applications (Applicazioni di sistema) > All Available Applications (Tutte le applicazioni disponibili) > All (Tutti).

  2. Cerca OpenFrame.

  3. Installa OpenFrame.

  4. Una volta installato, vai a Tutti > OpenFrame > Configurations (Configurazioni).

  5. Crea la configurazione con un URL. Se hai più configurazioni all'interno di un'istanza ServiceNow, l'utente potrebbe non avere accesso a una configurazione appena creata. Controlla i tuoi gruppi e l'elenco degli ordini di configurazione di OpenFrame per determinare quale configurazione sta utilizzando l'utente.

  6. Digita sys_properties.list nella ricerca.

  7. Modifica glide.ui.concourse.onmessage_enforce_same_origin_whitelist.

  8. Aggiungi il nuovo URL all'elenco dei valori.

  9. Modifica sn_openframe.cross.origin.access.

  10. Aggiungi autoplay all'elenco dei valori.

Attivare la nuova esperienza UI per gli utenti

  1. Digita sys_properties.list nella barra di navigazione e fai clic su Invio.

  2. Imposta la proprietà di sistema glide.ui.polaris.experience su true.

  3. Imposta la preferenza utente glide.ui.polaris.use su false per il sistema.

  4. Imposta la preferenza utente glide.ui.polaris.use su true per un utente. (Puoi creare una riga delle preferenze utente.)

Aggiorna le proprietà di sistema

  1. Inserisci sys_properties.list nella barra di navigazione e fai clic su Invio.

  2. Modifica glide.ui.concourse.onmessage_enforce_same_origin_whitelist.

  3. Aggiungi l'URL all'elenco dei valori. Più valori devono essere separati da virgole.

  4. Modifica sn_openframe.cross.origin.access.

  5. Aggiungi la riproduzione automatica all'elenco dei valori.

  6. Modifica glide.ui.polaris.experience.

  7. Modifica in false, perché alcune funzionalità non funzionano se abilitate.

Aggiungere Click-to-call alla parte superiore del modulo

  1. Vai a Interfaccia utente di sistema > Azioni dell'interfaccia utente.

  2. Seleziona Crea nuova azione.

  3. Nel modulo illustrato, seleziona la tabella di cui farà parte questo Click to Call.

  4. Per i moduli con un riferimento a un contatto o a un utente, utilizza l'API g_form.getReference per accedere al numero di telefono dell'utente. Per le tabelle personalizzate, l'ID riferimento e gli attributi risultanti potrebbero essere diversi. La comunicazione con CCAI Platform sarà la stessa, quindi il payload e la struttura dei dati devono rimanere identici a quanto segue:

    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. Per i moduli con un numero da chiamare, utilizza l'API g_form.getValue per recuperare i valori pertinenti. Questo è un esempio dell'azione dell'interfaccia utente per la tabella Utenti. Per le tabelle personalizzate, i nomi dei campi del modulo potrebbero essere diversi. La comunicazione con la piattaforma CCAI sarà la stessa, quindi il payload e la struttura dei dati devono rimanere identici a quanto segue:

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

Aggiungere il click-to-call accanto ai riferimenti

  1. Il pulsante di chiamata accanto ai riferimenti ai contatti deve essere modificato all'interno del modulo. Fai clic con il tasto destro del mouse sul campo e vai a Configura dizionario. Per gli attributi aggiungi il valore show_phone o show_phone_customer_service al valore ref_contributions.

  2. In Macro UI, modifica show_phone e show_phone_customer_service.

  3. Sostituisci quanto segue:

Precedente:

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

Novità:

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

Impostazioni CRM

I passaggi seguenti illustrano come connettere l'API a ServiceNow utilizzando il portale della piattaforma CCAI.

  1. Nel portale della piattaforma CCAI, vai a Impostazioni > Impostazioni sviluppatore > CRM.

  2. Nella sezione Piattaforma agente, seleziona ServiceNow.

  3. Inserisci le informazioni sul tuo dominio ServiceNow nel campo Dominio ServiceNow. Può trattarsi di un'istanza dello sviluppatore o del fornitore, a seconda delle necessità, ma è una correlazione diretta con l'istanza e costituisce la prima parte dell'URL nell'indirizzo web del portale ServiceNow: https://{your instance}.servicenow.com.

  4. Nel campo ServiceNow Cloud Selection, seleziona Incident per un tipo di ticket di base. Se selezioni Custom, verranno visualizzate altre opzioni. Gli incidenti sono estensioni della tabella delle attività; gli oggetti personalizzati devono essere estensioni degli incidenti.

  5. Nei campi Credenziali di autenticazione, inserisci il tuo nome utente e la tua password.

  6. Se hai selezionato Incident per il tipo di campo Selezione cloud, vedrai i seguenti campi:

    • Lookup Account Object include tre campi a discesa: Object Type, Phone Number lookup fields e Phone number primary field.
  7. Se hai selezionato Custom per il tipo di campo Selezione cloud, vedrai i seguenti campi:

    • Oggetto record di ricerca:
      • Tipo di oggetto record di base: seleziona un tipo di tabella task o incident.
      • Tipo di oggetto record: questo campo verrà compilato con i dati se è stata estesa una tabella degli incidenti e puoi selezionarlo se necessario.
    • Lookup Account Object include tre campi a discesa: Object Type, Phone Number lookup fields e Phone number primary field.
  8. Campi ID utente personalizzati: seleziona questa casella se vuoi attivare i campi di ricerca utente personalizzati per le sessioni SDK per dispositivi mobili o web.

  9. Formato numero di telefono: consente di selezionare il formato da utilizzare per la visualizzazione dei numeri di telefono.

  10. File di metadati della sessione: seleziona questa casella per allegare i metadati della sessione ai record CRM.

  11. Fai clic su Salva per salvare le selezioni. Se hai selezionato la casella Campi User ID personalizzati, avrai la possibilità di creare campi personalizzati per i record. In questo modo, le schede dei campi personalizzati verranno aggiunte in fondo a ogni incidente ServiceNow, sotto le sezioni del codice di risoluzione e delle note di risoluzione della pagina.

Campi personalizzati per i record

Si tratta di campi personalizzati già creati per l'istanza ServiceNow in Form Designer. Le istruzioni su come creare altri campi personalizzati sono disponibili nella documentazione di ServiceNow nella sezione ServiceNow CRM Setup, sezione Add Custom Fields Manually.

Campo Tipo Definizione
u_ujet_custom_field_after_call_work Stringa Durata dell'attività successiva alla chiamata
u_ujet_custom_field_call_duration Stringa Durata chiamata
u_ujet_custom_field_comm_id Numero intero ID chiamata o chat a seconda del tipo di contatto
u_ujet_custom_field_rating Numero intero Punteggio CSAT
u_ujet_custom_field_email_via_web Stringa Email inviata dal web
u_ujet_custom_field_feedback Stringa Feedback
u_ujet_custom_field_from_phone_number Stringa Numero di telefono del chiamante
u_ujet_custom_field_hold_duration Stringa Tempo totale di attesa
u_ujet_custom_field_menu_path Stringa Selezione del menu
u_ujet_custom_field_queue_name Stringa Nome coda
u_ujet_custom_field_session_type Stringa Tipo di sessione
u_ujet_custom_field_verification Vero/Falso Conferma che la verifica è stata completata
u_ujet_custom_field_wait_time Stringa Tempo totale di attesa

Configura OAuth

Per configurare OAuth, segui i passaggi per creare un'applicazione OAuth in ServiceNow. Poi, inserisci le credenziali (ID client OAuth e client secret OAuth) in Impostazioni sviluppatore > CRM > Metodo di autenticazione.

Crea un'applicazione OAuth in Service Now

  1. Nel tuo account ServiceNow, vai a All (Tutti) > System OAuth (OAuth di sistema) > Application Registry (Registro applicazioni).

  2. Crea un'applicazione OAuth e seleziona Crea un endpoint API OAuth per client esterni.

  3. Configura i seguenti campi:

    • Name (Nome): inserisci un nome univoco.

    • ID client: l'ID client viene generato automaticamente dal server OAuth di ServiceNow.

    • Client secret: il client secret per l'applicazione OAuth. Lascia il campo vuoto per la generazione automatica.

    • Durata del token di aggiornamento: il tempo, in secondi, per cui il token di aggiornamento sarà valido.

    • Durata del token di accesso: il tempo, in secondi, per cui il token di accesso sarà valido.

    • URL di reindirizzamento: inserisci l'URL dell'ambiente più la sottodirectory. Ad esempio: https://servicenow.yourcompany.co/v1/servicenow/oauth_callback

    • Imponi limitazione token: limita l'utilizzo del token di accesso alle API definite nelle norme di accesso all'API REST riportate nella documentazione di ServiceNow. Se deselezioni questa opzione, l'utilizzo del token di accesso sarà consentito in altre API REST.

  4. Fai clic su Invia.

  5. Dopo aver creato l'applicazione, torna al record e recupera l'ID client e il client secret appena creato.

Aggiornare le impostazioni nelle impostazioni sviluppatore

  1. Vai a Impostazioni sviluppatore > CRM.

  2. Assicurati che le impostazioni siano inserite e configurate come descritto nei passaggi precedenti.

  3. Nella sezione Metodo di autenticazione, fai clic su OAuth.

  4. Inserisci l'ID client OAuth e il client secret OAuth. (vedi il passaggio 5 sopra).

  5. Fai clic su Salva.

  6. Fai clic su Collega credenziali.

Mapping dei campi personalizzati per Virtual Agent

Se utilizzi Virtual Agent, configura questo campo nella schermata Mappature dei campi personalizzati. In questo modo, le variabili dell'agente virtuale possono essere trasferite dal payload della sessione dell'agente virtuale a ServiceNow. I nomi delle variabili possono essere qualsiasi stringa, le etichette dei campi elencate qui sono un esempio.

Nella schermata Mappature dei campi personalizzati, configura la connessione tra le variabili create dalle definizioni del payload utilizzate nella configurazione iniziale dell'agente virtuale e la variabile pertinente in ServiceNow.

Titolo della mappatura dei campi Etichetta campo CRM Etichetta campo dati personalizzato
Feedback sull'agente virtuale ccaip_custom_field_incident_feedback va_feedback

Configurare altre impostazioni

Troverai le altre impostazioni che ti consentiranno di integrare correttamente la piattaforma CCAI nella tua istanza ServiceNow nel menu a discesa Impostazioni. Per ulteriori informazioni sulla configurazione di ogni sezione, consulta i link nell'elenco seguente.

Output di test

Ora puoi verificare la funzionalità dei flussi di chiamata e chat facendo clic sui pulsanti pertinenti nella parte superiore della schermata del portale CCAI Platform. È importante assicurarsi che il blocco popup sia disattivato durante l'esecuzione di questo test.

Dovresti aspettarti la creazione di un incidente in ServiceNow, con il contatto della chiamata o della chat elencato nella sezione Attività dell'incidente. Questo dovrebbe essere visualizzato come Nota di lavoro, anziché come Commento all'incidente, in modo che questa attività di backend non sia visibile ai clienti.

La descrizione della richiesta verrà compilata automaticamente con "Chiamata tramite la piattaforma CCAI" o "Chat tramite la piattaforma CCAI" e potrebbe dover essere aggiornata dagli agenti.

Una volta soddisfatto dei risultati della chiamata o della chat, puoi inserire un codice e una nota di risoluzione (se sono stati configurati i campi del codice e delle note di risoluzione di ServiceNow), quindi chiudere la richiesta.

Per verificare che la richiesta sia stata chiusa, potresti dover fare clic sul pulsante di navigazione back del browser. È il comportamento previsto nell'istanza ServiceNow che, dopo la risoluzione della richiesta, la chiude automaticamente e ti porta a una pagina di record del cliente.