Integrazione di Webex Contact Center con ServiceNow (versione 1—preesistente)
Se si integra Webex Contact Center con la console di ServiceNow CRM, è possibile avviare il desktop Webex Contact Center dall'interno di ServiceNow.
Prerequisiti
Attualmente, questa funzione è applicabile solo agli agenti.
Prima di integrare Webex Contact Center con la console di ServiceNow CRM, assicurarsi di disporre di quanto segue:
-
Accedere a Webex Contact Center.
-
Accesso amministratore a Control Hub su https://admin.webex.com e al portale di gestione di Webex Contact Center. Gli URL per il portale di gestione sono specifici per la propria regione.
-
Nord America: https://portal.wxcc-us1.cisco.com
-
Regno Unito: https://portal.wxcc-eu1.cisco.com
-
Giappone: https://portal-v2.wxcc-jp1.cisco.com
-
Singapore: https://portal-v2.wxcc-sg1.cisco.com
-
-
Un agente con accesso al desktop. L'URL per il desktop è specifico della propria regione.
-
Nord America: https://desktop.wxcc-us1.cisco.com
-
Regno Unito: https://desktop.wxcc-eu1.cisco.com
-
Giappone: https://desktop.wxcc-jp1.cisco.com
-
Singapore: https://desktop.wxcc-sg1.cisco.com
-
-
Accesso agente al dominio seguente aggiunto nell'elenco dei criteri di sicurezza del contenuto consentiti:
-
*.service-now.com
Per ulteriori informazioni su come definire l'elenco dei consentiti, vedere l'articolo Impostazioni di sicurezza per Webex Contact Center.
-
-
Un account del portale per gli sviluppatori di ServiceNow. Per creare un account, andare al portale per gli sviluppatori di ServiceNow su https://developer.servicenow.com/dev.do e fare clic su Sign Up (Registra) e Start Building (Avvia edificio).
-
Accedere ai seguenti file su https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Set di aggiornamenti ServiceNow (XML)
-
Layout desktop ServiceNow Contact Center (JSON)
-
- Le edizioni di ServiceNow supportate da Webex Contact Center sono Vancouver, Utah, Tokya, Washington e Xanadu. Per ulteriori informazioni, vedi Integrazione di Webex Contact Center con ServiceNow.
Seguire uno dei due metodi seguenti:
Per istanze sviluppatore, si consiglia di seguire la procedura sotto la guida dell'istanza sviluppatore.
Se si possiede un'istanza con licenza Enterprise, seguire le linee guida per le istanze con licenza Enterprise.
Non si consiglia di combinare app con licenza aziendale le istanze sandbox per gli sviluppatori.
Le sezioni seguenti descrivono la procedura per installare il connettore ServiceNow per le istanze dello sviluppatore.
1 |
Accedere all'account del portale per gli sviluppatori di ServiceNow e aprire la console Amministrazione . |
2 |
Dall'area Istanza personale del menu Account , fare clic su Avvia edificio. |
3 |
Nell'istanza dello sviluppatore, dal campo Navigatore filtri nella parte superiore sinistra della finestra, selezionare Plug-in. |
4 |
Ricercare il plug-in Openframe con il titolo Openframe. Potrebbe essere necessario scorrere l'elenco. |
5 |
Fare clic su Installa per installare il plug-in Openframe. |
6 |
Nel menu a finestra di dialogo , fare clic su Attiva. |
7 |
Al termine dell'attivazione del plug-in, fare clic su Chiudi e ricarica modulo nella finestra di dialogo Attivazione plug-in . |
8 |
Per verificare l'attivazione del plug-in, dal campo Filter Navigator (Filtro ) nella parte superiore sinistra della finestra, passare a OpenFrame. |
9 |
Fare clic su Configurazioni e verificare che il plug-in OpenFrame venga visualizzato nell'elenco Configurazioni OpenFrame. |
1 |
Scaricare il file XML più recente del set di aggiornamento di sistema disponibile sul repo github in 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 Navigatore filtri nell'angolo superiore sinistro della finestra, selezionare . |
3 |
Fare clic sul collegamento Importa serie di aggiornamenti da XML . |
4 |
Fare clic su Scegli file, selezionare il file XML Set di aggiornamento del sistema, quindi fare clic su Carica.
Il set di aggiornamento appare nell'elenco set di aggiornamenti recuperati e si trova nello stato Caricato.
|
5 |
Dall'elenco Set di aggiornamento recuperati , fare clic sul nome del file del set di aggiornamento (collegamento) per aprire il set di aggiornamento. |
6 |
Nell'angolo superiore destro della finestra, fare clic su Anteprima aggiornamento impostato per verificare la serie di aggiornamenti per problemi. |
7 |
Fare clic su Chiudi nella finestra di dialogo Aggiorna impostazione anteprima una volta completata l'anteprima. |
8 |
Fare clic su Commit Aggiornamento impostato. |
9 |
Fare clic su Chiudi nella finestra di dialogo Aggiorna commit impostato una volta completato l'impegno del set di aggiornamento. |
1 |
Nel campo Navigatore filtri nell'angolo superiore sinistro della finestra, digitare |
2 |
Nella pagina Proprietà di sistema , ordinare le proprietà in base alla data aggiornata. Accertarsi di visualizzare le seguenti proprietà di Webex Contact Center : |
3 |
Fare agentdesktop_url clic per aprire la pagina Proprietà agentdesktop_url sistema. |
4 |
Nel campo Valore , inserire l'URL del desktop Webex Contact Center in base alla regione di attività.
|
5 |
Fare clic su Aggiorna per salvare le modifiche. |
6 |
(Opzionale) Per modificare il nome della tabella attività, modificare le proprietà di webexccactivitytable come richiesto. Nella pagina Proprietà di sistema , fare clic su webexccactivitytable. Modificare il campo Valore in base alle esigenze. |
7 |
(Opzionale) Aggiungere gruppi di utenti nei seguenti modi:
|
1 |
Dal campo Filter Navigator (Navigatore filtro), andare a |
2 |
Fare clic su Nuovo. |
3 |
Immettere le seguenti proprietà per l'URL:
|
4 |
A destra del campo URL , fare clic sul pulsante Blocca e aggiungere |
5 |
(Opzionale) Selezionare uno o più gruppi di utenti/agenti per assegnare la configurazione. |
6 |
Fare clic su Invia. L'URL viene visualizzato come collegamento. |
7 |
Prima di utilizzare il telefono OpenFrame, assicurarsi di caricare il file JSON del layout desktop personalizzato ServiceNow nel Portale di gestione Webex Contact Center. Per ulteriori informazioni, vedi Impostazione del layout del desktop ServiceNow su Webex Contact Center. |
1 |
Scaricare il layout desktop per ServiceNow da https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Aggiornare le proprietà nel file Layout desktop, se necessario. |
3 |
Andare al portale di gestione Webex Contact Center . |
4 |
Dalla barra di navigazione del Portale di gestione, scegliere |
5 |
Fare clic su Nuovo layout e inserire i dettagli per il layout desktop. |
6 |
Caricare il file JSON layout desktop ServiceNow. |
7 |
Fare clic su Save (Salva) per salvare la configurazione. Ora è possibile avviare il desktop Webex Contact Center dalla console di ServiceNow. |
8 |
Dal campo Navigatore filtri , passa a . |
Nelle sezioni seguenti vengono descritte la procedura per installare il connettore ServiceNow per le istanze aziendali con licenza.
1 |
Accedere all'account del portale per gli sviluppatori di ServiceNow e aprire la console Amministrazione . |
2 |
Dall'area Istanza personale del menu Account , fare clic su Avvia edificio. |
3 |
Nell'istanza dello sviluppatore, dal campo Navigatore filtri nella parte superiore sinistra della finestra, selezionare Plug-in. |
4 |
Ricercare il plug-in Openframe con il titolo Openframe. Potrebbe essere necessario scorrere l'elenco. |
5 |
Fare clic su Installa per installare il plug-in Openframe. |
6 |
Nel menu a finestra di dialogo , fare clic su Attiva. |
7 |
Al termine dell'attivazione del plug-in, fare clic su Chiudi e ricarica modulo nella finestra di dialogo Attivazione plug-in . |
8 |
Per verificare l'attivazione del plug-in, dal campo Filter Navigator (Filtro ) nella parte superiore sinistra della finestra, passare a OpenFrame. |
9 |
Fare clic su Configurazioni e verificare che il plug-in OpenFrame venga visualizzato nell'elenco Configurazioni OpenFrame. |
Le istanze con licenze Enterprise possono installare l'applicazione Webex Contact Center direttamente da ServiceNow Store.
Scaricare e installare il pacchetto Webex Contact Center da ServiceNow Store: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
Nel campo Filter navigator (Navigatore filtro) nella parte superiore sinistra della finestra, inserire |
2 |
Nella pagina Proprietà di sistema , ordinare le proprietà in base alla data aggiornata. Accertarsi di visualizzare le seguenti proprietà di Webex Contact Center : |
3 |
Fare agentdesktop_url clic per aprire la pagina Proprietà agentdesktop_url sistema. |
4 |
Nel campo Valore , inserire l'URL del desktop Webex Contact Center in base alla regione di attività.
|
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 proprie esigenze.
|
7 |
(Opzionale) Aggiungere gruppi di utenti nei seguenti modi:
|
1 |
Dal campo Filter Navigator (Navigatore filtro), andare a |
2 |
Fare clic su Nuovo. |
3 |
Immettere le seguenti proprietà per l'URL:
|
4 |
A destra del campo URL , fare clic sul pulsante Blocca e aggiungere |
5 |
(Opzionale) Selezionare uno o più gruppi di utenti/agenti per assegnare la configurazione. |
6 |
Fare clic su Invia. L'URL viene visualizzato come collegamento. |
7 |
Dal campo Navigatore filtri , passa a . |
8 |
(Opzionale) Nell'elenco Gruppo di utenti , spostare i gruppi di utenti che possono accedere al desktop di Webex Contact Center da Disponibile a Selezionato. |
9 |
Prima di utilizzare il telefono OpenFrame, assicurarsi di caricare il file JSON del layout desktop personalizzato ServiceNow nel Portale di gestione Webex Contact Center. Per ulteriori informazioni, vedi Impostazione del layout del desktop ServiceNow su Webex Contact Center. |
1 |
Scaricare il layout desktop per ServiceNow da https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Aggiornare le proprietà nel file Layout desktop, se necessario. |
3 |
Andare al portale di gestione Webex Contact Center . |
4 |
Dalla barra di navigazione del Portale di gestione, scegliere |
5 |
Fare clic su Nuovo layout e inserire i dettagli per il layout desktop. |
6 |
Caricare il file JSON layout desktop ServiceNow. |
7 |
Fare clic su Save (Salva) per salvare la configurazione. Ora è possibile avviare il desktop Webex Contact Center dalla console di ServiceNow. |
8 |
Dal campo Navigatore filtri , passa a . |
1 |
Dal campo Filtro navigatore, passa a Incidenti > Apri incidente. |
2 |
Fai clic con il pulsante destro del mouse sul campo del chiamante e fai clic su Configura dizionario. |
3 |
Aggiungere attributi separati da virgola Ora è possibile iniziare a utilizzare il desktop Webex Contact Center all'interno della console ServiceNow. |
4 |
Dal campo Navigatore filtri , passa a . |
L'accesso a Agent Desktop utilizzando l'opzione Desktop (WebRTC) non è attualmente supportato.
Agent Desktop nella console ServiceNow
Prima di effettuare chiamate in uscita, assicurarsi di effettuare quanto segue:
-
Creare il punto di accesso outdial e impostare una strategia di punto di accesso outdial.
-
Abilitare l'ANI outdial per il profilo agente.
-
Impostare l'ANI di chiamata in un'associazione numero-ingresso.
Per ulteriori informazioni, vedi il capitolo Provisioning della Guida all'installazione e all'amministrazione di Cisco Webex Contact Center.
Dal campo Navigatore filtri , passa a .
Per informazioni su come utilizzare Desktop, vedere la scheda Agente nella Guida di Webex Contact Center.
Panoramica
Questo articolo descrive diversi modi per personalizzare le regole aziendali per il connettore CRM ServiceNow. Dettagli su come puoi 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 del software o della competenza di Webex Contact Center.
Si tratta di 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.
Le sezioni seguenti forniscono dettagli su come impostare, abilitare e gestire il widget delle azioni per istanze di sviluppo e aziendali.
Commit del widget Update Set per le azioni
Per le istanze aziendali con licenza, installare l'ultima app Webex Contact Center da ServiceNow Store.
Per impostare il widget Azioni per le istanze dello sviluppatore, scaricare l'ultimo file XML System Update Set disponibile sul repo github in questa posizione: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Il nome file è webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Per eseguire il commit dell'aggiornamento impostato per il widget Azioni, vedere i passaggi da 2 a 9 in Commit dell'aggiornamento impostato.
Abilita widget 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 falso nella sezione headless del layout del desktop personalizzato. È necessario aggiornare il valore della proprietà solo nella sezione pannello del layout del desktop personalizzato.
Una volta abilitato il widget Azioni nel layout del 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.
- Oggetti CRM associati: fai clic su Associa a record attività per aggiungere oggetti CRM come tipo di chiamata (in entrata o in uscita), oggetto chiamata, note di chiamata e così via al record di attività.
- Gestisci gli incidenti: fai clic su Crea incidente. Viene creato un nuovo incidente con i dettagli del chiamante precompilati. È possibile effettuare gli aggiornamenti richiesti per l'incidente. È possibile scegliere di modificare il tipo di record da incidente a caso, modulo HR e così via in base ai requisiti. Per modificare il tipo di record, modifica il valore della proprietà typeOfRecord nella configurazione del widget Azioni. Ad esempio:
{ "comp": "md-tab-panel", "attributi": { "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" : "Crea incidente" }, "wrapper": { "title": "Azioni SNOW!", "maximizeAreaName": "app-maximize-area" } } ] }
- Aggiungere note di chiamata in diretta: è 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 codice in ServiceNow
Lo Script Include modifiche-
Andare al Navigatore filtro e cercare
include script
.Selezionare Include script in UI sistema.
-
Filtrare il Nome e ricercare
propUtils
. -
Modificare il metodo
UserGetSysId
nello Script.Curente:
ID UserGetSys: 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=utente.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:
ID UserGetSys: funzione () { var opened_for; //Modifiche relative all'incidente var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for= utente.sys_id;//restituire l'utente.sys_id; var inc = nuovo GlideRecordSecure('incidente'); 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== Altri progetti ==contact_type== Altri progetti ==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); },
-
Vai a Filter Navigator e cerca la
pagina UI
.Selezionare Pagine dell'interfaccia utente in UI di sistema.
-
Filtra il Nome e cerca
agentdesktop
. -
Modificare la funzione
screenpop
in Script client.Funzione corrente:
// screen pop funzione screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefono'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interazione', 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', 'telefono'); gaout.addParam('value', callerani); gaout.getXMLWait(); // Modifica correlata ad incidente var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incidente', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incidente', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Se le informazioni del chiamante sono presenti nel CRM e è già stato aperto un nuovo incidente con questo contatto, l'applicazione apre l'incidente in corso
Se le informazioni sul chiamante non sono presenti nel CRM, l'applicazione apre un nuovo incidente
Se le informazioni del chiamante sono presenti nel CRM, l'applicazione apre un nuovo incidente con i dettagli precompilati
Panoramica
Questo caso d'uso descrive dettagliatamente il processo per aggiungere un'ulteriore colonna alla tabella ServiceNow webexcc_imp_activity e creare sn_openframe_phone_log al momento dell'installazione di Webex CC per ServiceNow CRM Connector.
Per impostazione predefinita, la tabella contiene determinati campi e valori di sistema pronti all'uso.
È possibile creare più variabili specifiche dell'azienda (variabili CAD) all'interno di WebexCC Flow Designer e aggiungere le variabili CAD all'interno del registro dell'attività post chiamata ServiceNow nonché persistenti tali variabili ai dati della tabella delle attività post chiamata.
Questa è solo una documentazione di riferimento e mostra come effettuare questa operazione per una variabile CAD di esempio denominata Nome cliente che memorizza il nome del cliente all'interno di IVR e lo pubblica su ServiceNow.
È previsto che gli sviluppatori partner+customer ServiceNow configureranno e gestiranno questa configurazione poiché si tratta di una personalizzazione per il 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 attività e alla tabella attività utilizzando la tecnica descritta di seguito:
Aggiungi colonna all'attività IMP WebexCC
-
Modificare la tabella nella versione per sviluppatori di ServiceNow.
-
Vai al navigatore filtri e cerca studio.
Seleziona
Webex Contact Center
o
-
Selezionare la tabella
Attività WebexCC IMP
-
Aggiungere una nuova colonna, ad esempio
Nome cliente
Aggiungi colonna al registro telefono
-
Modificare la tabella del registro del telefono.
-
Aggiungere una nuova colonna, ad esempio
Nome cliente
.
Mappa di trasformazione attività WebexCC
Aggiungere una nuova colonna, ad esempio, mappatura campo CustomerName
.
Personalizza colonne elenco
Come consigliato da Servizio ora, modificare l'azione Scelta da Crea a Ignora.
Configura elenco registri telefono
Vai a Includi script
Aggiungere 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= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; }, setWebexcctable : funzione () { 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.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.CallDurationInSecondi; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Questa riga è stata aggiunta - per catturarla nel registro attività webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); //Attività sul record degli incidenti; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("telefono", 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(); } } } restituisce 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 schema di esempio mostrato sopra "actInfo.CustomerName".
Schermate demo
Visualizza la variabile CAD appena aggiunta nella tabella Attività WebexCC.
Crea variabile CAD per Flow Designer
Urgenza incidenteImpatto incidente
Aggiornamento script Service Now
Gli aggiornamenti allo script includono
-
Vai al navigatore filtri e cerca
include script
Selezionare l'opzione Include script in UI sistema.
-
Filtrare il Nome con
propUtils
. -
Modificare il metodo
UserGetSysId
nel campo Script .Script corrente:
ID UserGetSys: 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=utente.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:
ID UserGetSys: funzione () { 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= utente.sys_id;//restituire l'utente.sys_id; var inc = nuovo GlideRecordSecure('incidente'); 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== Altri progetti ==contact_type== Altri progetti ==== Collegamenti esterni ==* Sito ufficialeshort_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; },
-
Vai al navigatore filtri e cerca
pagine UI
.Selezionare l'opzione Pagine dell'interfaccia utente in UI di sistema.
-
Filtrare le pagine dell'interfaccia utente con Nome e ricercare agentdesktop .
-
Modificare la funzione
screenpop
nel campo dello script.Funzione corrente:
// screen pop funzione screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefono'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interazione', query: 'sys_id='+sysid }); }
Codice di esempio per l'incidente:
// funzione screen pop screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefono'); 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: 'incidente', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incidente', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Se le informazioni del chiamante sono presenti nel CRM e non sono presenti incidenti nuovi o in corso, l'applicazione apre un nuovo incidente
Modifica del codice in ServiceNow
Aggiungi nuove colonne alla tabella Attività IMP WebexCC
Apri la tabella Attività WebexCC IMPAggiungi una nuova colonna - InteractionsNumber Aggiungi una nuova colonna - Numero incidente
Fare clic su Aggiorna.
Aggiungere nuove colonne alla tabella Registro telefono
Apri la tabella Registro telefono
Mappa di trasformazione attività WebexCC
Apri mappa di trasformazione
dal navigatore filtri
Fare clic su WebexCC Activity TransformMap
Fare clic su Update (Aggiorna).
Le modifiche agli script includono
-
Andare al filtro Navigator e cercare "script inclusi".
Selezionare Include script in UI sistema.
-
Filtrare il Nome con
propUtils
. -
Modificare il metodo
setWebexcctable
.Nuovo codice di esempio per Incidente:
setWebexcctable: funzione () { 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']; elimina 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='Aggiorna lo stato a chiuso.'; 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("telefono", 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.CallDurationInSecondi; 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== Note == sys_id=webexcc.insert(); } restituisce sys_id; },
Modifiche metodo nelle pagine dell'interfaccia utente
-
Vai a Filter Navigator e cerca le
pagine UI
Selezionare l'opzione Pagine dell'interfaccia utente in UI di sistema.
-
Filtrare le pagine dell'interfaccia utente con Nome e ricercare
agentdesktop
. -
Modificare la funzione
nowActivities e screenpop
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 = nuovo 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', 'telefono'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incidente', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incidente', 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 successive. Per le personalizzazioni relative alle versioni più recenti 1.0.7 e superiori, seguire la procedura precedente.
N. personalizzazione 1 - Aggiungi regole aziendali personalizzate per i casi d'uso del flusso di chiamata
Crea un nuovo record di incidente per ogni chiamataPer ogni nuova chiamata nel connettore CRM WebexCC in ServiceNow, creare un nuovo record incidente.
Ricerca delle regole aziendali sul navigatore per filtri
Fare clic su Nuovo.
Codice di esempio per riferimento:
function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var telefono = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (visualizza == nullo) || 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", telefono); } if (userID != null) { if (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } se (url == nullo) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } risposta = url; url di restituzione; } funzione UserGetSysId(campo, valore) { var utente = nuovo GlideRecord("sys_user"); user.addQuery(campo, valore); user.query(); if (user.next()) restituisce l'utente.sys_id; altrimenti restituisce null; }
Esempio di configurazione della regola aziendale
Abilita Client chiamabile
Elaborazione CTI (Computer Telephony Integration) per incidente contrassegnata come Vero.
Aggiornare l'URL screenpop con la regola CTI personalizzata " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
Il sysparm_cti_rule=nome in cui 'nome' è il nome di una funzione deve essere invocato per l'elaborazione CTI anziché utilizzare lo script predefinito.
Definire la funzione in una sys_script voce contrassegnata client chiamabile.
Se devi inserire, aggiornare o eliminare qualsiasi GlideRecord nella funzione, chiama una funzione chiamabile separata non client per eseguire gli aggiornamenti.
Per rendere uno script chiamabile dal client, è necessario selezionare la casella di controllo chiamabile dal client nel modulo che viene visualizzato quando sys_script viene visualizzata la voce.
La casella di controllo chiamabile dal client non viene visualizzata per impostazione predefinita. Per visualizzare, è necessario modificare i campi visualizzati nel modulo utilizzando l'icona a forma di ingranaggio e il meccanismo di pulizia a slush bucket.
N. personalizzazione 2 - Aggiungi variabile CAD nella tabella attività di Webex Contact Center
PanoramicaQuesto articolo descrive dettagliatamente il processo di aggiunta di un'altra colonna alla tabella ServiceNow, webexcc_activity creata al momento dell'installazione di Webex CC per ServiceNow CRM Connector.
Per impostazione predefinita, la tabella contiene campi e valori di sistema pronti all'uso.
È possibile creare potenzialmente 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 di ServiceNow e mantenerlo nella tabella attività post chiamata dati.
-
Questa è solo la documentazione di riferimento e mostra come effettuare questa operazione per una variabile CAD di esempio denominata Nome cliente che memorizza il nome del cliente all'interno di IVR e lo pubblica su ServiceNow.
-
Gli sviluppatori partner+customer ServiceNow configureranno e gestiranno questa configurazione poiché si tratta di una personalizzazione per il 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 della variabile CAD al registro attività e alla tabella attività utilizzando la tecnica descritta di seguito.
Modificare la tabella nella versione per sviluppatori di ServiceNow.
Andare a
.Selezionare la tabella Attività WebexCC .
Ad esempio, Nome cliente.
Seleziona layout elenco per attività WebexCC.
Questo passaggio non è richiesto se si sta utilizzando il set di aggiornamento XML - è necessario aggiungere solo una riga "webexcc.u_customername=actInfo.CustomerName" a propUtils.
Script di esempio
Vedere la linea 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 : funzione () { 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.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.CallDurationInSecondi; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Questa riga è stata aggiunta - per catturarla nel registro attività webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // Attività sul record degli incidenti; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("telefono", 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(); } } } restituisce sys_id; }, tipo: 'propUtils2' });
Modifica la pagina dell'interfaccia utente con un nuovo nome di scriptCreare una variabile CAD in Flow Designer
Aggiunta della variabile CAD al layout del desktop
Schermate demo
Visualizza la variabile CAD appena aggiunta nella tabella Attività WebexCC.