Integra Webex Contact Center con ServiceNow (versione 1—Legacy)

list-menuFeedback?
Quando integra Webex Contact Center con la console ServiceNow CRM, può avviare Webex Contact Center Desktop da ServiceNow.

Prerequisiti

La dimensione minima supportata per l'interfaccia softphone è di 500 px. Qualsiasi valore inferiore a 500 px può causare problemi di visualizzazione o funzionalità.

Prima di integrare Webex Contact Center con la console ServiceNow CRM, si assicuri di disporre di quanto segue:

Segua uno dei due metodi seguenti:

  • Per le istanze per sviluppatori, consigliamo di seguire i passaggi indicati nella guida alle istanze per sviluppatori.
  • Se possiede un'istanza con licenza aziendale, segua le linee guida per le istanze con licenza aziendale.

Non è consigliabile combinare l'app con licenza aziendale con le istanze sandbox per sviluppatori.

I canali digitali come chat ed email non sono supportati dai connettori CRM. Questo vale per tutte le integrazioni CRM che utilizzano questi connettori. Pianifichi di conseguenza i flussi di lavoro di implementazione e coinvolgimento dei clienti.

Le sezioni seguenti descrivono i passaggi per installare il connettore ServiceNow per le istanze di sviluppo.

1

Accedi al suo account del portale per sviluppatori ServiceNow e apra la Console di amministrazione.

2

Dall'area La mia istanza del menu Account, faccia clic su Inizia a creare.

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

3

Nella sua istanza di sviluppatore, dal campo Filter Navigator in alto a sinistra della finestra, acceda a Plugin.

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

4

Cerca il plugin Openframe con il titolo Openframe. Potrebbe essere necessario scorrere l'elenco.

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

5

Faccia clic su Installa per installare il plugin Openframe.

6

Nella finestra di dialogo Attiva plugin, faccia clic su Attiva.

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

7

Una volta completata l'attivazione del plug-in, faccia clic su Chiudi e ricarica il modulo nella finestra di dialogo Attivazione del plug-in.

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

Per verificare l'attivazione del plugin, dal campo Filter Navigator in alto a sinistra della finestra, acceda a OpenFrame.

9

Faccia clic su Configurazioni e si assicuri che il plug-in OpenFrame sia visualizzato nell'elenco delle configurazioni OpenFrame.

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

1

Scarichi l'ultimo file XML del System Update Set disponibile nel repository github a questo indirizzo: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nome del file: WebexCC-ServiceNow-Update-setv (X) .xml

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

2

Nella sua istanza ServiceNow, dal campo Filter Navigator in alto a sinistra della finestra, acceda a System Update Sets > Update Sets to Commit.

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

Faccia clic sul link Importa set di aggiornamento da XML.

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

4

Faccia clic su Scegli file, selezioni il file XML del System Update Set, quindi faccia clic su Carica.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

Il set di aggiornamento appare nell'elenco dei set di aggiornamento recuperati ed è nello stato Caricato.
5

Dall'elenco dei set di aggiornamenti recuperati, faccia clic sul nome del file del set di aggiornamenti (link) per aprire il set di aggiornamenti.

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

6

In alto a destra della finestra, faccia clic su Anteprima del set di aggiornamenti per verificare la presenza di problemi nel set di aggiornamenti.

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

7

Fai clic su Chiudi nella finestra di dialogo Anteprima del set di aggiornamento una volta completata l'anteprima.

ServiceNow developer portal with the update set preview success notification.

8

Fai clic su Conferma set di aggiornamento.

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

9

Fai clic su Chiudi nella finestra di dialogo Update Set Commit una volta completato il commit di Update Set.

ServiceNow developer portal with the update set commit success notification.

1

Nel campo del navigatore Filtri in alto a sinistra della finestra, digita sys_properties.liste premi invio.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

Nella pagina Proprietà del sistema, ordina le proprietà per data di aggiornamento. Si assicuri di poter visualizzare le seguenti proprietà del Webex Contact Center:

ServiceNow developer instance system properties page.

3

Fare clic agentdesktop_urlper aprire la agentdesktop_url pagina delle proprietà del sistema.

4

Nel campo Valore, inserire l'URL del Webex Contact Center Desktop in base alla regione operativa.

ServiceNow developer instance system property details for agentdesktop_url.

5

Fai clic su Aggiorna per salvare le modifiche.

6

(Facoltativo) Per cambiare il nome della tabella delle attività, modifica le proprietà webexccactivitytable come richiesto.

Nella pagina delle proprietà del sistema, faccia clic su webexccactivitytable.

Modifichi il campo Valore come richiesto.

ServiceNow developer instance system property details for webexactivitytable.

7

(Facoltativo) Aggiungere gruppi di utenti nei seguenti modi:

  1. Nel campo del navigatore Filtri in alto a sinistra della finestra, acceda a Gruppi in Sicurezza del sistema.

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Crei un nuovo gruppo di utenti o ne utilizzi uno esistente.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Faccia clic su Modifica.

  4. Cerca nella sn_openframe_usersezione Raccolta e lo sposti nel suo gruppo di utenti.

    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. Faccia clic su Salva.

  6. Aggiunga l'utente come membro del gruppo.

    ServiceNow developer instance group page with user roles assigned.

1

Dal campo del navigatore Filtri, acceda a OpenFrame > Configurazioni.

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

2

Faccia clic su Nuovo.

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

3

Inserisca le seguenti proprietà per l'URL:

  • Nome: Webex Contact Center Desktop

  • Titolo: Webex Contact Center

  • Larghezza: 550 (consigliata)

  • Altezza: 600 (consigliata)

4

A destra del campo URL, faccia clic sul pulsante Blocca e aggiunga agentdesktop.docome URL. (Effettuare questa configurazione passo per puntare alla pagina dell'interfaccia utente)

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

5

(Facoltativo) Seleziona il/i gruppo/i di utente/agente a cui assegnare la configurazione.

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

6

Faccia clic su Invia. L'URL appare come link.

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

7

Prima di provare a utilizzare il telefono OpenFrame, si assicuri di caricare il file JSON personalizzato ServiceNow Desktop Layout nel Webex Contact Center. Management Portal Per ulteriori informazioni, vedere Configurare il layout desktop ServiceNow su Webex Contact Center.

1

Scarichi il layout desktop per ServiceNow da https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

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

2

Aggiornare le proprietà nel file di layout del desktop, se necessario.

3

Vai al Webex Contact Center. Management Portal

4

Dalla barra di Management Portal navigazione, scelga Provisioning > Layout del desktop.

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

5

Faccia clic su Nuovo layout e inserisca i dettagli per il layout del desktop.

6

Carichi il file JSON di ServiceNow Desktop Layout.

7

Faccia clic su Salva per salvare la configurazione.

Ora può avviare il Webex Contact Center Desktop nella console ServiceNow.

8

Dal campo Navigator Filter, acceda a Service Operations Workspace.

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

Le sezioni seguenti descrivono i passaggi per installare il connettore ServiceNow per le istanze aziendali con licenza.

1

Accedi al suo account del portale per sviluppatori ServiceNow e apra la Console di amministrazione.

2

Dall'area La mia istanza del menu Account, faccia clic su Inizia a creare.

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

3

Nella sua istanza di sviluppatore, dal campo Filter Navigator in alto a sinistra della finestra, acceda a Plugin.

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

4

Cerca il plugin Openframe con il titolo Openframe. Potrebbe essere necessario scorrere l'elenco.

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

5

Faccia clic su Installa per installare il plugin Openframe.

6

Nella finestra di dialogo Attiva plugin, faccia clic su Attiva.

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

7

Una volta completata l'attivazione del plug-in, faccia clic su Chiudi e ricarica il modulo nella finestra di dialogo Attivazione del plug-in.

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

Per verificare l'attivazione del plugin, dal campo Filter Navigator in alto a sinistra della finestra, acceda a OpenFrame.

9

Faccia clic su Configurazioni e si assicuri che il plug-in OpenFrame sia visualizzato nell'elenco delle configurazioni OpenFrame.

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

1

Nel campo del navigatore Filtri in alto a sinistra della finestra, inserisca sys_properties.list.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

Nella pagina Proprietà del sistema, ordina le proprietà per data di aggiornamento. Si assicuri di poter visualizzare le seguenti proprietà del Webex Contact Center:

ServiceNow developer instance system properties page results.

3

Fare clic agentdesktop_urlper aprire la agentdesktop_url pagina delle proprietà del sistema.

4

Nel campo Valore, inserire l'URL del Webex Contact Center Desktop in base alla regione operativa.

ServiceNow developer instance system property details page for agentdesktop_url.

5

Fai clic su Aggiorna per salvare le modifiche.

6

(Facoltativo) Per cambiare il nome della tabella delle attività, modifica le proprietà x_caci_webexcc.webexccactivitytable come richiesto.

  1. Nella pagina delle proprietà del sistema, fare clic su x_caci_webexcc.webexccactivitytable.

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

  2. Modifichi il campo Valore come richiesto.

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(Facoltativo) Aggiungere gruppi di utenti nei seguenti modi:

  1. Nel campo del navigatore Filtri in alto a sinistra della finestra, acceda a Gruppi in Sicurezza del sistema.

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. Faccia clic su Modifica e aggiunga i seguenti ruoli:

    • sn_openframe_user

    • x_caci_webexcc.agente

    • 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

Dal campo del navigatore Filtri, acceda a OpenFrame > Configurazioni.

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

2

Faccia clic su Nuovo.

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

3

Inserisca le seguenti proprietà per l'URL:

  • Nome: Webex Contact Center Desktop

  • Titolo: Webex Contact Center

  • Larghezza: 550 (consigliata)

  • Altezza: 600 (consigliata)

4

A destra del campo URL, faccia clic sul pulsante Blocca e aggiunga x_caci_webexcc_agentdesktop.docome URL. (Effettuare questa configurazione passo per puntare alla pagina dell'interfaccia utente)

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

5

(Facoltativo) Seleziona il/i gruppo/i di utente/agente a cui assegnare la configurazione.

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

6

Faccia clic su Invia. L'URL appare come link.

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

7

Dal campo Navigator Filter, acceda a Service Operations Workspace.

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

8

(Facoltativo) Nell'elenco dei gruppi di utenti, sposta i gruppi di utenti che possono accedere al desktop di Webex Contact Center da Disponibile a Selezionato.

9

Prima di provare a utilizzare il telefono OpenFrame, si assicuri di caricare il file JSON personalizzato ServiceNow Desktop Layout nel Webex Contact Center. Management Portal Per ulteriori informazioni, vedere Configurare il layout desktop ServiceNow su Webex Contact Center.

1

Scarichi il layout desktop per ServiceNow da https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

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

2

Aggiornare le proprietà nel file di layout del desktop, se necessario.

3

Vai al Webex Contact Center. Management Portal

4

Dalla barra di Management Portal navigazione, scelga Provisioning > Layout del desktop.

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

5

Faccia clic su Nuovo layout e inserisca i dettagli per il layout del desktop.

6

Carichi il file JSON di ServiceNow Desktop Layout.

7

Faccia clic su Salva per salvare la configurazione.

Ora può avviare il Webex Contact Center Desktop nella console ServiceNow.

8

Dal campo Navigator Filter, acceda a Service Operations Workspace.

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

1

Dal campo del navigatore Filtro, acceda a Incidenti > Apri incidente.

2

Fare clic con il pulsante destro del mouse sul campo chiamante e fare clic su Configura dizionario.

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

3

Aggiungere attributi separati da virgole “ref_contributions=show_phone,.

ServiceNow developer instance call incident window for a Directory Entry.

Ora può iniziare a utilizzare il Webex Contact Center Desktop nella console ServiceNow.

4

Dal campo Navigator Filter, acceda a Service Operations Workspace.

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

  • Supportiamo l'accesso Agent Desktop tramite WebRTC solo per i connettori Salesforce (SFDC) e Microsoft Dynamics (MS Dynamics).
  • Attualmente, questa funzione è applicabile solo agli agenti.

Agent Desktopnella console ServiceNow

Prima di effettuare chiamate esterne, si assicuri di fare quanto segue:

  • Crei il punto di ingresso esterno e definisca una strategia per i punti di ingresso esterni.

  • Abilita l'ANI esterno per il profilo dell'agente.

  • Imposta l'ANI esterno su una mappatura dal numero di chiamata al punto di ingresso.

Per ulteriori informazioni, vedere il capitolo Provisioning della Guida all'Cisco Webex Contact Centerinstallazione e all'amministrazione.

Dal campo Navigator Filter, acceda a Service Operations Workspace.

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

Per informazioni su come utilizzare Desktop, vedere la scheda Agente nella guida del Webex Contact Center.

Panoramica

Questo articolo illustra diversi modi per personalizzare le sue regole aziendali per il connettore ServiceNow CRM. Descrive in dettaglio come personalizzare i casi d'uso in base a regole aziendali specifiche di ServiceNow.

Il cliente deve gestire autonomamente questi casi d'uso su ServiceNow. La configurazione è specifica per ServiceNow e non per il software o l'esperienza di Webex Contact Center.

Questa è una documentazione di riferimento per agevolare la modifica delle regole aziendali. Gli sviluppatori di ServiceNow creeranno e gestiranno le regole aziendali e forniranno supporto.

Cisco fornisce solo esempi di documentazione.

Le seguenti sezioni forniscono dettagli su come configurare, abilitare e gestire il widget Azioni per le istanze di sviluppo e aziendali.

Confermi il widget Update Set for Actions

Per le istanze aziendali con licenza, installi l'ultima app Webex Contact Center dallo store ServiceNow.

Per configurare il widget Azioni per le istanze degli sviluppatori, scarichi l'ultimo file XML del System Update Set disponibile nel repository github a questo indirizzo: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Il nome del file è webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Per confermare il set di aggiornamenti per il widget Azioni, vedere i passaggi da 2 a 9 in Confermare il set di aggiornamenti.

Abilita il widget delle azioni

Usa la proprietà IsWidgetDisplayEnabled per abilitare il widget Azioni. Non deve modificare il valore di questa proprietà nella sezione headless del layout desktop personalizzato. La proprietà è sempre impostata su false nella sezione headless del layout desktop personalizzato. Deve aggiornare il valore della proprietà solo nella sezione del pannello del layout desktop personalizzato.

Dopo aver abilitato il widget Azioni nel layout desktop personalizzato, può eseguire le seguenti azioni:

  • Gestire i record delle attività: fare clic su Visualizza/Modifica record di attività per visualizzare l'elenco dei record delle attività associati al chiamante.
  • Associare oggetti CRM: fare clic su Associa ai record delle attività per aggiungere oggetti CRM come il tipo di chiamata (in entrata o in uscita), l'oggetto della chiamata, le note sulle chiamate e così via al record delle attività.
  • Gestisci incidenti: faccia clic su Crea incidente. Viene creato un nuovo incidente con i dati del chiamante precompilati. Può apportare gli aggiornamenti richiesti all'incidente. Può scegliere di modificare il tipo di record da incidente a caso, modulo HR e così via in base alle sue esigenze. Per cambiare il tipo di record, modifichi il valore della proprietà TypeOfRecord nella configurazione del widget Azioni. Ad esempio:
    {
                  "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"
                      }
                    }
                  ]
                }
  • Aggiungere note sulle chiamate in tempo reale: può acquisire ulteriori informazioni sulla chiamata nell'area di testo e concludere la chiamata. Può vedere queste note aggiunte come note di chiamata nel registro delle attività.

Modifica del codice su ServiceNow

Lo script include modifiche
  1. Vai al navigatore di filtri e cerca gli script inclusi.

    Seleziona lo script include nell'interfaccia utente di sistema.

  2. Filtra il nome e cerca PropUtils.

  3. Modificare il metodo UserGetSysId nello script.

    Corrente:

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

    Nuovo codice di esempio per l'incidente:

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

Modifica del metodo nelle pagine dell'interfaccia utente
  1. Vada al navigatore di filtri e cerchi UI page.

    Seleziona le pagine dell'interfaccia utente in Interfaccia utente di sistema.

  2. Filtra il nome e cerca agentdesktop.

  3. Cambia la funzione screenpop nello script Client.

    Funzione attuale:

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

    Codice di esempio per l'incidente:

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

Se le informazioni sul chiamante sono presenti nel CRM e c'è già un nuovo incidente aperto con questo contatto, l'applicazione apre l'incidente in corso

Se le informazioni sul chiamante non esistono nel CRM, l'applicazione apre un nuovo incidente

Se le informazioni sul chiamante sono presenti nel CRM, l'applicazione apre un nuovo incidente con dettagli precompilati

Panoramica

Questo caso d'uso descrive in dettaglio il processo per aggiungere una colonna aggiuntiva alla tabella ServiceNow webexcc_imp_activity e crearla sn_openframe_phone_log al momento dell'installazione del connettore Webex CC for ServiceNow CRM.

Per impostazione predefinita, la tabella contiene determinati campi e valori di sistema predefiniti.

Può creare altre variabili aziendali specifiche (variabili CAD) all'interno del designer di WebExcc Flow e aggiungere le variabili CAD all'interno del registro delle attività post-chiamata di ServiceNow, nonché mantenerle nei dati della tabella delle attività dopo la chiamata.

Questa è solo una documentazione di riferimento e mostra come farlo per una variabile CAD di esempio chiamata Nome cliente che memorizza il nome del cliente all'interno dell'IVR e lo invia a ServiceNow.

Si prevede che gli sviluppatori del partner+Customer ServiceNow configurino e gestiscano questa configurazione in quanto si tratta di una personalizzazione del connettore esistente.

Cisco fornisce solo le tecniche su come personalizzare ed estendere il connettore.

A partire da questo articolo, il team Cisco ha convalidato il supporto per l'aggiunta della variabile CAD al registro delle attività e alla tabella delle attività utilizzando la tecnica descritta di seguito:

Aggiungi colonna all'attività IMP di WebExcc

  1. Modifica la tabella nella versione per sviluppatori di ServiceNow.

    ServiceNow developer instance WebexCC IMP activity table.

  2. Vada al navigatore dei filtri e cerchi studio.

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

    Seleziona Webex Contact Center

    Studio app for ServiceNow with the Select Application window open.

    o

    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. Seleziona la tabella delle attività IMP di WebEXCC

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. Aggiungere una nuova colonna, ad esempio CustomerName

    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.

Aggiungere una colonna alla rubrica telefonica

  1. Modifichi la tabella del registro telefonico.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. Aggiungere una nuova colonna, ad esempio CustomerName.

    ServiceNow developer instance phone log table new column examples.

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

Mappa di trasformazione delle attività WebExcc

Studio app for ServiceNow WebexCC Activity Transform Map.

Aggiungere una nuova colonna, ad esempio, la mappatura dei campi CustomerName.

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.

Personalizza le colonne dell'elenco

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

Come consigliato da Service Now, modifichi l'azione Scelta da crea a ignora.

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.

Configurare l'elenco delle registrazioni telefoniche

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

Vai a Script Include

Aggiunga solo una riga webexcc. u_customername=actInfo.customerName a PropUtils.

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

ServiceNow developer instance Script Includes page.

Script di esempio

Vedi la riga: webexcc. u_customername=actInfo.customerName; con un commento di supporto.

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

Creare una variabile CAD in Flow designer

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

Aggiungere la variabile CAD al layout del desktop

Esempio

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

Schermate dimostrative

Visualizza la variabile CAD appena aggiunta nella tabella delle attività di WebExcc.

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.

Creare una variabile CAD per Flow Designer

Urgenza dell'incidente

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

Impatto dell'incidente

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

Aggiornamento dello script Service Now

Gli aggiornamenti allo script includono

  1. Vada al navigatore dei filtri e cerchi script includes

    Seleziona l'opzione Script Includes nell'interfaccia utente di sistema.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtrare il nome con propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Modificare il metodo UserGetSysId nel campo Script.

    ServiceNow developer instance Script Includes – propUtils details page.

    Sceneggiatura attuale:

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

    Nuovo codice di esempio per l'incidente:

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

Una modifica del metodo nelle pagine dell'interfaccia utente
  1. Vada al navigatore dei filtri e cerchi UI pages.

    Seleziona l'opzione Pagine dell'interfaccia utente in Interfaccia utente di sistema.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtra le pagine dell'interfaccia utente con nome e cerca agentdesktop.

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

  3. Cambia la funzione screenpop nel campo dello script.

    ServiceNow developer instance UI Page – agentdesktop details page.

    Funzione attuale:

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

    Codice di esempio per l'incidente:

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

Se le informazioni sul chiamante sono presenti nel CRM e non ci sono incidenti nuovi o in corso, l'applicazione apre un nuovo incidente

ServiceNow example of an incident.

ServiceNow example of an interaction.

Modificare il codice su ServiceNow

Aggiungere nuove colonne alla tabella delle attività IMP di WebExcc

Aprire la tabella delle attività IMP di WebEXCC

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Aggiungere una nuova colonna - InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

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

Aggiungere una nuova colonna - IncidentNumber

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

Faccia clic su Aggiorna.

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.

Aggiungere nuove colonne alla tabella Registro telefonico

Aprire la tabella del registro telefonico

ServiceNow developer instance Phone Log table.

Aggiungere una nuova colonna - 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.

Aggiungere una nuova colonna - 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.

Mappa di trasformazione delle attività WebExcc

Aprire la mappa di trasformazione dal navigatore dei filtri

ServiceNow developer instance filter navigator search for ‘transform map’

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

Fare clic su WebExcc Activity TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Aggiungi nuovo - per la mappa dei numeri di interazione

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

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

Aggiungi nuovo - per la mappa dei numeri degli incidenti

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

Faccia clic su Aggiorna.

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

Le modifiche allo script includono

  1. Vada al navigatore di filtri e cerchi «lo script include».

    Seleziona lo script include nell'interfaccia utente di sistema.

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

  2. Filtrare il nome con PropUtils.

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

  3. Modificare il metodo setWebExcctable.

    ServiceNow developer instance Script includes - propUtils page

    Nuovo codice di esempio per 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;
           },

Modifiche al metodo nelle pagine dell'interfaccia utente

  1. Vai al navigatore di filtri e cerca le pagine dell'interfaccia utente

    Seleziona l'opzione Pagine dell'interfaccia utente in Interfaccia utente di sistema.

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

  2. Filtra le pagine dell'interfaccia utente con nome e cerca agentdesktop.

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

  3. Modifichi la funzione NowActivities e screenpop nello script.

    ServiceNow developer instance UI Page – agentdesktop.

    Funzione attuale:

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

    Codice di esempio per l'incidente:

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

Risultati dopo l'aggiornamento

ServiceNow developer instance Phone Logs page.

Le seguenti personalizzazioni si applicano alle versioni 1.0.5 e successive. Per le personalizzazioni per le versioni più recenti 1.0.7 e successive, segua i passaggi precedenti.

Personalizzazione n. 1 - Aggiungere regole aziendali personalizzate per i casi d'uso del flusso di chiamate

Crea un nuovo record di incidenti per ogni chiamata

Per ogni nuova chiamata al connettore WebExcc CRM in ServiceNow, crei un nuovo record di incidenti.

  1. Cerca le regole aziendali nel navigatore Filtri

    ServiceNow developer instance Business Rules page header.
  2. Faccia clic su Nuovo.

    ServiceNow developer instance Business Rule – New Record.

    Codice di riferimento di esempio:

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

    Esempio di configurazione della regola aziendale

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

    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 è contrassegnato come True.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Aggiornare l'URL dello screenpop con la regola CTI personalizzata "cti.do? sysparm_cti_rule=CreaIncident& = sysparm_caller_phone "

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

Il sysparm_cti_rule=name dove 'name' è il nome di una funzione deve essere invocato per CTI Processing anziché utilizzare lo script predefinito.

Definire la funzione in una sys_scriptvoce contrassegnata come cliente richiamabile.

Se deve inserire, aggiornare o eliminare uno o più GlideRecord nella funzione, chiami una funzione separata non richiamabile dal client per eseguire gli aggiornamenti.

Per rendere uno script richiamabile dal client, deve selezionare la casella di controllo richiamabile dal client nel modulo visualizzato quando viene visualizzata la voce. sys_script

La casella di controllo richiamabile dal cliente non viene visualizzata per impostazione predefinita. Per visualizzarli, deve modificare i campi visualizzati nel modulo utilizzando l'icona a forma di ingranaggio e il meccanismo slush bucket.

Referenze

Personalizzazione n. 2 - Aggiungere una variabile CAD nella tabella delle attività di Webex Contact Center

Panoramica

Questo articolo descrive in dettaglio il processo per aggiungere una colonna aggiuntiva alla tabella ServiceNow, creata durante l'installazione del connettore Webex CC for ServiceNow CRM. webexcc_activity

Per impostazione predefinita, la tabella contiene campi e valori di sistema predefiniti.

Può potenzialmente creare più variabili specifiche dell'azienda (variabili CAD) all'interno del designer di WebExcc Flow e aggiungere tali variabili CAD nel registro delle attività post-chiamata di ServiceNow e renderle permanenti nei dati della tabella delle attività dopo la chiamata.

  • Questa è solo la documentazione di riferimento e mostra come eseguire questa operazione per una variabile CAD di esempio denominata Nome cliente che memorizza il nome del cliente all'interno dell'IVR e lo invia a ServiceNow.

  • Gli sviluppatori del partner+customer ServiceNow configureranno e gestiranno questa configurazione in quanto si tratta di una personalizzazione del connettore esistente.

  • Cisco fornirà solo le tecniche su come personalizzare ed estendere il connettore.

  • A partire da questo articolo, il team di Cisco ha convalidato il supporto per l'aggiunta della variabile CAD al registro delle attività e alla tabella delle attività utilizzando la tecnica descritta di seguito.

Aggiungere una colonna all'attività di WebExcc
  1. Modifica la tabella nella versione per sviluppatori di ServiceNow.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Vai a 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. Seleziona la tabella delle attività di WebEXCC.

    App Engine Studio WebexCC Activity table.
  4. Ad esempio, CustomerName.

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

    App Engine Studio WebexCC Activity table screen.

  5. Seleziona il layout dell'elenco per l'attività WebExcc.

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Creare un nuovo script include

Questo passaggio non è richiesto se utilizza l'Update Set XML - È necessaria solo una riga per aggiungere "webexcc. u_customername=actInfo.customerName "a PropUtils.

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.

Script di esempio

Vedi la riga con: webexcc. u_customername=actInfo.customerName; con un commento di supporto.

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'
});
Modificare la pagina dell'interfaccia utente con un nuovo nome di scriptApp Engine Studio agentdesktop UI page with new script name.

Creare una variabile CAD in Flow designerWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Aggiungere la variabile CAD al layout del desktopWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Schermate dimostrative

Visualizza la variabile CAD appena aggiunta nella tabella delle attività di WebExcc.

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

ServiceNow developer instance WebexCC Activities screen.

Il connettore CRM funziona in base alla versione del widget specificata nel layout desktop JSON. È estremamente importante assicurarsi che la versione del widget all'interno del layout del desktop sia mantenuta aggiornata.

Gli amministratori devono garantire che tutti i layout desktop per questo connettore CRM utilizzino questa versione del widget. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.

  • Ultimo aggiornamento di ServiceNow: .1.0_v5.0.3.json. ServiceNow_Desktop_0 A marzo 2024, la versione del pacchetto è 1.0.9
  • Ultimo aggiornamento XML: Webexcc-ServiceNow-Update-SetV7-1-Actionswidget.xml, giugno 2024

Questo articolo è stato utile?
Questo articolo è stato utile?