Integrarea Webex Contact Center cu ServiceNow
Când integrați Webex Contact Center cu consola ServiceNow CRM, puteți lansa Webex Contact Center Desktop din cadrul ServiceNow.
Condiţii prealabile
Înainte de a integra Webex Contact Center cu consola ServiceNow CRM, asigurați-vă că aveți următoarele:
-
Acces la Webex Contact Center.
-
Acces administrator la Control Hub la https://admin.webex.com și la Webex Contact Center Management Portal. URL-urile pentru Portalul de management sunt specifice regiunii dvs.
-
America de Nord: https://portal.wxcc-us1.cisco.com
-
Marea Britanie: 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. URL-ul pentru desktop este specific regiunii dvs.
-
America de Nord: https://desktop.wxcc-us1.cisco.com
-
Marea Britanie: https://desktop.wxcc-eu1.cisco.com
-
Japonia: https://desktop.wxcc-jp1.cisco.com
-
SINGAPORE: https://desktop.wxcc-sg1.cisco.com
-
-
Accesul agentului la următorul domeniu, care este adăugat în Lista permisă a politicii de securitate a conținutului:
-
*.service-now.com
Pentru mai multe informații despre cum se definește lista permisă, consultați articolul Setări de securitate pentru Webex Contact Center.
-
-
Un cont portal pentru dezvoltatori ServiceNow. Pentru a crea un cont, accesați portalul pentru dezvoltatori ServiceNow la https://developer.servicenow.com/dev.do și faceți clic pe Înregistrare și începeți să construiți.
-
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)
-
Aspect desktop ServiceNow Contact Center (JSON)
-
- Edițiile ServiceNow acceptate de Webex Contact Center sunt Vancouver, Utah, Tokya, Washington și Xanadu. Pentru mai multe informații, consultați Webex Integrarea centrului de contact cu ServiceNow.
Urmați una dintre cele două metode de mai jos:
Pentru instanțele dezvoltatorilor, vă recomandăm să urmați pașii din ghidul instanțelor pentru dezvoltatori.
Dacă dețineți o instanță licențiată de întreprindere, urmați instrucțiunile pentru instanțele licențiate de întreprindere.
Nu vă recomandăm să combinați aplicația licențiată pentru întreprinderi cu instanțele sandbox pentru dezvoltatori.
Următoarele secțiuni descriu pașii pentru instalarea conectorului ServiceNow pentru instanțele dezvoltatorilor.
1 |
conectați-vă la contul portalului pentru dezvoltatori ServiceNow și deschideți consola de administrare . |
2 |
Din zona Instanța mea din meniul Cont , faceți clic pe Începere construire . |
3 |
În instanța de dezvoltator, din câmpul Navigator de filtre din partea stângă sus a ferestrei, navigați la Pluginuri. |
4 |
Căutați pluginul Openframe care are titlul Openframe. Poate fi necesar să parcurgeți lista. |
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 modulului este finalizată, faceți clic pe Închidere și reîncărcare formular în caseta de dialog Activare plugin. |
8 |
Pentru a verifica activarea modulului, din câmpul Filtru navigator 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 System Update Set XML disponibil pe depozitul 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 Navigator de filtrare din partea stângă sus a ferestrei, navigați la Seturi de actualizări> |
3 |
Faceți clic pe Import set de actualizări de la XML link. |
4 |
Faceți clic pe Alegere fișier, selectați fișierul XML set de actualizări de sistem, apoi faceți clic pe Încărcare.
Setul de actualizări apare în lista Seturi de actualizări preluate și este în starea Încărcat .
|
5 |
Din lista Seturi de actualizări recuperate, faceți clic pe linkul Actualizare nume fișier set (link) pentru a deschide setul de actualizări. |
6 |
În partea din dreapta sus a ferestrei, faceți clic pe Previzualizare set actualizare pentru a verifica dacă există probleme în setul de actualizări. |
7 |
Faceți clic pe Închidere în caseta de dialog Actualizare previzualizare set după finalizarea examinării. |
8 |
Faceți clic pe Confirmare set de actualizări. |
9 |
Faceți clic pe Închidere în caseta de dialog Actualizare set comitere după finalizarea comiterii setului de actualizări. |
1 |
În câmpul Navigator filtre din partea stângă sus a ferestrei, tastați |
2 |
Pe pagina Proprietăți sistem, sortați proprietățile după data actualizării. Asigurați-vă că puteți vedea următoarele proprietăți Webex Centrului de contact: |
3 |
Faceți clic pe agentdesktop_url pentru a deschide pagina System Property agentdesktop_url . |
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 de activități, editați proprietățile webexccactivitytable după cum este necesar. Pe pagina Proprietăți sistem, faceți clic pe webexccactivitytable. Modificați câmpul Valoare 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 dreapta câmpului URL , faceți clic pe butonul Blocare și adăugați |
5 |
(Opțional) Selectați grupurile de utilizatori / agenți pentru a atribui configurația. |
6 |
Faceţi clic pe Submit (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 particularizat ServiceNow Desktop Layout în Webex Contact Center Management Portal. Pentru mai multe informații, consultați Configurarea aspectului 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 Aspect desktop, dacă este necesar. |
3 |
Accesați Webex Contact Center Management Portal. |
4 |
Din bara de navigare Portal de management, selectați desktop. |
5 |
Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktop. |
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 desktopul Webex Contact Center în consola ServiceNow. |
8 |
Din câmpul Filtru navigator , navigați la spațiul de . |
Următoarele secțiuni descriu pașii pentru instalarea conectorului ServiceNow pentru instanțele de întreprindere licențiate.
1 |
conectați-vă la contul portalului pentru dezvoltatori ServiceNow și deschideți consola de administrare . |
2 |
Din zona Instanța mea din meniul Cont , faceți clic pe Începere construire . |
3 |
În instanța de dezvoltator, din câmpul Navigator de filtre din partea stângă sus a ferestrei, navigați la Pluginuri. |
4 |
Căutați pluginul Openframe care are titlul Openframe. Poate fi necesar să parcurgeți lista. |
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 modulului este finalizată, faceți clic pe Închidere și reîncărcare formular în caseta de dialog Activare plugin. |
8 |
Pentru a verifica activarea modulului, din câmpul Filtru navigator 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 de întreprindere pot instala aplicația Webex Contact Center direct din ServiceNow Store.
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 filtru din partea stângă sus a ferestrei, introduceți |
2 |
Pe pagina Proprietăți sistem, sortați proprietățile după data actualizării. Asigurați-vă că puteți vedea următoarele proprietăți Webex Centrului de contact: |
3 |
Faceți clic pe agentdesktop_url pentru a deschide pagina System Property agentdesktop_url . |
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 de activități, editați proprietățile tabelului x__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 dreapta câmpului URL , faceți clic pe butonul Blocare și adăugați |
5 |
(Opțional) Selectați grupurile de utilizatori / agenți pentru a atribui configurația. |
6 |
Faceţi clic pe Submit (Trimitere). URL-ul apare ca un link. |
7 |
Din câmpul Filtru navigator , navigați la spațiul de . |
8 |
(Opțional) În lista Grup de utilizatori, mutați grupurile de utilizatori care pot accesa desktopul Webex Contact Center de la Disponibil la Selectat . |
9 |
Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON particularizat ServiceNow Desktop Layout în Webex Contact Center Management Portal. Pentru mai multe informații, consultați Configurarea aspectului 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 Aspect desktop, dacă este necesar. |
3 |
Accesați Webex Contact Center Management Portal. |
4 |
Din bara de navigare Portal de management, selectați desktop. |
5 |
Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktop. |
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 desktopul Webex Contact Center în consola ServiceNow. |
8 |
Din câmpul Filtru navigator , navigați la spațiul de . |
1 |
Din câmpul Filtru navigator , navigați la Incidente> Incident deschis. |
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 desktopul Webex Contact Center din consola ServiceNow. |
4 |
Din câmpul Filtru navigator , navigați la spațiul de . |
Agent Desktop în consola ServiceNow
Înainte de a efectua apeluri de apelare, asigurați-vă că efectuați următoarele:
-
Creați punctul de intrare pentru apelare și configurați o strategie pentru punctul de intrare pentru apelare.
-
Activați ANI de apelare pentru Profilul agentului.
-
Setați ANI apelare la o mapare de la numărul de apelare la punctul de intrare.
Pentru mai multe informații, consultați capitolul de asigurare a accesului din Cisco Webex Contact Center Ghid de configurare și administrare.
Din câmpul Filtru navigator , navigați la spațiul de .
Pentru informații despre modul de utilizare a desktopului , consultați fila Agent din ajutorul Webex Contact Center.
Prezentare generală
Acest articol prezintă mai multe moduri de a vă particulariza regulile de afaceri pentru conectorul ServiceNow CRM. Acesta detaliază modul în care puteți personaliza cazurile de utilizare pe baza regulilor de afaceri specifice ServiceNow.
Clientul trebuie să gestioneze singur aceste cazuri de utilizare pe ServiceNow. Configurația este specifică ServiceNow și nu Webex software-ul sau expertiza Contact Center.
Aceasta este o documentație de referință pentru a ajuta la modificarea regulilor de afaceri. Dezvoltatorii ServiceNow vor crea și gestiona regulile de afaceri și vor oferi asistență.
Cisco furnizează numai exemple de documentație.
Următoarele secțiuni oferă detalii despre configurarea, activarea și gestionarea widgetului Acțiuni pentru instanțele dezvoltatorilor și întreprinderilor.
Confirmarea setului de actualizare pentru widgetul Acțiuni
Pentru instanțele de întreprindere licențiate, 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 System Update Set XML disponibil pe depozitul 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 confirma setul de actualizare pentru widgetul Acțiuni, consultați pașii 2-9 din Confirmarea setului de actualizări.
Widget Activare acțiuni
Utilizați proprietatea isWidgetDisplayEnabled pentru a activa widgetul Acțiuni. Nu trebuie să modificați valoarea acestei proprietăți în secțiunea headless a aspectului desktop personalizat. Proprietatea este întotdeauna setată la false în secțiunea headless a aspectului desktop particularizat. Ar trebui să actualizați valoarea proprietății numai în secțiunea panou a aspectului desktop personalizat.
După ce activați widgetul Acțiuni în aspectul desktop particularizat, puteți efectua următoarele acțiuni:
- Gestionare înregistrări activitate — Faceți clic pe Vizualizare/editare înregistrare activitate pentru a vizualiza lista înregistrărilor de activitate asociate apelantului.
- Asociere obiecte CRM — Faceți clic pe Asociere la înregistrările de activitate pentru a adăuga obiecte CRM, cum ar fi tipul apelului (de intrare sau de ieșire), obiectul de apel, notele de apel etc. la înregistrarea activității.
- Gestionați incidentele - Faceți clic pe Creare incident. Se creează un incident nou cu detaliile apelantului prepopulate. Puteți face actualizările necesare ale incidentului. Puteți alege să modificați tipul de înregistrare de la incident la caz, modul HR și așa mai departe în funcție de cerințele dvs. Pentru a modifica tipul de înregistrare, modificați valoarea proprietății typeOfRecord în configurația widgetului Acțiuni. De exemplu:
{ "comp": "md-tab-panel", "atribute": { "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" } } ] }
- Adăugați note de apel în direct - Puteți să capturați informații suplimentare despre apel în zona de text și să încheiați apelul. Puteți vedea aceste note adăugate ca note de apel în înregistrarea activității.
Schimbare de cod pe ServiceNow
Scriptul include modificări-
Accesați navigatorul de filtre și căutați
Scriptul include
.Selectați scriptul include sub UI sistem.
-
Filtrați numele și căutați
propUtils
. -
Schimbați metoda
UserGetSysId
în 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= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); returnare sysid; },
Un nou exemplu de cod pentru incident:
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='telefon'; inc.short_description='apel primit de la '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = noul GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; returnează JSON.stringify(sysidlist); },
-
Accesați navigatorul de filtre și căutați
pagina
UI.Selectați pagini UI sub UI sistem.
-
Filtrați numele și căutați
AgentDesktop
. -
Modificați pictograma
Ecran pop
în scriptul clientului.Funcția curentă:
funcția screen pop 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('valoare', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entitate: 'interacțiune', interogare: 'sys_id='+sysid });
Exemplu de cod pentru incident:
funcția screen pop 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', 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 nou incident deschis cu acest contact, aplicația deschide incidentul în desfășurare
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 precompletate
Prezentare generală
Acest caz de utilizare detaliază procesul de adăugare a unei coloane suplimentare la tabelul ServiceNow - webexcc_imp_activity și crearea sn_openframe_phone_log la instalarea conectorului Webex CC for ServiceNow CRM.
În mod implicit, tabelul conține anumite câmpuri și valori predefinite ale sistemului.
Puteți crea mai multe variabile specifice afacerii (variabile CAD) în interiorul proiectantului de flux WebexCC și puteți adăuga variabilele CAD în jurnalul de activități post-apel ServiceNow, precum și să persistați acest lucru în datele tabelului de activitate după apel.
Aceasta este doar o documentație de referință - și arată cum se face acest lucru pentru un exemplu de variabilă CAD numită Nume client, care stochează numele clientului în interiorul IVR și îl postează la ServiceNow.
Este de așteptat ca dezvoltatorii ServiceNow partener + client să configureze și să gestioneze această configurație, deoarece este o particularizare a conectorului existent.
Cisco oferă doar tehnici de particularizare și extindere a conectorului.
Începând cu acest articol, echipa Cisco a validat suportul pentru adăugarea variabilei CAD în jurnalul de activități și în tabelul de activități, utilizând tehnica descrisă mai jos:
Adăugați o coloană la activitatea IMP WebexCC
-
Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.
-
Accesați navigatorul de filtre și căutați studio.
Select.
Webex Contact Center
sau
-
Selectați pictograma
Activitatea WebexCC IMP
masă -
Adăugați o coloană nouă, de exemplu,
Nume client
Adăugare coloană la jurnalul telefonului
-
Editați tabelul jurnal telefon.
-
Adăugați o coloană nouă, de exemplu,
Nume client
.
Harta de transformare a activității WebexCC
Adăugați o coloană nouă, de exemplu, Nume client
Maparea câmpurilor.
Personalizarea coloanelor din listă
După cum recomandă Service Now, modificați acțiunea Alegere din creare în ignorare.
Configurarea listei de jurnale telefon
Mergi la Script Include
Adăugați o singură linie webexcc.u_customername=actInfo.CustomerName
Pentru a propUtils.
Exemplu de script
Consultați linia: webexcc.u_customername=actInfo.CustomerName; cu un comentariu de susținere.
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__webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x__webexcc.screenpop_url'); returnează 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;//returnare user.sys_id; altfel // returnare nulă; var grInt = nou GlideRecord('interacțiune'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); returnarea sysid; }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x__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; Această linie este adăugată - pentru a o captura în Jurnalul de activități webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Activități privind înregistrarea incidentelor; var actInfoString =this.getParameter('actInfo'); var suser = nou GlideRecordSecure("sys_user"); suser.addQuery("telefon", 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(); } } returnarea sys_id; }, tip: 'propUtils' });
Crearea unei variabile CAD în Designerul de flux
Adăugarea variabilei CAD la Aspect desktop
Exemplu
"CadName1: SnowField1, CadName2: SnowField2" CadName1 este CustomerName SnowField1 este, de asemenea, utilizat ca CustomerName care face parte din eșantionul scirpt prezentat mai sus "actInfo.CustomerName".
Capturi de ecran demonstrative
Vizualizați variabila CAD nou adăugată în tabelul Activitate WebexCC.
Crearea variabilei CAD pentru Designerul de flux
Urgența incidentuluiImpactul incidentului
Actualizare script Service Now
Actualizările scriptului includ:
-
Accesați navigatorul de filtre și căutați
script include
Selectați opțiunea Script Includes (Script Includes ) de sub System UI.
-
Filtrați numele cu
propUtils
. -
Schimbați metoda
UserGetSysId
în câmpul Script .Scenariul actual:
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= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); returnare sysid; },
Un nou exemplu de cod pentru incident:
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='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 = noul GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; returnează JSON.stringify(sysidlist);//sysid; },
-
Accesați navigatorul de filtre și căutați
pagini
UI.Selectați opțiunea Pagini UI din System UI.
-
Filtrați paginile UI cu Nume și căutați
agentdesktop
. -
Modificați pictograma
Ecran pop
în câmpul script.Funcția curentă:
funcția screen pop 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('valoare', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }
Exemplu de cod pentru incident:
funcția screen pop screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null &&; callSessionInfo.callAssociatedData.Impact != nedefinit) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != nedefinit) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('câmp', 'telefon'); gaout.addParam('valoare', 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', interogare: '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)); }
Dacă informațiile apelantului există în CRM și nu există niciun incident nou sau în desfășurare, atunci aplicația deschide un nou incident
Schimbați codul pe ServiceNow
Adăugați coloane noi la Activitatea WebexCC IMP
masă
Deschideți butonul Activitatea WebexCC IMPmasă Adăugați o coloană nouă - InteracțiuniNumăr Adăugați o coloană nouă - NumeIncident
Faceți clic pe Actualizare.
Adăugați coloane noi la Jurnal telefon
masă
Deschideți butonul Jurnal telefon
masă
Harta de transformare a activității WebexCC
Deschidere Transformați harta
Din navigatorul de filtre
Faceți clic pe WebexCC Activitatea TransformMap
Faceți clic pe Actualizare.
Modificările aduse scriptului includ
-
Accesați navigatorul de filtre și căutați "scriptul include".
Selectați scriptul include sub UI sistem.
-
Filtrați numele cu
propUtils
. -
Schimbați metoda
setWebexcctable
.Exemplu nou de cod pentru Incident:
setWebexcctable: funcție () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = nou 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=""; șterge actInfo['interaction_sys_id']; eliminarea actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != nedefinit){ 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='Actualizare stare la inchis."; 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.numecoadă; 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(); } întoarcere sys_id; },
Modificări ale metodei în paginile UI
-
Accesați navigatorul de filtre și căutați
Pagini UI
Selectați opțiunea Pagini UI sub UI sistem.
-
Filtrați paginile UI cu Nume și căutați agentdesktop
.
-
Modificați pictograma
nowActivities și screenpop
Funcție în script.Funcția curentă:
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); }
Exemplu de cod pentru incident:
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); } funcția 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('valoare', 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 particularizări se aplică versiunilor 1.0.5 și anterioare. Pentru particularizările pentru versiunile mai noi 1.0.7 și ulterioare, urmați pașii de mai sus.
Personalizare # 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 în conectorul WebexCC CRM din ServiceNow, creați o nouă înregistrare a incidentelor.
Căutarea regulilor comerciale în navigatorul de filtre
Faceți clic pe Nou.
Exemplu de cod pentru referință:
funcția 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", nume); } dacă (userID == null &&; phone != null && phone != '') { userID = UserGetSysId ("telefon", 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; } answer = url; URL de retur; } (funcția }) UserGetSysId(câmp, valoare) { var user = new GlideRecord("sys_user"); user.addQuery(câmp, valoare); user.query(); dacă (user.next()) returnează user.sys_id; altfel returnează null; }
Exemplu de configurare a regulii de afaceri
Activare apelabil Client
Procesarea integrării telefoniei computerizate (CTI) pentru incident este marcată ca adevărată.
Actualizați adresa URL a ecranului pop-up cu regula de CTI personalizată " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
Se invocă sysparm_cti_rule=nume, unde "nume " este numele unei funcții CTI Procesare , mai degrabă decât utilizarea scriptului implicit.
Definiți funcția într-o intrare de sys_script marcată client apelabil.
Dacă trebuie să inserați, să actualizați sau să ștergeți orice GlideRecords din funcție, apelați o funcție apelabilă separată nonclient pentru a efectua actualizările.
Pentru ca un script să poată fi apelat de client, trebuie să bifați caseta de selectare apelabil client din formularul care se afișează la afișarea intrării de sys_script.
Caseta de selectare apelabil prin client nu se afișează în mod implicit. Pentru vizualizare, trebuie să modificați câmpurile care se afișează în formular utilizând pictograma roată și mecanismul cupei.
Personalizare # 2 - Adăugați variabila CAD într Webex tabel de activități 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 conectorului CRM Webex CC for ServiceNow.
În mod implicit, tabelul conține câmpuri și valori predefinite ale sistemului.
Puteți crea mai multe variabile specifice afacerii (variabile CAD) în cadrul proiectantului de flux WebexCC și puteți adăuga acele variabile CAD în jurnalul de activități post-apel ServiceNowși puteți persista acest lucru în datele tabelului de activități după apel.
-
Aceasta este doar 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 interiorul IVR și postează acest lucru la ServiceNow.
-
Dezvoltatorii ServiceNow partener+client vor configura și gestiona această configurație, deoarece este o particularizare a conectorului existent.
-
Cisco va furniza doar tehnicile de particularizare și extindere a conectorului.
-
Începând cu acest articol, echipa Cisco a validat suportul pentru adăugarea variabilei CAD în jurnalul de activități și în tabelul de activități, utilizând tehnica descrisă mai jos.
Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.
Accesați centrul de
Selectați tabelul Activitate WebexCC.
De exemplu, NumeClient.
Selectați Aspect listă pentru activitatea WebexCC.
Acest pas nu este necesar dacă utilizați Update Set XML - Este necesară o singură linie pentru a fi adăugată "webexcc.u_customername=actInfo.CustomerName" la propUtils.
Exemplu de script
Consultați linia cu:webexcc.u_customername=actInfo.CustomerName; cu un comentariu de susținere.
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__webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x__webexcc.screenpop_url'); returnează JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x__ 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; // Această linie este adăugată - pentru a o captura în jurnalul de activități webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Activități privind înregistrarea incidentelor; 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(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } returnarea sys_id; }, tip: 'propUtils2' });
Editați pagina UI cu un nume nou de scriptCrearea unei variabile CAD în Designerul de flux
Adăugarea variabilei CAD la Aspect desktop
Capturi de ecran demonstrative
Vizualizați variabila CAD nou adăugată în tabelul Activitate WebexCC.