Condiţii prealabile

Înainte de a integra Webex Contact Center cu consola ServiceNow CRM, asigurați-vă că aveți următoarele:


 

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> seturi de actualizări de sistem pentru a comite .

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 sys_properties.list și apăsați enter.

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. În câmpul Filtru navigator din partea stângă sus a ferestrei, navigați la Grupuri sub Securitate sistem.

  2. Creați un grup nou de utilizatori sau utilizați unul existent.

  3. Faceţi clic pe Editare.

  4. Căutați sn_openframe_user sub Colecție și mutați-l în grupul de utilizatori.

  5. Faceți clic pe Salvare.

  6. Adăugați utilizatorul ca membru al grupului.

1

Din câmpul Navigator filtru, navigați la OpenFrame > Configurations.

2

Faceţi clic pe Nou.

3

Introduceți următoarele proprietăți pentru URL:

  • Denumire: Webex Contact Center Desktop

  • Titlu: Webex Contact Center

  • Lățime: 550 (recomandat)

  • Înălțime: 600 (recomandat)

4

În dreapta câmpului URL , faceți clic pe butonul Blocare și adăugați agentdesktop.do ca adresă URL. (Efectuați acest pas pentru a indica configurația către pagina UI)

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 Asigurare acces> Aspect 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 Navigator filtru, navigați la Pagina de pornire Agent Workspace >Agent Workspace.

Faceți clic pe pictograma telefonului din stânga jos.

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.

1

În câmpul Navigator filtru din partea stângă sus a ferestrei, introduceți sys_properties.list.

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_caci_webexcc.webexccactivitytable , după cum este necesar.

  1. Pe pagina Proprietăți sistem, faceți clic pe x_caci_webexcc.webexccactivitytable.

  2. Modificați câmpul Valoare după cum este necesar.

7

(Opțional) Adăugați grupuri de utilizatori în următoarele moduri:

  1. În câmpul Filtru navigator din partea stângă sus a ferestrei, navigați la Grupuri sub Securitate sistem.

  2. Dați clic pe Editați și adăugați următoarele roluri:

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

Din câmpul Navigator filtru, navigați la OpenFrame > Configurations.

2

Faceţi clic pe Nou.

3

Introduceți următoarele proprietăți pentru URL:

  • Denumire: Webex Contact Center Desktop

  • Titlu: Webex Contact Center

  • Lățime: 550 (recomandat)

  • Înălțime: 600 (recomandat)

4

În dreapta câmpului URL , faceți clic pe butonul Blocare și adăugați x_caci_webexcc_agentdesktop.do ca adresă URL. (Efectuați acest pas pentru a indica configurația către pagina UI)

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 Navigator filtru, navigați la Pagina de pornire Agent Workspace >Agent Workspace.

Faceți clic pe pictograma din stânga jos a telefonului.

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 Asigurare acces> Aspect 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 Navigator filtru, navigați la Pagina de pornire Agent Workspace >Agent Workspace.

Faceți clic pe pictograma telefonului din stânga jos.

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ă "ref_contributions=show_phone,.

Acum puteți începe să utilizați desktopul Webex Contact Center din consola ServiceNow.

4

Din câmpul Navigator filtru, navigați la Pagina de pornire Agent Workspace >Agent Workspace.

Faceți clic pe pictograma din stânga jos a telefonului.

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 Navigator filtru, navigați la Pagina de pornire Agent Workspace >Agent Workspace.

Faceți clic pe pictograma din stânga jos a telefonului.

Pentru informații despre modul de utilizare a desktopului, consultați Ghidul Cisco Webex Contact Center Agent Desktop utilizare.

Partiționarea stocării de la terți

O posibilă problemă cu actualizarea recentă la Google Chrome și Edge 116 sau o versiune ulterioară vă poate perturba experiența de conectare la conectorii CRM din Webex Contact Center. Această problemă afectează conectarea desktop pe consola ServiceNow CRM.

Pentru a rezolva această problemă în browserul Google Chrome:

  1. Deschideți browserul Google Chrome și introduceți chrome://flags/#third-party-storage-partitioning în bara de adrese.

  2. Dezactivați semnalizatorul de partiționare experimentală a stocării terță parte.

  3. Închide și repornește Chrome.

  4. conectați-vă din nou la Desktop-ul din consola ServiceNow CRM.

Pentru a rezolva această problemă în browserul Edge:

  1. Deschideți browserul și introduceți edge://flags/#third-party-storage-partitioning în bara de adrese.

  2. Dezactivați semnalizatorul de partiționare experimentală a stocării terță parte.

  3. Salvați modificările și reporniți browserul.

  4. conectați-vă din nou la Desktop-ul din consola ServiceNow CRM.

Pentru a rezolva această problemă în browserul Firefox:

  1. Deschideți browserul și introduceți about:config în bara de adrese.

    Este posibil să apară o pagină de avertizare. Faceți clic pe Acceptați riscul și continuați pentru a accesa pagina about:config .

  2. Introduceți network.cookie.cookieBehavior în caseta Nume preferință căutare din partea de sus a paginii about:config pentru a găsi preferința.

  3. Faceți dublu clic pe preferință sau faceți clic pe pictograma Editare pentru a edita preferința.

  4. Modificați valoarea la 0.

  5. Salvați modificările și reporniți browserul.

  6. conectați-vă din nou la Desktop-ul din consola ServiceNow CRM.

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 widgetul Acțiuni conector ServiceNow, versiunea 1.9 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
  1. Accesați navigatorul de filtre și căutați Scriptul include.

    Selectați scriptul include sub UI sistem.

  2. Filtrați numele și căutați propUtils.

  3. 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); },

Modificarea metodei pe paginile UI
  1. Accesați navigatorul de filtre și căutați pagina UI.

    Selectați pagini UI sub UI sistem.

  2. Filtrați numele și căutați AgentDesktop.

  3. 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

  1. Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.

  2. Accesați navigatorul de filtre și căutați studio.

    Select. Webex Contact Center

    sau

  3. Selectați pictograma Activitatea WebexCC IMP Tabelul

  4. Adăugați o coloană nouă, de exemplu, Nume client

Adăugare coloană la jurnalul telefonului

  1. Editați tabelul jurnal telefon.

  2. 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_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_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_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; 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 incidentului

Impactul incidentului

Actualizare script Service Now

Actualizările scriptului includ:

  1. Accesați navigatorul de filtre și căutați script include

    Selectați opțiunea Script Includes (Script Includes ) de sub System UI.

  2. Filtrați numele cu propUtils.

  3. 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; },

O modificare a metodei pe paginile UI
  1. Accesați navigatorul de filtre și căutați pagini UI.

    Selectați opțiunea Pagini UI sub UI sistem.

  2. Filtrați paginile UI cu Nume și căutați agentdesktop.

  3. 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 Tabelul

Deschideți butonul Activitatea WebexCC IMP Tabelul

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 Tabelul

Deschideți butonul Jurnal telefon Tabelul

Adăugați o coloană nouă - InteracțiuniNumăr

Adăugați o coloană nouă - NumeIncident

Harta de transformare a activității WebexCC

Deschidere Transformați harta Din navigatorul de filtre

Faceți clic pe WebexCC Activitatea TransformMap

Adăugați nou - pentru Interaction Number Map

Adăugați nou - pentru harta numărului de incidente

Faceți clic pe Actualizare.

Modificările aduse scriptului includ

  1. Accesați navigatorul de filtre și căutați "scriptul include".

    Selectați scriptul include sub UI sistem.

  2. Filtrați numele cu propUtils.

  3. 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

  1. Accesați navigatorul de filtre și căutați Pagini UI

    Selectați opțiunea Pagini UI sub UI sistem.

  2. Filtrați paginile UI cu Nume și căutați agentdesktop .

  3. 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 apel

Pentru fiecare apel nou în conectorul WebexCC CRM din ServiceNow, creați o nouă înregistrare a incidentelor.

  1. Căutarea regulilor comerciale în navigatorul de filtre

  2. 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

  3. Activare apelabil Client

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

  4. Actualizați adresa URL a ecranului pop-up cu regula de CTI personalizată " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

Exemplu

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.

Referinţe

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.

Adăugați o coloană la activitatea WebexCC
  1. Editați tabelul în versiunea pentru dezvoltatori a ServiceNow.

  2. Accesați centrul de contact > Webex Studio .

  3. Selectați tabelul Activitate WebexCC.

  4. De exemplu, NumeClient.

  5. Selectați Aspect listă pentru activitatea WebexCC.

Crearea unui script nou Include

 

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_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_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_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; // 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 script

Crearea 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.