Prerequisiti

Attualmente, questa funzione è applicabile solo agli agenti.

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

Seguire uno dei due metodi seguenti:

Per le istanze per sviluppatori, ti consigliamo di seguire i passaggi nella guida all'istanza per sviluppatori.

Se possiedi un'istanza con licenza aziendale, segui le linee guida per le istanze con licenza aziendale.

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

Nelle sezioni seguenti vengono descritti i passaggi per installare il connettore ServiceNow per le istanze sviluppatore.

1

Accedere all'account del portale per sviluppatori ServiceNow e aprire la console di amministrazione .

2

Dall'area Istanza personale del menu Account , fare clic su Inizia a creare .

3

Nell'istanza sviluppatore, dal campo Filter navigator nella parte superiore sinistra della finestra, vai a Plugin.

4

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

5

Fare clic su Installa per installare il plug-in Openframe.

6

Nella finestra di dialogo Attiva plug-in, fare clic su Attiva.

7

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

8

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

9

Fare clic su Configurazioni e assicurarsi che il plug-in OpenFrame sia visualizzato nell'elenco Configurazioni OpenFrame .

1

Scarica l'ultimo file di XML System Update Set disponibile sul repository github a questa posizione: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nome file: webexcc-servicenow-update-setV(X).xml

2

Nell'istanza di ServiceNow, dal campo Filter navigator nella parte superiore sinistra della finestra, passare a System Update Sets > Update Sets to Commit.

3

Fare clic sul collegamento Importa set di aggiornamenti da XML .

4

Fare clic su Scegli file, selezionare il file XML Set di aggiornamenti di sistema, quindi fare clic su Carica.

Il set di aggiornamenti viene visualizzato nell'elenco Set di aggiornamenti recuperati ed è nello stato Caricato .
5

Dall'elenco Set di aggiornamenti recuperati, fare clic sul collegamento Nome file set di aggiornamenti (collegamento) per aprire il set di aggiornamenti.

6

Nella parte superiore destra della finestra, fare clic su Anteprima set di aggiornamenti per verificare la presenza di problemi relativi al set di aggiornamenti.

7

Fare clic su Chiudi nella finestra di dialogo Aggiorna anteprima set una volta completata l'anteprima.

8

Fare clic su Commit Update Set.

9

Fare clic su Chiudi nella finestra di dialogo Commit set di aggiornamenti una volta completato il commit del set di aggiornamenti.

1

Nel campo Filter navigator nella parte superiore sinistra della finestra, digitare sys_properties.list e premere invio.

2

Nella pagina Proprietà del sistema, ordinare le proprietà in base alla data di aggiornamento. Assicurarsi di poter visualizzare le seguenti proprietà Webex Contact Center:

3

Fare clic su agentdesktop_url per aprire la pagina agentdesktop_url Proprietà di sistema.

4

Nel campo Valore , immettere l'URL del desktop Webex Contact Center in base all'area di intervento.

5

Fare clic su Aggiorna per salvare le modifiche.

6

(Opzionale) Per modificare il nome della tabella Attività, modificare le proprietà webexccactivitytable come richiesto.

Nella pagina Proprietà del sistema, fare clic su webexccactivitytable.

Modificare il campo Valore come richiesto.

7

(Opzionale) Aggiungere gruppi di utenti nei seguenti modi:

  1. Nel campo Filter navigator nella parte superiore sinistra della finestra, passare a Gruppi in Sicurezza del sistema.

  2. Creare un nuovo gruppo di utenti o utilizzarne uno esistente.

  3. Fare clic su Modifica.

  4. Cerca sn_openframe_user in Raccolta e spostalo nel tuo gruppo di utenti.

  5. Fare clic su Salva.

  6. Aggiungere l'utente come membro del gruppo.

1

Dal campo Filter navigator , passare a OpenFrame > Configurations.

2

Fare clic su Nuovo.

3

Immettere 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 , fai clic sul pulsante Blocca e aggiungi agentdesktop.do come URL. (Eseguire questo passaggio per puntare la configurazione alla pagina dell'interfaccia utente)

5

(Opzionale) Selezionare i gruppi di utenti/agenti per assegnare la configurazione.

6

Fare clic su Submit. L'URL viene visualizzato come collegamento.

7

Prima di tentare di utilizzare il telefono OpenFrame, assicurarsi di caricare il file JSON di layout desktop personalizzato ServiceNow nel portale di gestione di Webex Contact Center. Per ulteriori informazioni, vedere Impostazione del layout del desktop ServiceNow su Webex Contact Center.

1

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

2

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

3

Accedere al portale di gestione del contact center Webex.

4

Dalla barra di spostamento del portale di gestione scegliere Provisioning > Desktop Layout.

5

Fare clic su Nuovo layout e immettere i dettagli per il layout del desktop.

6

Caricare il file JSON ServiceNow Desktop Layout.

7

Fare clic su Salva per salvare la configurazione.

Ora è possibile avviare il desktop Webex Contact Center all'interno della console ServiceNow.

8

Dal campo Filter navigator , passare a Service Operations Workspace.

La home page di ServiceNow con Webex Contact Center Agent Desktop integrata con ServiceNow.

Nelle sezioni seguenti vengono descritti i passaggi per installare il connettore ServiceNow per le istanze aziendali con licenza.

1

Accedere all'account del portale per sviluppatori ServiceNow e aprire la console di amministrazione .

2

Dall'area Istanza personale del menu Account , fare clic su Inizia a creare .

3

Nell'istanza sviluppatore, dal campo Filter navigator nella parte superiore sinistra della finestra, vai a Plugin.

4

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

5

Fare clic su Installa per installare il plug-in Openframe.

6

Nella finestra di dialogo Attiva plug-in, fare clic su Attiva.

7

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

8

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

9

Fare clic su Configurazioni e assicurarsi che il plug-in OpenFrame sia visualizzato nell'elenco Configurazioni OpenFrame .

1

Nel campo Filter navigator nella parte superiore sinistra della finestra, immettere sys_properties.list.

2

Nella pagina Proprietà del sistema, ordinare le proprietà in base alla data di aggiornamento. Assicurarsi di poter visualizzare le seguenti proprietà Webex Contact Center:

3

Fare clic su agentdesktop_url per aprire la pagina agentdesktop_url Proprietà di sistema.

4

Nel campo Valore , immettere l'URL del desktop Webex Contact Center in base all'area di intervento.

5

Fare clic su Aggiorna per salvare le modifiche.

6

(Opzionale) Per modificare il nome della tabella Attività, modificare le proprietà x_caci_webexcc.webexccactivitytable in base alle esigenze.

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

  2. Modificare il campo Valore come richiesto.

7

(Opzionale) Aggiungere gruppi di utenti nei seguenti modi:

  1. Nel campo Filter navigator nella parte superiore sinistra della finestra, passare a Gruppi in Sicurezza del sistema.

  2. Fare clic su Modifica e aggiungere 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

1

Dal campo Filter navigator , passare a OpenFrame > Configurations.

2

Fare clic su Nuovo.

3

Immettere 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 , fai clic sul pulsante Blocca e aggiungi x_caci_webexcc_agentdesktop.do come URL. (Eseguire questo passaggio per puntare la configurazione alla pagina dell'interfaccia utente)

5

(Opzionale) Selezionare i gruppi di utenti/agenti per assegnare la configurazione.

6

Fare clic su Submit. L'URL viene visualizzato come collegamento.

7

Dal campo Filter navigator , passare a Service Operations Workspace.

La home page di ServiceNow con Webex Contact Center Agent Desktop integrata con ServiceNow.

8

(Opzionale) Nell'elenco Gruppo di utenti, spostare i gruppi di utenti che possono accedere al desktop Webex Contact Center da Disponibile a Selezionato.

9

Prima di tentare di utilizzare il telefono OpenFrame, assicurarsi di caricare il file JSON di layout desktop personalizzato ServiceNow nel portale di gestione di Webex Contact Center. Per ulteriori informazioni, vedere Impostazione del layout del desktop ServiceNow su Webex Contact Center.

1

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

2

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

3

Accedere al portale di gestione del contact center Webex.

4

Dalla barra di spostamento del portale di gestione scegliere Provisioning > Desktop Layout.

5

Fare clic su Nuovo layout e immettere i dettagli per il layout del desktop.

6

Caricare il file JSON ServiceNow Desktop Layout.

7

Fare clic su Salva per salvare la configurazione.

Ora è possibile avviare il desktop Webex Contact Center all'interno della console ServiceNow.

8

Dal campo Filter navigator , passare a Service Operations Workspace.

La home page di ServiceNow con Webex Contact Center Agent Desktop integrata con ServiceNow.

1

Dal campo Filter navigator , passare a Incidenti> Apri incidente .

2

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

3

Aggiungere attributi separati da virgola"ref_contributions=show_phone,.

Ora puoi iniziare a utilizzare il desktop Webex Contact Center all'interno della console ServiceNow.

4

Dal campo Filter navigator , passare a Service Operations Workspace.

La home page di ServiceNow con Webex Contact Center Agent Desktop integrata con ServiceNow.

Agent Desktop nella console ServiceNow

Prima di effettuare chiamate in uscita, assicurarsi di effettuare le seguenti operazioni:

  • Creare il punto di ingresso in uscita e impostare una strategia per il punto di ingresso in uscita.

  • Abilitare l'ANI di composizione esterna per il profilo agente.

  • Impostare l'ANI di composizione su una mappatura Dial Number-to-Entry Point.

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

Dal campo Filter navigator , passare a Service Operations Workspace.

La home page di ServiceNow con Webex Contact Center Agent Desktop integrata con ServiceNow.

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

Panoramica

In questo articolo vengono illustrati diversi modi per personalizzare le regole aziendali per il connettore ServiceNow CRM. Descrive in dettaglio come personalizzare i casi d'uso in base alle regole aziendali specifiche di ServiceNow.

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

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

Cisco fornisce solo documentazione di esempio.

Nelle sezioni seguenti vengono fornite informazioni dettagliate su come impostare, abilitare e gestire il widget Azioni per le istanze per sviluppatori e aziende.

Eseguire il commit del widget Aggiorna set per azioni

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

Per configurare il widget Azioni per le istanze degli sviluppatori, scarica il file di XML del set di aggiornamenti di sistema più recente disponibile sul repository github a questa posizione: 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 eseguire il commit del set di aggiornamenti per il widget Azioni, vedere i passaggi da 2 a 9 in Eseguire il commit del set di aggiornamenti.

Widget Abilita azioni

Utilizzare la proprietà isWidgetDisplayEnabled per abilitare il widget Azioni. Non è necessario 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. È necessario aggiornare il valore della proprietà solo nella sezione del pannello del layout desktop personalizzato.

Una volta abilitato il widget Azioni nel layout desktop personalizzato, è possibile eseguire le seguenti azioni:

  • Gestisci record attività: fai clic su Visualizza/Modifica record attività per visualizzare l'elenco dei record di attività associati al chiamante.
  • Associa oggetti CRM: fare clic su Associa a record attività per aggiungere al record attività oggetti CRM quali tipo di chiamata (in entrata o in uscita), oggetto chiamata, note chiamata e così via.
  • Gestisci incidenti: fai clic su Crea incidente. Viene creato un nuovo incidente con i dettagli del chiamante precompilati. È possibile apportare gli aggiornamenti necessari all'incidente. È possibile scegliere di modificare il tipo di record da incidente a caso, modulo HR e così via in base alle proprie esigenze. Per cambiare il tipo di record, modificare 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" } } ] }
  • Aggiungi note di chiamata in tempo reale: è possibile acquisire ulteriori informazioni sulla chiamata nell'area di testo e concludere la chiamata. È possibile visualizzare queste note aggiunte come note di chiamata nel record attività.

Modifica del codice su ServiceNow

Lo script include modifiche
  1. Vai a filter navigator e cerca Lo script include.

    Selezionare Script include in Interfaccia utente di sistema.

  2. Filtrare il Nome e cercare propUtils.

  3. Modificare il metodo UserGetSysId nello script.

    Curent:

    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= 'telefono'; 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='chiamata ricevuta da '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefono'; 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. Vai a filter navigator e cerca la pagina dell'interfaccia utente.

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

  2. Filtrare il Nome e cercare agentdesktop.

  3. Modificare il screenpop Funzione nello script client.

    Funzione corrente:

    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('campo', 'telefono'); gaout.addParam('valore', 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 in CRM ed è già stato aperto un nuovo incidente con questo contatto, l'applicazione apre l'incidente in corso

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

Se le informazioni del chiamante sono presenti in 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 creare sn_openframe_phone_log dopo l'installazione di Webex CC for ServiceNow CRM Connector.

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

È possibile creare più variabili specifiche dell'azienda (variabili CAD) all'interno di WebexCC Flow Designer e aggiungere le variabili CAD all'interno del registro attività post-chiamata ServiceNow, nonché mantenerle nei dati della tabella delle attività post-chiamata.

Questa è solo una 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 del IVR e lo invia a ServiceNow.

Si prevede che gli sviluppatori di ServiceNow partner+cliente configureranno e gestiranno 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 di variabili CAD al registro attività e alla tabella attività utilizzando la tecnica descritta di seguito:

Aggiungi colonna all'attività WebexCC IMP

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

  2. Vai al navigatore dei filtri e cerca studio.

    Seleziona Webex Contact Center

    o

  3. Selezionare l'icona Attività WebexCC IMP tavolo

  4. Aggiungere una nuova colonna, ad esempio NomeCliente

Aggiungi colonna al registro telefonico

  1. Modificare la tabella del registro telefonico.

  2. Aggiungere una nuova colonna, ad esempio NomeCliente.

Mappa di trasformazione dell'attività WebexCC

Aggiungere una nuova colonna, ad esempio NomeCliente Mappatura dei campi.

Personalizza colonne elenco

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

Configurare l'elenco dei registri telefonici

Vai a Includi script

Aggiungi solo una riga webexcc.u_customername=actInfo.CustomerName A propUtils.

Script di esempio

Vedere 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= 'telefono'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysid di ritorno; }, 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; Questa riga è Aggiunta - per acquisirla nel Registro attività webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Attività sulla registrazione degli incidenti; 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(); } } } ritorno sys_id; }, tipo: 'propUtils' });

Creare una variabile CAD in Flow Designer

Aggiunta della variabile CAD al layout del desktop

Esempio

"CadName1:SnowField1,CadName2:SnowField2" CadName1 è CustomerName SnowField1 viene utilizzato anche come CustomerName che fa parte dello scirpt di esempio mostrato sopra "actInfo.CustomerName".

Screenshot demo

Visualizzare la variabile CAD appena aggiunta nella tabella Attività WebexCC.

Creare variabili CAD per Flow Designer

Urgenza dell'incidente

Impatto dell'incidente

Aggiornamento script Service Now

Gli aggiornamenti allo script includono

  1. Vai al navigatore dei filtri e cerca script include

    Selezionare l'opzione Script include in Interfaccia utente di sistema.

  2. Filtrare il Nome con propUtils.

  3. Modificare il metodo UserGetSysId nel campo Script .

    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= 'telefono'; 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='Chiamata ricevuta da '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefono'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },

Modifica del metodo nelle pagine dell'interfaccia utente
  1. Vai al navigatore dei filtri e cerca le pagine dell'interfaccia utente.

    Selezionare l'opzione Pagine interfaccia utente in Interfaccia utente di sistema.

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

  3. Modificare il screenpop Nel campo dello script.

    Funzione corrente:

    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 del chiamante sono presenti in CRM e non vi è alcun incidente nuovo o in corso, l'applicazione apre un nuovo incidente

Modificare il codice su ServiceNow

Aggiungere nuove colonne all'elenco Attività WebexCC IMP tavolo

Aprire l'icona Attività WebexCC IMP tavolo

Aggiungere una nuova colonna - InteractionsNumber

Aggiungere una nuova colonna - IncidentNumber

Fare clic su Aggiorna.

Aggiungere nuove colonne all'elenco Registro telefonico tavolo

Aprire l'icona Registro telefonico tavolo

Aggiungere una nuova colonna - InteractionsNumber

Aggiungere una nuova colonna - IncidentNumber

Mappa di trasformazione dell'attività WebexCC

Aperta Trasforma mappa Dal navigatore filtri

Clicca su Attività WebexCC TransformMap

Aggiungi nuovo - per Mappa numero di interazione

Aggiungi nuovo - per Mappa numero incidente

Fare clic su Aggiorna.

Le modifiche apportate agli script includono

  1. Vai a filter navigator e cerca "script include".

    Selezionare Script include in Interfaccia utente di sistema.

  2. Filtra il Nome con propUtils.

  3. Modificare il metodo setWebexcctable.

    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']; cancellare 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(); } restituire sys_id; },

Modifiche ai metodi nelle pagine dell'interfaccia utente

  1. Vai a filter navigator e cerca Pagine dell'interfaccia utente

    Selezionare l'opzione Pagine interfaccia utente in Interfaccia utente di sistema.

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

  3. Modificare il nowAttività e screenpop Funzione nello script.

    Funzione corrente:

    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

Le seguenti personalizzazioni si applicano alle versioni 1.0.5 e precedenti. Per le personalizzazioni per le versioni più recenti 1.0.7 e successive, attenersi alla procedura precedente.

Personalizzazione # 1 - Aggiungi regole aziendali personalizzate per i casi d'uso del flusso di chiamata

Creare un nuovo record di incidente per ogni chiamata

Per ogni nuova chiamata al connettore WebexCC CRM in ServiceNow, creare un nuovo record incidente.

  1. Cercare regole di business nel navigatore filtri

  2. Fare clic su Nuovo.

    Codice di esempio per riferimento:

    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", nome); } 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; URL di ritorno; } 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; }

    Configurazione di esempio della regola di business

  3. Abilita Client richiamabile

    L'elaborazione dell'integrazione di telefonia (CTI) per incidente è contrassegnata come True.

  4. Aggiornare l'URL screenpop con la regola CTI personalizzata" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

Esempio

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

Definire la funzione in una voce di sys_script contrassegnata come client richiamabile.

Se è necessario inserire, aggiornare o eliminare qualsiasi GlideRecords nella funzione, chiamare una funzione richiamabile non client separata per eseguire gli aggiornamenti.

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

La casella di controllo richiamabile dal client non viene visualizzata per impostazione predefinita. Per visualizzare, è necessario modificare i campi visualizzati sul modulo utilizzando l'icona a forma di ingranaggio e il meccanismo della benna granita.

Referenze

Personalizzazione # 2 - Aggiungi variabile CAD nella tabella delle attività Webex Contact Center

Panoramica

In questo articolo viene descritto in dettaglio il processo per aggiungere un'ulteriore colonna alla tabella ServiceNow, webexcc_activity creato dopo l'installazione di Webex CC for ServiceNow CRM Connector.

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

È possibile creare più variabili specifiche dell'azienda (variabili CAD) all'interno di WebexCC Flow Designer e aggiungere tali variabili CAD all'interno del registro attività post-chiamata ServiceNowe mantenerle nei dati della tabella delle attività post-chiamata.

  • Questa è solo 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 del IVR e lo invia a ServiceNow.

  • Gli sviluppatori partner+clienti 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 Cisco ha convalidato il supporto per l'aggiunta di variabili CAD al registro attività e alla tabella attività utilizzando la tecnica descritta di seguito.

Aggiungi colonna all'attività WebexCC
  1. Modifica la tabella nella versione per sviluppatori di ServiceNow.

  2. Vai al Contact Center Studio>Webex.

  3. Selezionare Tabella attività WebexCC.

  4. Ad esempio, CustomerName.

  5. Selezionare Layout elenco per Attività WebexCC.

Crea un nuovo script include

Questo passaggio non è necessario se si utilizza il set di aggiornamenti XML - È necessario aggiungere solo una riga "webexcc.u_customername=actInfo.CustomerName" a propUtils.

Script di esempio

Vedere 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; // Questa riga è aggiunta - per catturarla nel webexcc del registro attività. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Attività sulla registrazione degli incidenti; 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(); } } } ritorno sys_id; }, tipo: 'propUtils2' });
Modificare la pagina dell'interfaccia utente con un nuovo nome di script

Creare una variabile CAD in Flow Designer

Aggiunta della variabile CAD al layout del desktop

Screenshot demo

Visualizzare la variabile CAD appena aggiunta nella tabella Attività WebexCC.