Integrarea Centrului de contact Webex cu ServiceNow (versiunea 1 — Legacy)
Cerințe preliminare
Dimensiunea minimă acceptată pentru interfața softphone este de 500px. Orice valoare mai mică de 500px poate duce la probleme de afișare sau funcționalitate.
Înainte de a integra Centrul de contact Webex cu consola ServiceNow CRM, asigurați-vă că aveți următoarele:
-
Acces la Centrul de contact Webex.
-
Acces de administrator la Control Hub la https://admin.webex.com și la Centrul Management Portal de contact Webex. Adresele URL pentru Management Portal acestea sunt specifice regiunii dvs.
-
Un agent cu acces la Desktop. Adresa URL pentru desktop este specifică regiunii dvs.
-
Acces agent 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 modul de definire a listei permise, consultați articolul Setări de securitate pentru Centrul de contact Webex.
-
-
Un cont de 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 Înscrieți-vă și începeți construirea.
-
Accesați următoarele fișiere la https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
Setul de actualizare ServiceNow (XML)
-
Aspectul desktopului Centrului de contact ServiceNow (JSON)
-
- Edițiile ServiceNow pe care Webex Contact Center le acceptă sunt Vancouver, Utah, Tokya, Washington și Xanadu. Pentru mai multe informații, consultați Integrarea Centrului de contact Webex 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 de instanțe pentru dezvoltatori.
- Dacă dețineți o instanță cu licență de întreprindere, urmați instrucțiunile pentru instanțele cu licență de întreprindere.
Nu recomandăm amestecarea aplicației licențiate de întreprindere cu instanțe sandbox pentru dezvoltatori.
Canalele digitale, cum ar fi chat-ul și e-mailul, nu sunt acceptate cu conectorii CRM. Acest lucru se aplică tuturor integrărilor CRM care utilizează acești conectori. Vă rugăm să planificați fluxurile de lucru pentru implementarea și implicarea clienților în consecință.
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 C ont, faceți clic pe Începeți construirea.
|
| 3 |
În instanța dvs. de dezvoltator, din câmpul Navigator filtru din stânga sus a ferestrei, navigați la Plugin-uri.
|
| 4 |
Căutați pluginul Openframe care are titlul Open frame. Este posibil să fie nevoie să parcurgeți lista.
|
| 5 |
Faceți clic pe Instal are 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ărcați formul arul în caseta de dialog Activare plugin.
|
| 8 |
Pentru a verifica activarea pluginului, din câmp ul Navigator filtru din stânga sus a ferestrei, navigați la OpenFrame. |
| 9 |
Faceți clic pe Configurații și asigurați-vă că pluginul OpenFrame apare în lista Configurări OpenFrame.
|
| 1 |
Nume fișier: Web Excc-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 it.
|
| 3 |
Faceți clic pe link ul Import set de actualizare din XML.
|
| 4 |
Faceți clic pe Alegeți fișierul, selectați fișierul XML Set de actualizare sistem, apoi faceți clic pe Încăr care.
Setul de actualizare apare în lista Seturi de actualizare pre luate și se află în starea Încărcat.
|
| 5 |
Din lista Seturi de actualizări preluate, faceți clic pe numele fișierului set de actualizare (link) pentru a deschide Setul de actualizări.
|
| 6 |
În partea dreaptă sus a ferestrei, faceți clic pe Previzualizare set de actualizare pentru a verifica setul de actualizare pentru probleme.
|
| 7 |
Faceți clic pe În chidere în caseta de dialog Actualizare set de previzualizare după finalizarea previzualizării.
|
| 8 |
Faceți clic pe Commiteți setul de actualizare.
|
| 9 |
Faceţi clic pe În chidere în caseta de dialog Update Set Commit după finalizarea validării setului de actualiz ări.
|
| 1 |
În câmpul Navigator filtru din partea stângă sus a ferestrei, tasta
|
| 2 |
În pagina Proprietăți sistem, sortați proprietățile după data actualizată. Asigurați-vă că puteți vedea următoarele proprietăți ale Centrului de contact Webex:
|
| 3 |
Faceți clic agentdesktop_urlpentru a deschide agentdesktop_url pagina Proprietate sistem. |
| 4 |
În câmpul Valo are, introduceți adresa URL pentru desktopul Centrului de contact Webex în funcție de regiunea de operare.
|
| 5 |
Faceți clic pe Actu alizare pentru a salva modificările. |
| 6 |
(Opțional) Pentru a schimba numele tabelului Activitate, editați proprietățile webexccactivit ytable după cum este necesar. În pagina Proprietăți sistem, faceți clic pe webex ccactivitytable. Modificați câmpul Valo are după cum este necesar.
|
| 7 |
(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:
|
| 1 |
Din câmpul Navigator de filtr are, navigați la .
|
| 2 |
Faceți clic pe Nou.
|
| 3 |
Introduceţi următoarele proprietăţi pentru adresa URL:
|
| 4 |
În dreapta câmpului URL, faceți clic pe butonul B locare și adăugați
|
| 5 |
(Opțional) Selectați Grupul (grupurile) Utilizator/ Agent (e) pentru a atribui configurația.
|
| 6 |
Faceți clic pe Trimit eți. Adresa URL apare ca un link.
|
| 7 |
Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON personalizat ServiceNow Layout Desktop în Centrul de contact Webex. Management Portal Pentru mai multe informații, consultați Configurarea aspectului desktop ServiceNow în Centrul de contact Webex. |
| 1 |
|
| 2 |
Actualizați proprietățile din fișierul Aspect desktop, dacă este necesar. |
| 3 |
Accesați Centrul Management Portal de contact Webex. |
| 4 |
Din bara de Management Portal navigare, selectaţi A
|
| 5 |
Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktop. |
| 6 |
Încărcați fișierul JSON Layout Desktop ServiceNow. |
| 7 |
Faceți clic pe Salvare pentru a salva configurația. Acum puteți porni desktopul Centrului de contact Webex în consola ServiceNow. |
| 8 |
Din câmpul Navigator filtru, 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 C ont, faceți clic pe Începeți construirea.
|
| 3 |
În instanța dvs. de dezvoltator, din câmpul Navigator filtru din stânga sus a ferestrei, navigați la Plugin-uri.
|
| 4 |
Căutați pluginul Openframe care are titlul Open frame. Este posibil să fie nevoie să parcurgeți lista.
|
| 5 |
Faceți clic pe Instal are 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ărcați formul arul în caseta de dialog Activare plugin.
|
| 8 |
Pentru a verifica activarea pluginului, din câmp ul Navigator filtru din stânga sus a ferestrei, navigați la OpenFrame. |
| 9 |
Faceți clic pe Configurații și asigurați-vă că pluginul OpenFrame apare în lista Configurări OpenFrame.
|
Instanțele care au licențe de întreprindere pot instala aplicația Webex Contact Center direct din Magazinul ServiceNow.
|
|
| 1 |
În câmpul Navigator filtru din partea stângă sus a ferestrei, introduceți
|
| 2 |
În pagina Proprietăți sistem, sortați proprietățile după data actualizată. Asigurați-vă că puteți vedea următoarele proprietăți ale Centrului de contact Webex:
|
| 3 |
Faceți clic agentdesktop_urlpentru a deschide agentdesktop_url pagina Proprietate sistem. |
| 4 |
În câmpul Valo are, introduceți adresa URL pentru desktopul Centrului de contact Webex în funcție de regiunea de operare.
|
| 5 |
Faceți clic pe Actu alizare pentru a salva modificările. |
| 6 |
(Opţional) Pentru a modifica numele tabelului Activitate, editaţi proprietăţile x_caci_webexcc.webexccactiv itytable după cum este necesar.
|
| 7 |
(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:
|
| 1 |
Din câmpul Navigator de filtr are, navigați la .
|
| 2 |
Faceți clic pe Nou.
|
| 3 |
Introduceţi următoarele proprietăţi pentru adresa URL:
|
| 4 |
În dreapta câmpului URL, faceți clic pe butonul B locare și adăugați
|
| 5 |
(Opțional) Selectați Grupul (grupurile) Utilizator/ Agent (e) pentru a atribui configurația.
|
| 6 |
Faceți clic pe Trimit eți. Adresa URL apare ca un link.
|
| 7 |
Din câmpul Navigator filtru, navigați la Spațiul de .
|
| 8 |
(Opțional) În lista Grup de utilizatori, mutați grupurile de utilizatori care pot accesa desktopul Centrului de contact Webex de la Dis poni bil la Selectat. |
| 9 |
Înainte de a încerca să utilizați telefonul OpenFrame, asigurați-vă că încărcați fișierul JSON personalizat ServiceNow Layout Desktop în Centrul de contact Webex. Management Portal Pentru mai multe informații, consultați Configurarea aspectului desktop ServiceNow în Centrul de contact Webex. |
| 1 |
|
| 2 |
Actualizați proprietățile din fișierul Aspect desktop, dacă este necesar. |
| 3 |
Accesați Centrul Management Portal de contact Webex. |
| 4 |
Din bara de Management Portal navigare, selectaţi A
|
| 5 |
Faceți clic pe Aspect nou și introduceți detaliile pentru aspectul desktop. |
| 6 |
Încărcați fișierul JSON Layout Desktop ServiceNow. |
| 7 |
Faceți clic pe Salvare pentru a salva configurația. Acum puteți porni desktopul Centrului de contact Webex în consola ServiceNow. |
| 8 |
Din câmpul Navigator filtru, navigați la Spațiul de .
|
| 1 |
Din câmpul navigator Filtru, navigați la Incidente > Deschideți incidentul. |
| 2 |
Faceți clic dreapta pe câmpul apelant și faceți clic pe Configurare dic ționar.
|
| 3 |
Adăugați atribute
Acum puteți începe să utilizați desktopul Centrului de contact Webex în consola ServiceNow. |
| 4 |
Din câmpul Navigator filtru, navigați la Spațiul de .
|
- Acceptăm conectarea Agent Desktop utilizând numai conectorii WebRTC pentru Salesforce (SFDC) și Microsoft Dynamics (MS Dynamics).
- În prezent, această caracteristică este aplicabilă numai agenților.
Agent Desktopîn consola ServiceNow
Înainte de a efectua apeluri exterioare, asiguraţi-vă că faceţi următoarele:
-
Creați punctul de intrare extern și configurați o strategie de punct de intrare externă.
-
Activați ANI outdial pentru profilul agentului.
-
Setați ANI externă la o mapare număr de apelare la punct de intrare.
Pentru mai multe informații, consultați capitolul A provizionare din Ghi dul de Cisco Webex Contact Center configurare și administrare.
Din câmpul Navigator filtru, navigați la Spațiul de .
Pentru informații despre cum să utilizați Desktop, consultați fila Agent din ajutorul Centrului de contact Webex.
Prezentare generală
Acest articol acoperă mai multe moduri de a personaliza 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 software-ului sau expertizei Webex 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ă doar documentație de probă.
Următoarele secțiuni oferă detalii despre cum să configurați, să activați și să gestionați widgetul Acțiuni pentru instanțele dezvoltatorului și întreprinderii.
Realizarea 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 dezvoltatorului, descărcați cel mai recent fișier XML System Update Set disponibil pe repo-ul github la 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 setul de actualizare pentru widgetul Acțiuni, consultați pașii 2 până la 9 din Commit erea setului de actualizări.
Activați widgetul 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 desktop personalizat. Proprietatea este întotdeauna setată la false în secțiunea fără cap a aspectului desktop personalizat. 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 personalizat, puteți efectua următoarele acțiuni:
- Gestionarea înregistrărilor de activitate — Faceţi clic pe Vizualizare/Editare înregistrare de activitate pentru a vizualiza lista înregistrărilor de activitate asociate apelantului.
- Asociați obiecte CRM — faceți clic pe Asociați la înregistrări 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 în înregistrarea de activitate.
- Gestionați incidentele — faceți clic pe Creare incident. Se creează un nou incident cu detaliile apelantului prepopulate. Puteți face actualizările necesare incidentului. Puteți alege să modificați tipul înregistrării 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", "attributes": { "slot": "panel", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions !", "maximizeAreaName": "app-maximize-area" } } ] } - 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.
Modificarea codului pe ServiceNow
Scriptul include modificări-
Accesați navigatorul de filtrare și căutați
scripturi incluse
.Selectați Script Inclu de sub UI de 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= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },Noul cod de probă 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='phone'; inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
Accesați navigatorul de filtrare și căutați
UI page.Selec tați pagini UI sub UI de sistem.
-
Filtrați numele și căutați
agentdesktop
. -
Schimbați funcția
screenpop
în scriptul Client.Funcția curentă:
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });Exemplu de cod pentru incident:
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // For Incident-related change var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Dacă informațiile apelantului există în CRM și există deja un nou incident 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 precompletate
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 conectorului Webex CC pentru ServiceNow CRM.
În mod implicit, tabelul conține anumite câmpuri și valori de sistem ieșite din cutie.
Puteți crea mai multe variabile specifice afacerii (variabile CAD) în interiorul designerului de flux WebExCC și puteți adăuga variabilele CAD în jurnalul de activitate după apeluri ServiceNow, precum și să le persistați în datele tabelului de activități post-apel.
Aceasta este doar o documentație de referință - și arată cum se face acest lucru pentru o variabilă CAD de probă numită Nume client care stochează numele clientului în IVR și postează acest lucru la ServiceNow.
Este de așteptat ca dezvoltatorii partenerului+customer serviceNow să configureze și să gestioneze această configurație, deoarece este o personalizare a conectorului existent.
Cisco oferă doar tehnicile privind personalizarea și extinderea conectorului.
Începând cu acest articol, echipa Cisco a validat suportul pentru adăugarea variabilei CAD în Jurnalul de activitate și tabelul de activități folosind tehnica descrisă mai jos:
Adăugați coloana la activitatea WebExCC IMP
-
Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.

-
Accesați navigatorul de filtrare și căutați studio.

Selectați
Centrul de contact Webex

sau



-
Selectați tabelul Activ
itate WebExCC IMP

-
Adăugați o coloană nouă, de exemplu,
CustomerName


Adăugați coloana în jurnalul telefonului
-
Editați tabelul jurnalului de telefon.


-
Adăugați o coloană nouă, de exemplu,
CustomerName
.

Harta de transformare a activității WebExCC

Adăugați o coloană nouă, de exemplu, maparea câm pului CustomerName
.


Personalizați coloanele listei

După cum recomandă Service Now, schimbați acțiunea Opțiune de la creare la ignorare.


Configurați lista jurnalelor de telefon

Mergi la Script Include
Adăugați o singură linie webexcc. u_customername=ActInfo.CustomerName la PropUtils
.



Vezi linia: webexcc. u_customername=ActInfo.Customer Name; 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_caci_webexcc.agentdesktop_url');
// webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
return JSON.stringify(webexccprop);
},
UserGetSysId : function () {
var opened_for;
var user = new GlideRecord("sys_user");
user.addQuery(this.getParameter('field'),this.getParameter('value'));
user.query();
if (user.next())
opened_for=user.sys_id;//return user.sys_id;
// else
// return null;
var grInt = new GlideRecord('interaction');
grInt.initialize();
grInt.assigned_to= gs.getUserID();
grInt.type= 'phone';
grInt.opened_for= opened_for;
var sysid=grInt.insert();
return sysid;
},
setWebexcctable : function () {
var sys_id=0;
var actInfo = JSON.parse(this.getParameter('actInfo'));
var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
webexcc.addQuery("callobject", actInfo.CallObject);
webexcc.query();
if(!webexcc.next()) {
webexcc.ani = actInfo.ani;
webexcc.dnis =actInfo.dnis;
webexcc.queuename =actInfo.queuename;
webexcc.wrapuptime =actInfo.wrapuptime;
webexcc.callduration =actInfo.CallDurationInSeconds;
webexcc.ringingtime =actInfo.ringingtime;
webexcc.activitydate =actInfo.ActivityDate;
webexcc.callobject =actInfo.CallObject;
webexcc.calltype =actInfo.CallType;
webexcc.calldisposition=actInfo.CallDisposition;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
//Activities on Incident record;
var actInfoString =this.getParameter('actInfo');
var suser = new GlideRecordSecure("sys_user");
suser.addQuery("phone", this.getParameter('ani'));
suser.query();
if(suser.next()) {
var inc = new GlideRecordSecure('incident');
inc.addQuery('caller_id', suser.sys_id);
inc.orderByDesc('sys_created_on');
inc.query();
if (inc.next()) {
var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2);
inc.comments =jsonPretty;
inc.update();
}
}
}
return sys_id;
},
type: 'propUtils'
});
Crearea unei variabile CAD în Flow designer

Adăugarea variabilei CAD la Layout Desktop
Exemplu
"CadName1:SnowField1,CadName2:SnowField2"
CadName1 is CustomerName
SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Capturi de ecran demo
Vizualizați variabila CAD nou adăugată în tabelul Activitate WebExCC.



Crearea variabilei CAD pentru Flow Designer
Urgența incidentului
Impactul incidentului

Actualizare script Service Now
Actualizări ale scriptului include
-
Accesați navigatorul de filtrare și căutați
script includesSelectați opțiunea Script Inclu de sub UI de sistem.

-
Filtrați numele cu
propUtils.
-
Modificați metoda
UserGetSysID în câmp
ul Script.
Scriptul 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= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },Noul cod de probă 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='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },
-
Accesați navigatorul de filtrare și căutați
UI pages.Selectați opțiunea UI Pages sub UI de sistem.

-
Filtrați paginile UI cu Nume și căutați
agentdesktop.
-
Schimbați funcția
screenpop
în câmpul script.
Funcția curentă:
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }Exemplu de cod pentru incident:
// screen pop function screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Dacă informațiile apelantului există în CRM și nu există niciun incident nou sau în curs de desfășurare, aplicația deschide un nou incident


Schimbați codul de pe ServiceNow
Adăugarea de coloane noi în tabelul Activ itate WebExCC IMP
Deschiderea tabel ului Activitate WebExCC IMP





Faceți clic pe Actualizare.


Adăugarea de coloane noi în tabelul Jurnal de telefon
Deschiderea tabel ului Jurnal de telefon





Harta de transformare a activității WebExCC
Deschiderea hărții de transform
are din navigatorul de filtrare


Faceți clic pe WebExCC Activity TransformMap




Faceți clic pe Actu alizare.

Modificări ale scriptului include
-
Accesați navigatorul de filtrare și căutați „script include”.
Selectați Script Inclu de sub UI de sistem.

-
Filtrați numele cu
PropUtils.

-
Schimbați metoda
SetWeb
ExccTable.
Noul cod de probă pentru incident:
setWebexcctable : function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; delete actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes='Update State to closed.'; inte.update(); } } if( incsysid!= null && incsysid != undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } return sys_id; },
Modificări ale metodei pe paginile UI
-
Accesați navigatorul de filtrare și căutați
pagini UI
Selectați opțiunea UI Pages sub UI de sistem.

-
Filtrați paginile UI cu Nume și căutați
agentdesktop.
-
Schimbați funcția
NowActivities și screenpop
din 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); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Rezultate după actualizare

Următoarele personalizări se aplică versiunilor 1.0.5 și mai jos. Pentru personalizările pentru versiunile mai noi 1.0.7 și versiuni 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 de incident pentru fiecare apelPentru fiecare apel nou în conectorul WebExCC CRM din ServiceNow, creați o înregistrare nouă de incidente.
Căutarea regulilor de afaceri în navigatorul de filtrare

Faceți clic pe Nou.

Cod de probă pentru referință:
function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null && name != '') { userID = UserGetSysId("name", name); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; return url; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }Exemplu de configurare a regulii de afaceri

Activați Clientul apelabil

Procesarea integrării telefoniei computerizate (CTI) pentru incident este marcată ca True.

Actualizați adresa URL screenpop cu regula CTI personalizată „cti.do? sysparm_cti_rule=Create sysparm_caller_phone Incident& =”

sysparm_cti_rule=name unde „name” este numele unei funcții trebuie invocat pentru procesarea CTI, mai degrabă decât pentru utilizarea scriptului implicit.
Definiți funcția într-o sys_scriptintrare marcată client callable.
Dacă trebuie să inserați, să actualizați sau să ștergeți orice GlidereCord (e) în funcție, apelați o funcție separată care nu poate fi apelată client pentru a efectua actualizările.
Pentru a face un script apelabil pentru client, trebuie să bifați caseta de selectare client-callable din formularul care se afișează la afișarea intrării. sys_script
Caseta de selectare care poate fi apelată de client nu apare în mod implicit. Pentru a vizualiza, trebuie să modificați câmpurile care apar pe formular folosind pictograma roată și mecanismul găleată slush.
Personalizare # 2 - Adăugați variabila CAD în tabelul de activitate 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 conectorului Webex CC pentru ServiceNow CRM.
În mod implicit, tabelul conține câmpuri și valori de sistem ieșite din cutie.
Puteți crea mai multe variabile specifice afacerii (variabile CAD) în proiectantul de flux WebExCC și să adăugați acele variabile CAD în jurnalul de activitate după apeluri ServiceNow și să le persistați în datele tabelului de activități post- apel.
-
Aceasta este doar documentația de referință - și arată cum se face acest lucru pentru o variabilă CAD de probă numită Nume client care stochează numele clientului în IVR și îl postează pe ServiceNow.
-
Dezvoltatorii partenerului+customer serviceNow vor configura și gestiona această configurație, deoarece este o personalizare a conectorului existent.
-
Cisco va furniza doar tehnicile privind modul de personalizare și extindere a conectorului.
-
Începând cu acest articol, echipa Cisco a validat suportul pentru adăugarea variabilei CAD în Jurnalul de activitate și tabelul de activități folosind tehnica descrisă mai jos.
Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.

Accesați .



Selectați Tab elul de activitate WebExCC.

De exemplu, CustomerName.


Selectați Aspect listă pentru activitatea WebExCC.

Acest pas nu este necesar dacă utilizați setul de actualizare XML - Doar o linie este necesară pentru a fi adăugată "webexcc. u_customername=ActInfo.CustomerName "la PropUtils.



Exemplu de script
Vezi linia cu: webexcc. u_customername=ActInfo.Customer Name; 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_caci_webexcc.agentdesktop_url');
webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
return JSON.stringify(webexccprop);
},
setWebexcctable : function () {
var sys_id=0;
var actInfo = JSON.parse(this.getParameter('actInfo'));
var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
webexcc.addQuery("callobject", actInfo.CallObject);
webexcc.query();
if(!webexcc.next()) {
webexcc.ani = actInfo.ani;
webexcc.dnis =actInfo.dnis;
webexcc.queuename =actInfo.queuename;
webexcc.wrapuptime =actInfo.wrapuptime;
webexcc.callduration =actInfo.CallDurationInSeconds;
webexcc.ringingtime =actInfo.ringingtime;
webexcc.activitydate =actInfo.ActivityDate;
webexcc.callobject =actInfo.CallObject;
webexcc.calltype =actInfo.CallType;
webexcc.calldisposition=actInfo.CallDisposition;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
// Activities on Incident record;
var actInfoString =this.getParameter('actInfo');
var suser = new GlideRecordSecure("sys_user");
suser.addQuery("phone", this.getParameter('ani'));
suser.query();
if(suser.next()) {
var inc = new GlideRecordSecure('incident');
inc.addQuery('caller_id', suser.sys_id);
inc.orderByDesc('sys_created_on');
inc.query();
if (inc.next()) {
var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2);
inc.comments =jsonPretty;
inc.update();
}
}
}
return sys_id;
},
type: 'propUtils2'
});
Editați pagina UI cu un nou nume de script
Crearea unei variabile CAD în Flow designer
Adăugarea variabilei CAD la Layout Desktop
Capturi de ecran demo
Vizualizați variabila CAD nou adăugată în tabelul Activitate WebExCC.

Conectorul CRM funcționează pe baza versiunii widgetului specificată în aspectul desktop JSON. Este extrem de important să vă asigurați că versiunea widgetului din Layout Desktop este actualizată.
Administratorii sunt așteptați să se asigure că toate aspectele desktop pentru acest conector CRM utilizează această versiune widget. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.
- Ultima actualizare ServiceNow— ServiceNow_Desktop_0 .1.0_v5.0.3.json. Începând cu martie 2024, versiunea pachetului este 1.0.9
- Ultima actualizare XML — WebExcc-ServiceNow-Update-SetV7-1-ActionsWidget.xml, iunie 2024











































