Integrați Webex Contact Center cu ServiceNow (Versiunea 1—Moștenit)
Cerințe preliminare
În prezent, această funcție se aplică numai agenților.
Înainte de a integra Webex Contact Center cu consola ServiceNow CRM, asigurați-vă că aveți următoarele:
-
Acces la Centrulde contact Webex.
-
Acces de administrator la Control Hub în https://admin.webex.com și la Portalul de management al Webex Contact Center. Adresele URL pentru portalul de gestionare sunt specifice regiunii dvs.
-
America de Nord: https://portal.wxcc-us1.cisco.com
-
Regatul Unit: https://portal.wxcc-eu1.cisco.com
-
Japonia: https://portal-v2.wxcc-jp1.cisco.com
-
Singapore: https://portal-v2.wxcc-sg1.cisco.com
-
-
Un agent cu acces la Desktop. Adresa URL pentru desktop este specifică regiunii dvs.
-
America de Nord: https://desktop.wxcc-us1.cisco.com
-
Regatul Unit: https://desktop.wxcc-eu1.cisco.com
-
Japonia: https://desktop.wxcc-jp1.cisco.com
-
Singapore: https://desktop.wxcc-sg1.cisco.com
-
-
Agent de acces la următorul domeniu care este adăugat în lista de permise politica de securitate de conținut:
-
*.service-now.com
Pentru mai multe informații despre cum se definește lista permisă, consultați articolul Setări de securitate pentru Centrulde contact Webex.
-
-
Un cont de portal pentru dezvoltatori ServiceNow. Pentru a crea un cont, accesați portalul https://developer.servicenow.com/dev.do pentru dezvoltatori ServiceNow și faceți clic pe Înregistrare și pornire clădire.
-
Acces la următoarele fișiere la https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Set de actualizări ServiceNow (XML)
-
ServiceNow Contact Center Desktop Layout (JSON)
-
- Edițiile ServiceNow acceptate de Webex Contact Center sunt Vancouver, Utah, Tokya, Washington și Xanadu. Pentru mai multe informații, consultați Integrarea Webex Contact Center cu ServiceNow.
Urmați una dintre cele două metode de mai jos:
Pentru instanțele dezvoltatorului, vă recomandăm să urmați pașii din ghidul instanței pentru dezvoltator.
Dacă dețineți o instanță cu licență Enterprise, urmați instrucțiunile pentru instanțele cu licență Enterprise.
Nu vă recomandăm să amestecați aplicația cu licență Enterprise cu instanțele de tip sandbox pentru dezvoltator.
Următoarele secțiuni descriu pașii pentru instalarea conectorului ServiceNow pentru instanțele dezvoltatorilor.
1 |
Conectați-vă la contul dvs. de portal de dezvoltator ServiceNow și deschideți consola Administrare . |
2 |
Din zona Instanța mea din meniul Cont , faceți clic pe Pornire clădire. |
3 |
În instanța de dezvoltator, din câmpul Filtru navigator din partea din stânga sus a ferestrei, navigați la Pluginuri. |
4 |
Căutați pluginul Openframe care are titlul Openframe. Poate fi necesar să defilați prin listă. |
5 |
Faceți clic pe Instalare pentru a instala pluginul Openframe. |
6 |
În caseta de dialog Activare plugin , faceți clic pe Activare. |
7 |
Când activarea pluginului este finalizată, faceți clic pe Închidere și reîncărcare formular în caseta de dialog Activare plugin . |
8 |
Pentru a verifica activarea plugin-ului , din câmpul Navigator filtru din partea stângă sus a ferestrei, navigați la OpenFrame. |
9 |
Faceți clic pe Configurații și asigurați-vă că pluginul OpenFrame apare în lista Configurații OpenFrame. |
1 |
Descărcați cel mai recent fișier XML al setului de actualizare de sistem disponibil pe repo github din această locație: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. Nume fișier: webexcc-servicenow-update-setV(X).xml |
2 |
În instanța ServiceNow, din câmpul Filtru navigator din partea din stânga sus a ferestrei, navigați la . |
3 |
Faceți clic pe linkul Import set de actualizări din XML . |
4 |
Faceți clic Selectare fișier, selectați fișierul XML al setului de actualizare de sistem, apoi faceți clic pe Încărcați...
Setul de actualizări apare în lista Seturi de actualizări preluate și se află în starea Încărcat .
|
5 |
Din lista Seturi de actualizare preluate , faceți clic pe numele fișierului Set de actualizare (link) pentru a deschide setul de actualizare. |
6 |
În partea din dreapta sus a ferestrei, faceți clic pe Previzualizare set actualizare pentru a verifica dacă există probleme la actualizarea setată. |
7 |
Faceți clic pe Închideți în caseta de dialog Actualizare setare previzualizare după finalizarea previzualizării. |
8 |
Faceți clic pe Comitere set de actualizări. |
9 |
Faceți clic pe Închidere în caseta de dialog Actualizare set Comitere odată ce comiterea setului de actualizare este finalizată. |
1 |
În câmpul Filtru navigator din partea din stânga sus a ferestrei, type |
2 |
Pe pagina Proprietăți sistem, sortați proprietățile după data actualizată. Asigurați-vă că puteți vedea următoarele proprietăți Webex Contact Center : |
3 |
Faceți clic agentdesktop_url pentru a deschide pagina Proprietate agentdesktop_url sistem. |
4 |
În câmpul Valoare introduceți URL-ul pentru Webex Contact Center Desktop, în funcție de regiunea de funcționare.
|
5 |
Faceți clic pe Actualizare pentru a salva modificările. |
6 |
(Opțional) Pentru a modifica numele tabelului activitate, editați proprietățile webexccactivitytable după cum este necesar. Pe pagina Proprietăți sistem , faceți clic pe webexccactivitytable. Modificați câmpul Valoare conform cerințelor. |
7 |
(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:
|
1 |
Din câmpul Navigator filtru, navigați la . |
2 |
Faceți clic pe Nou. |
3 |
Introduceți următoarele proprietăți pentru URL:
|
4 |
În partea dreaptă a câmpului URL , faceți clic pe butonul Blocare și adăugați |
5 |
(Opțional) Selectați grupul (grupurile) de utilizatori/agenți pentru a atribui configurația. |
6 |
Faceți clic pe Trimitere. URL-ul apare ca un link. |
7 |
Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON cu aspect desktop personalizat ServiceNow în portalul de gestionare al Webex Contact Center. Pentru mai multe informații, consultați Configurați aspectul desktop ServiceNow pe Webex Contact Center. |
1 |
Descărcați aspectul Desktop pentru ServiceNow de la https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Actualizați proprietățile din fișierul cu aspect de desktop, dacă este necesar. |
3 |
Accesați Portalul de gestionare a centrului de contact Webex. |
4 |
Din bara de navigare a Portalului de management, alegeți |
5 |
Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktopului. |
6 |
Încărcați fișierul JSON ServiceNow Desktop Layout. |
7 |
Faceți clic pe Salvare pentru a salva configurația. Acum puteți porni Webex Contact Center Desktop în consola ServiceNow. |
8 |
Din câmpul Filtru navigator , navigați la . |
Următoarele secțiuni descriu pașii pentru instalarea conectorului ServiceNow pentru instanțele Enterprise cu licență.
1 |
Conectați-vă la contul dvs. de portal de dezvoltator ServiceNow și deschideți consola Administrare . |
2 |
Din zona Instanța mea din meniul Cont , faceți clic pe Pornire clădire. |
3 |
În instanța de dezvoltator, din câmpul Filtru navigator din partea din stânga sus a ferestrei, navigați la Pluginuri. |
4 |
Căutați pluginul Openframe care are titlul Openframe. Poate fi necesar să defilați prin listă. |
5 |
Faceți clic pe Instalare pentru a instala pluginul Openframe. |
6 |
În caseta de dialog Activare plugin , faceți clic pe Activare. |
7 |
Când activarea pluginului este finalizată, faceți clic pe Închidere și reîncărcare formular în caseta de dialog Activare plugin . |
8 |
Pentru a verifica activarea plugin-ului , din câmpul Navigator filtru din partea stângă sus a ferestrei, navigați la OpenFrame. |
9 |
Faceți clic pe Configurații și asigurați-vă că pluginul OpenFrame apare în lista Configurații OpenFrame. |
Instanțele care au licențe Enterprise pot instala aplicația Webex Contact Center direct din magazinul ServiceNow.
Descărcați și instalați pachetul Webex Contact Center din magazinul ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
În câmpul Navigator filtrare din partea stângă sus a ferestrei, introduceți |
2 |
Pe pagina Proprietăți sistem, sortați proprietățile după data actualizată. Asigurați-vă că puteți vedea următoarele proprietăți Webex Contact Center : |
3 |
Faceți clic agentdesktop_url pentru a deschide pagina Proprietate agentdesktop_url sistem. |
4 |
În câmpul Valoare introduceți URL-ul pentru Webex Contact Center Desktop, în funcție de regiunea de funcționare.
|
5 |
Faceți clic pe Actualizare pentru a salva modificările. |
6 |
(Opțional) Pentru a schimba numele tabelului Activitate, editați proprietățile x_caci_webexcc.webexccactivitytable după cum este necesar.
|
7 |
(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:
|
1 |
Din câmpul Navigator filtru, navigați la . |
2 |
Faceți clic pe Nou. |
3 |
Introduceți următoarele proprietăți pentru URL:
|
4 |
În partea dreaptă a câmpului URL , faceți clic pe butonul Blocare și adăugați |
5 |
(Opțional) Selectați grupul (grupurile) de utilizatori/agenți pentru a atribui configurația. |
6 |
Faceți clic pe Trimitere. URL-ul apare ca un link. |
7 |
Din câmpul Filtru navigator , navigați la . |
8 |
(Opțional) În lista Grup de utilizatori , mutați grupurile de utilizatori care pot accesa Webex Contact Center Desktop din Disponibil în Selectat. |
9 |
Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON cu aspect desktop personalizat ServiceNow în portalul de gestionare al Webex Contact Center. Pentru mai multe informații, consultați Configurați aspectul desktop ServiceNow pe Webex Contact Center. |
1 |
Descărcați aspectul Desktop pentru ServiceNow de la https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Actualizați proprietățile din fișierul cu aspect de desktop, dacă este necesar. |
3 |
Accesați Portalul de gestionare a centrului de contact Webex. |
4 |
Din bara de navigare a Portalului de management, alegeți |
5 |
Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktopului. |
6 |
Încărcați fișierul JSON ServiceNow Desktop Layout. |
7 |
Faceți clic pe Salvare pentru a salva configurația. Acum puteți porni Webex Contact Center Desktop în consola ServiceNow. |
8 |
Din câmpul Filtru navigator , navigați la . |
1 |
Din câmpul Filtru navigator, navigați la Incidente > Deschidere incident. |
2 |
Faceți clic dreapta pe câmpul apelantului și faceți clic pe Configurare dicționar. |
3 |
Adăugați Atribute separate prin virgulă Acum puteți începe să utilizați Webex Contact Center Desktop din consola ServiceNow. |
4 |
Din câmpul Filtru navigator , navigați la . |
În prezent, nu acceptăm conectarea la Agent Desktop utilizând opțiunea Desktop (WebRTC).
Agent Desktop în consola ServiceNow
Înainte de a efectua apeluri outdial, asigurați-vă că efectuați următoarele:
-
Creați punctul de intrare outdial și configurați o strategie de punct de intrare outdial.
-
Activați ANI outdial pentru profilul de agent.
-
Setați ANI outdial la o mapare număr-la-punct de intrare de apelare.
Pentru mai multe informații, consultați capitolul Asigurarea accesului din Ghidul de configurare și administrare Cisco Webex Contact Center.
Din câmpul Filtru navigator , navigați la .
Pentru informații despre modul de utilizare a desktopului, consultați fila Agent din ajutorul Webex Contact Center.
Prezentare generală
Acest articol acoperă mai multe modalități de a vă personaliza regulile de afaceri pentru conectorul CRM ServiceNow. Acesta detaliază modul în care puteți personaliza cazurile de utilizare pe baza regulilor de afaceri specifice ServiceNow.
Clientul trebuie să își gestioneze singur aceste cazuri de utilizare pe ServiceNow. Configurația este specifică ServiceNow și nu software-ului sau expertizei Webex Contact Center.
Aceasta este o documentație de referință care ajută la modificarea normelor de afaceri. Dezvoltatorii ServiceNow vor crea și gestiona regulile de afaceri și vor oferi asistență.
Cisco oferă doar documentație eșantion.
Următoarele secțiuni oferă detalii despre cum să configurați, să activați și să gestionați widgetul de acțiuni pentru instanțele dezvoltatorului și ale întreprinderii.
Comiterea setului de actualizare pentru widgetul de acțiuni
Pentru instanțele Enterprise cu licență, instalați cea mai recentă aplicație Webex Contact Center din magazinul ServiceNow.
Pentru a configura widgetul Acțiuni pentru instanțele dezvoltatorilor, descărcați cel mai recent fișier XML al setului de actualizare a sistemului disponibil în repo github din această locație: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Numele fișierului este webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Pentru a comite setarea de actualizare pentru widgetul Acțiuni, consultați pașii 2-9 din Comiterea setului de actualizare.
Activați widgetul de acțiuni
Utilizați proprietatea isWidgetDisplayEnabled pentru a activa widgetul Acțiuni. Nu trebuie să modificați valoarea acestei proprietăți în secțiunea fără cap a aspectului de desktop personalizat. Proprietatea este setată întotdeauna la fals în secțiunea fără cap a aspectului de desktop personalizat. Ar trebui să actualizați valoarea proprietății numai în secțiunea de panou a aspectului de desktop personalizat.
După ce activați widgetul Acțiuni în aspectul de desktop personalizat, puteți efectua următoarele acțiuni:
- Gestionați înregistrările activității — faceți clic pe Vizualizați/Editați înregistrarea activității pentru a vizualiza lista înregistrărilor activității asociate apelantului.
- Asociați obiecte CRM — faceți clic pe Asociați la înregistrările de activitate pentru a adăuga obiecte CRM, cum ar fi tipul de apel (de intrare sau de ieșire), obiectul de apel, notele de apel și așa mai departe la înregistrarea de activitate.
- Gestionați incidentele — Faceți clic pe Creați incident. Se creează un incident nou, cu detaliile apelantului populate în prealabil. Puteți efectua actualizările necesare pentru incident. Puteți alege să modificați tipul de înregistrare de la incident la caz, modul HR etc., în funcție de cerințele dvs. Pentru a schimba tipul de înregistrare, modificați valoarea proprietății typeOfRecord în configurația widgetului Acțiuni. De exemplu:
{ "comp": "md-tab-panel", "atribute": { "slot": "panou", "clasă": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": adevărat, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions !", "maximizeAreaName": "app-maximize-area" } } ] }
- Adăugați note de apel live—Puteți capta informații suplimentare despre apel în zona de text și puteți încheia apelul. Puteți vedea aceste note adăugate ca note de apel în înregistrarea activității.
Modificare de cod în ServiceNow
Scriptul Include modificări-
Accesați browserul de filtrare și căutați
include scriptul
.Selectați Scriptul include din interfața de utilizator a sistemului.
-
Filtrați Nume și căutați
propUtils
. -
Modificați metoda
UserGetSysId
din Script.Curentă:
Identificatorul utilizatorului GetSys: function () { var opened_for; var user = GlideRecord nou ("sys_user"); user. addQuery("this. getParameter('field'),this. getParameter('value')); user. query (); if (user. next()) opened_for=user.sys_id; var grInt = GlideRecord nou ('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID (); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert (); return sysid; },
Cod eșantion nou pentru incident:
Identificatorul utilizatorului GetSys: funcție () { var opened_for; //Modificări legate de incident var sysidlist = {}; var user = GlideRecordSecure (") nousys_user"); user.addQuery (this.getParameter ('field'), this.getParameter ('value')); user.query (); if(user.next ()) { opened_for=utilizator.sys_id;//returnare utilizator.sys_id; var inc = GlideRecordSecure nou ('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=„telefon”; inc.short_description='Apel primit de la '+ this.getParameter ('value'); sysidlist.incsysid=inc.insert(); } } var grInt = GlideRecordSecure nou ('interacțiune'); grInt.initialize (); grInt.assigned_to= gs.getUserID (); grInt.type= 'telefon'; grInt.opened_for== opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify (sysidlist); },
-
Accesați browserul de filtrare și căutați
pagina UI
.Selectați paginile UI din Interfața de utilizator a sistemului.
-
Filtrați Nume și căutați
agentdesktop
. -
Modificați funcția
pop-up
în Scriptul client.Funcția curentă:
// funcție pop ecran screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = GlideAjax nou('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: „interacțiune”, interogare: 'sys_id='+sysid });
Codul eșantion pentru incident:
// funcție pop ecran screenpop (callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = GlideAjax nou('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); // Pentru Modificare legată de incident var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: „incident”, interogare: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm ({ entity: „incident”, interogare: 'sys_id=-1', 'interaction_sys_id': sysObj. sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Dacă informațiile apelantului există în CRM și există deja un incident nou deschis cu acest contact, aplicația deschide incidentul în curs
Dacă informațiile apelantului nu există în CRM, aplicația deschide un nou incident
Dacă informațiile apelantului există în CRM, aplicația deschide un nou incident cu detalii completate în prealabil
Prezentare generală
Acest caz de utilizare detaliază procesul de adăugare a unei coloane suplimentare în tabelul ServiceNow - webexcc_imp_activity și crearea sn_openframe_phone_log la instalarea Webex CC for ServiceNow CRM Connector.
În mod implicit, tabelul conține anumite câmpuri și valori din sistemul de căsuțe.
Puteți să creați mai multe variabile specifice afacerii (variabile CAD) în designerul de flux WebexCC și să adăugați variabilele CAD în jurnalul de activitate după apel ServiceNow, precum și să persistați acest lucru la datele din tabelul de activitate după apel.
Aceasta este doar o documentație de referință - și arată cum se face acest lucru pentru o variabilă CAD eșantion numită Nume client, care stochează numele clientului în IVR și îl postează în ServiceNow.
Se așteaptă ca dezvoltatorii ServiceNow partener+client să configureze și să gestioneze această configurație, deoarece este o personalizare pentru conectorul existent.
Cisco furnizează numai tehnicile pentru personalizarea și extinderea conectorului.
Începând cu acest articol, echipa Cisco a validat asistența pentru adăugarea variabilei CAD în Jurnalul de activitate și în tabelul de activitate, utilizând tehnica descrisă mai jos:
Adăugați coloană la activitatea IMP WebexCC
-
Editați tabelul în versiunea pentru dezvoltator a ServiceNow.
-
Accesați browserul de filtrare și căutați studio.
Selectați
Webex Contact Center
sau
-
Selectați tabelul
Activitate IMP Webex
-
Adăugați o coloană nouă, de exemplu,
NumeClient
Adăugare coloană în jurnalul telefonic
-
Editați tabelul jurnalului telefonului.
-
Adăugați o coloană nouă, de exemplu,
NumeClient
.
Harta transformării activităților WebexCC
Adăugați o coloană nouă, de exemplu, asocierea câmpului CustomerName
.
Personalizați coloanele listei
Așa cum recomandă Serviciul acum, schimbați acțiunea Alegere de la creare la ignorare.
Configurați lista cu jurnalele telefonului
Accesați Includere script
Adăugați o singură linie webexcc.u_customername=actInfo.CustomerName
la propUtils.
Script mostră
Vedeți linia: webexcc.u_customername=actInfo.CustomerName; cu un comentariu de asistență.
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 = GlideRecord nou ("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 = GlideRecord nou ('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID (); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert (); return sysid; }, setWebexcctable : funcție () { var sys_id=0; var actInfo = JSON. parse (this.getParameter ('actInfo')); var webexcc = GlideRecordSecure (gs.getProperty (')x_caci_webexcc.webexccactivitytable')); webexcc.addQuery ("callobject", actInfo.CallObject); webexcc.query(); if (!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.queuename; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.CallTime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Această linie este Adăugată - pentru a o captura în Jurnalul de activitate webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); //Înregistrare incident; var actInfoString =this.getParameter('actInfo'); var suser = nou GlideRecordSecure ("sys_user"); suser.addQuery("telefon", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = nou 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; }, introduceți: 'propUtils' });
Creați o variabilă CAD în proiectantul de flux
Adăugați variabila CAD la aspectul de desktop
Exemplu
„CadName1:SnowField1,CadName2:SnowField2” CadName1 este CustomerName SnowField1 este, de asemenea, utilizat ca CustomerName care face parte din eșantionul scirpt showen de mai sus „actInfo.CustomerName”.
Capturi de ecran demonstrative
Vizualizați variabila CAD nou adăugată în tabelul Activitate WebexCC.
Creați o variabilă CAD pentru Designerul de flux
Urgența incidentuluiImpactul incidentului
Actualizare script Serviciu acum
Actualizările la script includ
-
Accesați browserul de filtrare și căutați
include scriptul
Selectați opțiunea Scriptul include din Interfața de utilizator sistem.
-
Filtrați Nume cu
propUtils
. -
Modificați metoda
UserGetSysId
din câmpul Script .Scriptul curent:
Identificatorul utilizatorului GetSys: function () { var opened_for; var user = GlideRecord nou ("sys_user"); user. addQuery("this. getParameter('field'),this. getParameter('value')); user. query (); if (user. next()) opened_for=user.sys_id; var grInt = GlideRecord nou ('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID (); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert (); return sysid; },
Cod eșantion nou pentru incident:
Identificatorul utilizatorului GetSys: funcție () { var opened_for; var sysidlist = {}; var user = GlideRecordSecure (") nousys_user"); user.addQuery (this.getParameter ('field'), this.getParameter ('value')); user.query (); if(user.next ()) { opened_for=utilizator.sys_id;//returnare utilizator.sys_id; var inc = GlideRecordSecure nou ('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='telefon'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Apel primit de la '+ this.getParameter ('value'); sysidlist.incsysid=inc.insert(); } } var grInt = GlideRecordSecure nou ('interacțiune'); grInt.initialize (); grInt.assigned_to= gs.getUserID (); grInt.type= 'telefon'; grInt.opened_for== opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify (sysidlist);//sysid; },
-
Accesați browserul de filtrare și căutați
pagini UI
.Selectați opțiunea Pagini UI din Interfață utilizator sistem.
-
Filtrați paginile interfeței de utilizator cu Nume și căutați agentdesktop .
-
Modificați funcția
pop-up
în câmpul script.Funcția curentă:
// funcție pop ecran screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = GlideAjax nou('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: „interacțiune”, interogare: 'sys_id='+sysid }); }
Codul eșantion pentru incident:
// funcție fereastră pop-up screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = GlideAjax nou('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam ('field', 'telefon'); gaout.addParam ('value', apelerani); 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”, interogare: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm ({ entity: „incident”, interogare: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem ("screenpopinteraction",JSON.stringify (sysObj)); }
Dacă informațiile apelantului există în CRM și nu există niciun incident nou sau în curs, aplicația deschide un nou incident
Schimbați codul pe ServiceNow
Adăugați coloane noi în tabelul Activitate IMP Webex
Deschideți tabelul WebexCC IMP ActivityAdăugați o coloană nouă - Număr de interacțiuni Adăugați o coloană nouă - Număr incident
Faceți clic pe Actualizați.
Adăugați coloane noi în tabelul Jurnal telefon
Deschideți tabelul Jurnal telefon
Harta transformării activităților WebexCC
Deschideți harta de transformare
din navigatorul de filtrare
Faceți clic pe WebexCC Activity TransformMap
Faceți clic pe Actualizați.
Modificările la script includ
-
Accesați browserul de filtrare și căutați „script include”.
Selectați Scriptul include din interfața de utilizator a sistemului.
-
Filtrați Nume cu
propUtils
. -
Schimbați metoda
setWebexcctable
.Cod eșantion nou pentru Incident:
setWebexcctable: funcție () { var sys_id=0; var actInfo = JSON.parse (this.getParameter ('actInfo')); var webexcc = GlideRecordSecure nou (gs.getProperty ('webexccactivitytable')); webexcc.addQuery ("u_callobject", actInfo.CallObject); webexcc.query(); if (!webexcc.next()) { //Înregistrare activități pe Incident; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; ștergeți actInfo['interaction_sys_id„]; ștergeți actInfo[”incident_sys_id']; if( interactionsysid!= null && interactionsysid!= undefined){ var inte = new GlideRecordSecure ('interaction'); //inte.get ('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); int. query(); if (int. next()) { intenum=int. number; // int. setValue ('state', 'Închis complet'); int.work_notes='Actualizare stare la închis'; inte.update(); } } if( incsysid!= null && incsysid!= undefined){ var inci = GlideRecordSecure nou ('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 = nou GlideRecordSecure ("sys_user"); suser.addQuery("telefon", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = nou 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= intensiv; sys_id=webexcc.insert (); } întoarce sys_id; },
Modificări de metodă pe paginile UI
-
Accesați browserul de filtrare și căutați
pagini UI
Selectați opțiunea Pagini UI din Interfață utilizator sistem.
-
Filtrați paginile interfeței de utilizator cu Nume și căutați
agentdesktop
. -
Modificați funcția
nowActivities și screenpop-up
din script.Funcția curentă:
funcție nowActivities (actInfo, ani) { var gaout = GlideAjax nou ('propUtils'); gaout.addParam ('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify (actInfo)); gaout.addParam('ani', stripPrefixes(ani))); gaout.getXML (SetCCsysId); }
Codul eșantion pentru incident:
function nowActivities (actInfo, ani) { var sysObjstr = window.localStorage.getItem ("screenpopinteraction"); if (sysObjstr != null && sysObjstr != nedefinit) { var sysObjjson=JSON.parse (sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = GlideAjax nou ('propUtils'); gaout.addParam ('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML (SetCCsysId); } screenpop funcție (callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = GlideAjax nou('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout. addParam ('field', 'telefon'); gaout. addParam ('value', callerani); gaout. getXMLWait (); // var sysid = gaout. getAnswer (); var sysObj = JSON. parse (gaout. getAnswer ()); if (sysObj. incsysid){ openFrameAPI. openServiceNowForm ({ entity: „incident”, interogare: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm ({ entity: „incident”, interogare: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem ("screenpopinteraction",JSON.stringify (sysObj)); }
Rezultate după actualizare
Următoarele personalizări se aplică versiunilor 1.0.5 și ulterioare. Pentru personalizările pentru versiunile mai noi 1.0.7 și versiunile ulterioare, urmați pașii de mai sus.
Personalizare nr. 1 - Adăugați reguli de afaceri personalizate pentru cazurile de utilizare a fluxului de apeluri
Creați o nouă înregistrare a incidentelor pentru fiecare apelPentru fiecare apel nou la conectorul CRM WebexCC din ServiceNow, creați o nouă înregistrare a incidentelor.
Căutați reguli de afaceri în browserul de filtrare
Faceți clic pe Nou.
Cod eșantion pentru referință:
customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var telefon = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; dacă (fQuery == null) fQuery = ''; var view = sysparm_view; dacă (vizualizare == nul || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } dacă (userID == null && name != null && name != '') { userID = UserGetSysId ("name", nume); } dacă (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", telefon); } dacă (userID != null) { if (fQuery. length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } dacă (url == null) { url = "incident.do?sys_id=-1"; dacă (fQuery!= null) url += "&sysparm_query=" + fQuery; } răspuns = url; întoarce url; } funcţie UserGetSysId (câmp, valoare) { var user = GlideRecord nou ("sys_user"); user. addQuery (câmp, valoare); user. query (); if (user. next ()) returnează utilizatorul.sys_id; în caz contrar returnează nul; }
Configurație model pentru regula de afaceri
Activați clientul apelabil
Procesarea integrării telefoniei computerizate (CTI) pentru incident este marcată ca Adevărat.
Actualizați URL-ul ferestrei pop-up cu regula CTI personalizată „cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone=”
sysparm_cti_rule=name unde 'name' este numele unei funcții trebuie să fie invocat pentru Procesarea CTI în loc să folosiți scriptul implicit.
Definiți funcția într-o sys_script intrare marcată cu client apelabil.
Dacă trebuie să inserați, să actualizați sau să ștergeți orice GlideRecord(e) din funcție, apelați o funcție separată care poate fi apelată fără client pentru a efectua actualizările.
Pentru a face un script apelabil client, trebuie să bifați caseta de selectare apelabil client din formularul care se afișează când sys_script este afișată intrarea.
Caseta de selectare apelabilă de către client nu apare în mod implicit. Pentru a vizualiza, trebuie să modificați câmpurile care se afișează pe formular utilizând pictograma roată dințată și mecanismul de găleată.
Personalizare nr. 2 - Adăugați o variabilă CAD în tabelul de activități al Webex Contact Center
Prezentare generalăAcest articol detaliază procesul de adăugare a unei coloane suplimentare la tabelul ServiceNow - webexcc_activity care este creat la instalarea Webex CC for ServiceNow CRM Connector.
În mod implicit, tabelul conține câmpuri și valori neincluse în sistem.
Aveți potențial posibilitatea să creați mai multe variabile specifice afacerii (variabile CAD) în designerul de flux WebexCC și să adăugați aceste variabile CAD în jurnalul de activitate după apelServiceNow și să mențineți acest lucru la datele din tabelul de activitate după apel .
-
Aceasta este doar o documentație de referință - și arată cum se face acest lucru pentru o variabilă CAD eșantion numită Nume client, care stochează numele clientului în IVR și îl postează în ServiceNow.
-
Dezvoltatorii ServiceNow pentru parteneri+clienți vor configura și gestiona această configurație, deoarece este o personalizare pentru conectorul existent.
-
Cisco va furniza doar tehnicile pentru personalizarea și extinderea conectorului.
-
Începând cu acest articol, echipa Cisco a validat asistența pentru adăugarea variabilei CAD în Jurnalul de activitate și în tabelul de activitate, utilizând tehnica descrisă mai jos.
Editați tabelul în versiunea pentru dezvoltator a ServiceNow.
Accesați
.Selectați tabelul Activitate WebexCC .
De exemplu, CustomerName.
Selectați aspectul listei pentru Activitate WebexCC.
Acest pas nu este necesar dacă utilizați XML Set Update XML - Este necesară doar o singură linie pentru a fi adăugată „webexcc.u_customername=actInfo.CustomerName” la propUtils.
Script mostră
Vedeți linia cu:webexcc.u_customername=actInfo.CustomerName; cu un comentariu de asistență.
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 : funcție () { var sys_id=0; var actInfo = JSON. parse (this.getParameter ('actInfo')); var webexcc = GlideRecordSecure (gs.getProperty (')x_caci_webexcc.webexccactivitytable')); webexcc.addQuery ("callobject", actInfo.CallObject); webexcc.query(); if (!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.queuename; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.CallTime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Această linie este Adăugată - pentru a o captura în Jurnalul de activitate webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // Activități înregistrare incident; var actInfoString =this.getParameter('actInfo'); var suser = GlideRecordSecure nou ("sys_user"); suser.addQuery("telefon", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = nou 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(acționând șir),null,2); inc.comments =jsonPretty; inc.update(); } } } return sys_id; }, introduceți: „propUtils2” });
Editați pagina UI cu un nou nume de scriptCreați o variabilă CAD în proiectantul de flux
Adăugați variabila CAD la aspectul de desktop
Capturi de ecran demonstrative
Vizualizați variabila CAD nou adăugată în tabelul Activitate WebexCC.