Förutsättningar

Innan du integrerar Webex Contact Center med ServiceNow CRM-konsolen, se till att du har följande:


 

Följ en av de två metoderna nedan:

För utvecklarinstanser rekommenderar vi att du följer stegen under guiden för utvecklarinstanser.

Om du äger en företagslicenserad instans, följ riktlinjerna för företagslicensierade instanser.

Vi rekommenderar inte att blanda den företagslicensierade appen med utvecklaresandlådeinstanser.

Följande avsnitt beskriver stegen för att installera ServiceNow-anslutningen för utvecklarinstanser.

1

Logga in på ditt ServiceNow-utvecklarportalkonto och öppna Administration konsolen.

2

Från området Min instansKonto menyn klickar du på Börja bygga.

3

På din utvecklarinstans, från Filternavigator fältet uppe till vänster i fönstret, navigera till Plugins.

4

Sök efter Openframe-plugin som har titeln Openframe. Du kan behöva bläddra igenom listan.

5

Klicka på Installera för att installera Openframe-plugin.

6

I dialogrutan Aktivera plugin klickar du på Aktivera.

7

När pluginaktiveringen är klar klickar du på Stäng & Ladda om formuläret i dialogrutan Pluginaktivering .

8

För att verifiera pluginaktiveringen, från Filternavigator fältet uppe till vänster i fönstret, navigera till OpenFrame.

9

Klicka på Konfigurationer och se till att OpenFrame-pluginet visas i listan OpenFrame-konfigurationer .

1

Ladda ner den senaste System Update Set XML-filen tillgänglig på github-repo på denna plats: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Filnamn: webexcc-servicenow-update-setV(X).xml

2

På din ServiceNow-instans, från Filternavigator fältet uppe till vänster i fönstret, navigera till System Update Sets > Uppdatera ställer in för att begå.

3

Klicka på Importera uppdateringsuppsättning från XML länken.

4

Klicka på Välj fil, välj filen System Update Set XML och klicka sedan på Ladda upp.

Uppdateringsuppsättningen visas i listan Hämtade uppdateringsuppsättningar och är i tillståndet Ladda .
5

Från listan Hämtade uppdateringsuppsättningar klickar du på Update Set File Name (länk) för att öppna Update Set.

6

Uppe till höger i fönstret klickar du på Förhandsgranska uppdateringsuppsättning för att kontrollera uppdateringsuppsättningen för problem.

7

Klicka på Stäng i dialogrutan Update Set Preview när förhandsgranskningen är klar.

8

Klicka på Bekräfta uppdateringsuppsättning.

9

Klicka på Stäng i dialogrutan Update Set Commit när bekräftelsen av Update Set är klar.

1

I fältet Filternavigator uppe till vänster i fönstret skriver du sys_properties.list och trycker på enter.

2

På sidan Systemegenskaper , sortera egenskaperna efter uppdateringsdatum. Se till att du kan se följande Webex kontaktcenteregenskaper:

3

Klicka på agentdesktop_url för att öppna sidan System Property agentdesktop_url .

4

I fältet Värde anger du URL:en för Webex Contact Center-skrivbordet enligt verksamhetsområdet.

5

Klicka på Uppdatera för att spara ändringarna.

6

(Valfritt) För att ändra aktivitetstabellens namn, redigera webexccactivitytable egenskaperna efter behov.

På sidan Systemegenskaper klickar du på webexccactivitytable.

Ändra Värde fältet efter behov.

7

(Valfritt) Lägg till användargrupper på följande sätt:

  1. I fältet Filternavigator uppe till vänster i fönstret, navigera till Grupper under Systemsäkerhet.

  2. Skapa en ny användargrupp eller använd en befintlig.

  3. Klicka på Redigera.

  4. Sök efter sn_openframe_user under Samling och flytta den till din användargrupp.

  5. Klicka på Spara.

  6. Lägg till användaren som gruppmedlem.

1

Från fältet Filternavigator navigerar du till OpenFrame > Konfigurationer.

2

Klicka på Ny.

3

Ange följande egenskaper för URL:en:

  • Namn: Webex Contact Center Desktop

  • Titel: Webex Kontaktcenter

  • Bredd: 550 (rekommenderas)

  • Höjd: 600 (rekommenderas)

4

Till höger om URL fältet, klicka på Lås knappen och lägg till agentdesktop.do som URL. (Gör det här steget för att peka konfigurationen till UI-sidan)

5

(Valfritt) Välj användar-/agentgrupper för att tilldela konfigurationen.

6

Klicka på Skicka. URL:en visas som en länk.

7

Innan du försöker använda OpenFrame-telefonen, se till att du laddar upp ServiceNows anpassade JSON-fil för skrivbordslayout till Webex Contact Center Management Portal. För mer information, se Konfigurera ServiceNow-skrivbordslayouten på Webex kontaktcenter.

1

Ladda ner skrivbordslayouten för ServiceNow från https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Uppdatera egenskaperna i skrivbordslayoutfilen om det behövs.

3

Gå till Webex Contact Center Management Portal.

4

Från Management Portal-navigeringsfältet väljer du Provisioning > Desktop Layout.

5

Klicka på Ny layout och ange detaljerna för skrivbordslayouten.

6

Ladda upp ServiceNow Desktop Layout JSON-filen.

7

Klicka på Spara för att spara konfigurationen.

Du kan nu starta Webex Contact Center-skrivbordet i ServiceNow-konsolen.

8

Från fältet Filternavigator , navigera till Agent Workspace > Agent Workspace Home.

Klicka på telefonikonen längst ner till vänster.

Följande avsnitt beskriver stegen för att installera ServiceNow-anslutningen för licensierade företagsinstanser.

1

Logga in på ditt ServiceNow-utvecklarportalkonto och öppna administration konsolen.

2

Från området Min instansKonto menyn klickar du på Börja bygga.

3

På din utvecklarinstans, från Filternavigator fältet uppe till vänster i fönstret, navigera till Plugins.

4

Sök efter Openframe-plugin som har titeln Openframe. Du kan behöva bläddra igenom listan.

5

Klicka på Installera för att installera Openframe-plugin.

6

I dialogrutan Aktivera plugin klickar du på Aktivera.

7

När pluginaktiveringen är klar klickar du på Stäng & Ladda om formuläret i dialogrutan Pluginaktivering .

8

För att verifiera pluginaktiveringen, från Filternavigator fältet uppe till vänster i fönstret, navigera till OpenFrame.

9

Klicka på Konfigurationer och se till att OpenFrame-pluginet visas i listan OpenFrame-konfigurationer .

1

I fältet Filternavigator uppe till vänster i fönstret anger du sys_properties.list.

2

På sidan Systemegenskaper sorterar du egenskaperna efter uppdateringsdatum. Se till att du kan se följande Webex kontaktcenteregenskaper:

3

Klicka på agentdesktop_url för att öppna sidan System Property agentdesktop_url .

4

I fältet Värde anger du URL:en för Webex Contact Center-skrivbordet enligt verksamhetsområdet.

5

Klicka på Uppdatera för att spara ändringarna.

6

(Valfritt) För att ändra aktivitetstabellens namn, redigera x_caci_webexcc.webexccactivitytable egenskaperna efter behov.

  1. På sidan Systemegenskaper klickar du på x_caci_webexcc.webexccactivitytable.

  2. Ändra Värde fältet efter behov.

7

(Valfritt) Lägg till användargrupper på följande sätt:

  1. I fältet Filternavigator uppe till vänster i fönstret, navigera till Grupper under Systemsäkerhet.

  2. Klicka på Redigera och lägg till följande roller:

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

Från fältet Filternavigator , navigera till OpenFrame > Konfigurationer.

2

Klicka på Ny.

3

Ange följande egenskaper för URL:en:

  • Namn: Webex Contact Center Desktop

  • Titel: Webex Kontaktcenter

  • Bredd: 550 (rekommenderas)

  • Höjd: 600 (rekommenderas)

4

Till höger om URL fältet, klicka på Lås knappen och lägg till x_caci_webexcc_agentdesktop .do som webbadress. (Gör det här steget för att peka konfigurationen till UI-sidan)

5

(Valfritt) Välj användar-/agentgrupper för att tilldela konfigurationen.

6

Klicka på Skicka. URL:en visas som en länk.

7

Från fältet Filternavigator , navigera till Agent Workspace > Agent Workspace Home.

Klicka på telefonikonen längst ned till vänster.

8

(Valfritt) I listan Användargrupp flyttar du användargrupperna som kan komma åt Webex Contact Center Desktop från Tillgänglig till Vald.

9

Innan du försöker använda OpenFrame-telefonen, se till att du laddar upp ServiceNows anpassade JSON-fil för skrivbordslayout till Webex Contact Center Management Portal. För mer information, se Konfigurera ServiceNow Desktop Layout på Webex Contact Center.

1

Ladda ner skrivbordslayouten för ServiceNow från https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Uppdatera egenskaperna i skrivbordslayoutfilen om det behövs.

3

Gå till Webex Contact Center Management Portal.

4

Från Management Portal-navigeringsfältet väljer du Provisioning > Desktop Layout.

5

Klicka på Ny layout och ange detaljerna för skrivbordslayouten.

6

Ladda upp ServiceNow Desktop Layout JSON-filen.

7

Klicka på Spara för att spara konfigurationen.

Du kan nu starta Webex Contact Center-skrivbordet i ServiceNow-konsolen.

8

Från fältet Filternavigator , navigera till Agent Workspace > Agent Workspace Home.

Klicka på telefonikonen längst ner till vänster.

1

Från fältet Filternavigator navigerar du till Incidenter > Öppen incident.

2

Högerklicka på uppringningsfältet och klicka på Konfigurera ordbok.

3

Lägg till kommaseparerade attribut "ref_contributions=show_phone,.

Du kan nu börja använda Webex Contact Center-skrivbordet i ServiceNow-konsolen.

4

Från fältet Filternavigator , navigera till Agent Workspace > Agent Workspace Home.

Klicka på telefonikonen längst ned till vänster.

Agent Desktop i ServiceNow-konsolen

Innan du ringer externa samtal, se till att du gör följande:

  • Skapa ingångspunkten för utringning och ställ in en strategi för utgående ingångspunkt.

  • Aktivera extern ANI för agentprofilen.

  • Ställ in den utgående ANI:en till en mappning av Dial Number-to-Entry Point.

För mer information, se Provisioning kapitlet i Cisco Webex Contact Center Installations- och administrationsguide.

Från fältet Filternavigator , navigera till Agent Workspace > Agent Workspace Home.

Klicka på telefonikonen längst ned till vänster.

För information om hur du använder Desktop, se Cisco Webex Contact Center Agent Desktop Användarhandbok.

Tredjeparts lagringspartitionering

Ett möjligt problem med den senaste uppdateringen av Google Chrome och Edge 116 eller högre kan störa din inloggningsupplevelse till CRM-anslutningar i Webex Contact Center. Det här problemet påverkar skrivbordsinloggning på ServiceNow CRM-konsolen.

Så här löser du det här problemet i webbläsaren Google Chrome:

  1. Öppna webbläsaren Google Chrome och ange chrome://flags/#third-party-storage-partitioning i adressfältet.

  2. Inaktivera Experimentell tredjepartslagringspartitionering flaggan.

  3. Stäng och starta om Chrome.

  4. Logga in igen på skrivbordet i ServiceNow CRM-konsolen.

Så här löser du det här problemet i Edge-webbläsaren:

  1. Öppna webbläsaren och ange edge://flags/#third-party-storage-partitioning i adressfältet.

  2. Inaktivera Experimentell tredjepartslagringspartitionering flaggan.

  3. Spara ändringarna och starta om webbläsaren.

  4. Logga in igen på skrivbordet i ServiceNow CRM-konsolen.

Så här löser du det här problemet i webbläsaren Firefox:

  1. Öppna webbläsaren och skriv about:config i adressfältet.

    En varningssida kan visas. Klicka på Acceptera risken och fortsätt för att gå till sidan about:config .

  2. Ange network.cookie.cookieBehavior i rutan Sökpreferensnamn högst upp i about:config sida för att hitta inställningen.

  3. Dubbelklicka på inställningen eller klicka på ikonen Redigera för att redigera inställningen.

  4. Ändra värdet till 0.

  5. Spara ändringarna och starta om webbläsaren.

  6. Logga in igen på skrivbordet i ServiceNow CRM-konsolen.

Översikt

Den här artikeln tar upp flera sätt att anpassa dina affärsregler för ServiceNow CRM-anslutningen. Den beskriver hur du kan anpassa användningsfallen baserat på affärsregler som är specifika för ServiceNow.

Kunden måste själv hantera dessa användningsfall på ServiceNow. Konfigurationen är specifik för ServiceNow och inte Webex Contact Center-programvara eller expertis.


 

Detta är en referensdokumentation för att underlätta modifieringen av affärsregler. ServiceNow-utvecklarna kommer att skapa och hantera affärsreglerna och ge support.

Cisco tillhandahåller endast exempeldokumentation.

Kodändring på ServiceNow

Skriptet innehåller ändringar
  1. Gå till filternavigatorn och sök efter Manus inkluderar.

    Välj Script Includes under System UI.

  2. Filtrera namnet och sök efter propUtils.

  3. Ändra metoden UserGetSysId i skriptet.

    Aktuell:

    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(); returnera sysid; },

    Ny exempelkod för incidenten:

    UserGetSysId: function () { var opened_for; //Incidentrelaterade ändringar 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('anrops-id', öppnad_för); 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=öppnad_för; inc.contact_type='telefon'; inc.short_description='Samtal mottaget från '+ this.getParameter('värde'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },

Metodändring på UI-sidor
  1. Gå till filternavigatorn och sök efter UI-sida.

    Välj UI-sidor under System-UI.

  2. Filtrera namnet och sök efter agentdesktop.

  3. Ändra screenpop Funktion i klientskript.

    Nuvarande funktion:

    // skärmpopfunktion screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gauut = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'UserGetSysId'); gauout.addParam('fält', 'telefon'); gauout.addParam('värde', callerani); gauout.getXMLWait(); var sysid = gauout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });

    Exempelkod för incidenten:

    // skärmpopfunktion screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gauut = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'UserGetSysId'); gauout.addParam('fält', 'telefon'); gauout.addParam('värde', callerani); gauout.getXMLWait(); // För incidentrelaterad förändring 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'}); } }

Om uppringarinformationen finns i CRM och det redan finns en ny incident som har öppnats med den här kontakten, öppnar applikationen den pågående incidenten

Om uppringarinformationen inte finns i CRM öppnar applikationen en ny incident

Om uppringarinformationen finns i CRM öppnar applikationen en ny incident med förifyllda detaljer

Översikt

Detta användningsfall beskriver processen för att lägga till en extra kolumn i ServiceNow-tabellen - webexcc_imp_activity och skapa sn_openframe_phone_log vid installationen av Webex CC for ServiceNow CRM Connector.

Som standard innehåller tabellen vissa systemfält och värden.

Du kan skapa fler affärsspecifika variabler (CAD-variabler) inuti WebexCC Flow-designern och lägga till CAD-variablerna i ServiceNows aktivitetslogg för efteranrop, samt bevara detta till aktivitetstabelldata för efteranrop.


 

Detta är endast en referensdokumentation - och visar hur man gör detta för en exempel CAD-variabel som heter Customer Name som lagrar kundnamnet i IVR och postar detta till ServiceNow.

Det förväntas att partner+kund ServiceNow-utvecklarna kommer att konfigurera och hantera denna konfiguration eftersom det är en anpassning till den befintliga anslutningen.

Cisco tillhandahåller bara teknikerna för hur man anpassar och utökar kontakten.

Från och med den här artikeln har Cisco-teamet validerat stöd för tillägg av CAD-variabel till aktivitetsloggen och aktivitetstabellen med den teknik som beskrivs nedan:

Lägg till kolumn till WebexCC IMP-aktivitet

  1. Redigera tabellen i utvecklarversionen av ServiceNow.

  2. Gå till filternavigatorn och sök efter studio.

    Markera Webex Contact Center

    eller

  3. Välj WebexCC IMP-aktivitet tabell

  4. Lägg till en ny kolumn, till exempel Köparens namn

Lägg till kolumn i telefonloggen

  1. Redigera telefonloggtabellen.

  2. Lägg till en ny kolumn, till exempel Köparens namn.

WebexCC aktivitetsomvandlingskarta

Lägg till en ny kolumn, till exempel Köparens namn fältkartläggning.

Anpassa listkolumner

Som Service Now rekommenderar, ändra valåtgärden från skapa till ignorera.

Konfigurera telefonloggarlistan

Gå till Script Include


 

Lägg bara till en rad webexcc.u_customername=actInfo.CustomerName Till propUtils.

Exempel på manus

Se raden: webexcc.u_customername=actInfo.CustomerName; med en stödjande kommentar.

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_agent); / 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; // Denna rad läggs till - för att fånga den i aktivitetsloggen webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); //Aktiviteter på incidentregistrering; var actInfoString =this.getParameter('actInfo'); var suser = new 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(); } } } returnerar sys_id; }, skriv: 'propUtils' });

Skapa en CAD-variabel i Flow Designer

Lägg till CAD-variabeln till skrivbordslayouten

Exempel

"CadName1:SnowField1,CadName2:SnowField2" CadName1 är CustomerName SnowField1 används också som CustomerName, vilket är en del av exemplet som visas ovan "actInfo.CustomerName".

Demo skärmdumpar

Se den nyligen tillagda CAD-variabeln i WebexCC-aktivitetstabellen.

Skapa CAD-variabel för Flow Designer

Brådskande incident

Incidentens påverkan

Service Now-skriptuppdatering

Uppdateringar av skriptet inkluderar

  1. Gå till filternavigatorn och sök efter script include

    Välj alternativet Script Includes under System UI.

  2. Filtrera namnet med propUtils.

  3. Ändra metoden UserGetSysId I fältet Script .

    Aktuellt manus:

    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(); returnera sysid; },

    Ny exempelkod för incidenten:

    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('anrops-id', öppnad_för); 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=öppnad_för; inc.contact_type='telefon'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Samtal mottaget från '+ this.getParameter('värde'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; returnera JSON.stringify(sysidlist);//sysid; },

En metodändring på UI-sidor
  1. Gå till filternavigatorn och sök efter UI-sidor.

    Välj UI-sidor alternativ under System UI.

  2. Filtrera UI-sidor med namn och sök efter agentdesktop.

  3. Ändra screenpop Funktion i skriptfältet.

    Nuvarande funktion:

    // skärmpopfunktion screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gauut = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'UserGetSysId'); gauout.addParam('fält', 'telefon'); gauout.addParam('värde', callerani); gauout.getXMLWait(); var sysid = gauout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }

    Exempelkod för incidenten:

    // skärmpopfunktion screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != odefinierat) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var Incurgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != odefinierat) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefix(callerani); } var gauut = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'UserGetSysId'); gauout.addParam('fält', 'telefon'); gauout.addParam('värde', callerani); gauout.addParam('IncUrgency', Incurgency); gauout.addParam('Impact', Impact); gauout.getXMLWait(); // var sysid = gauut.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)); }

Om uppringarinformationen finns i CRM och det inte finns någon ny eller pågående incident öppnar applikationen en ny incident

Ändra koden på ServiceNow

Lägg till nya kolumner i WebexCC IMP-aktivitet tabell

Öppna WebexCC IMP-aktivitet tabell

Lägg till en ny kolumn - InteractionsNumber

Lägg till en ny kolumn - IncidentNumber

Klicka på Uppdatera.

Lägg till nya kolumner i Telefonlogg tabell

Öppna Telefonlogg tabell

Lägg till en ny kolumn - InteractionsNumber

Lägg till en ny kolumn - IncidentNumber

WebexCC aktivitetsomvandlingskarta

Öppen Transformera karta Från filternavigatorn

Klicka på WebexCC Activity TransformMap

Lägg till ny - för Interaktionsnummerkarta

Lägg till ny - för Incident Number Map

Klicka på Uppdatera.

Ändringar av skriptet inkluderar

  1. Gå till filternavigatorn och sök efter "script include".

    Välj Script Includes under System UI.

  2. Filtrera namnet med propUtils.

  3. Ändra metoden setWebexcctable.

    Ny exempelkod för 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=""; ta bort actInfo['interaction_sys_id']; radera 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='Uppdatera tillstånd till stängt.'; 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("telefon", 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(); } returnera sys_id; },

Metodändringar på UI-sidor

  1. Gå till filternavigatorn och sök efter UI-sidor

    Välj alternativet UI Sidor under System UI.

  2. Filtrera gränssnittssidorna med Namn och sök efter agentdesktop.

  3. Ändra nuAktiviteter och screenpop Funktion i skriptet.

    Nuvarande funktion:

    function nowActivities(actInfo, ani) { var gauout = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'setWebexcctable'); gauout.addParam('actInfo', JSON.stringify(actInfo)); gauout.addParam('ani', stripPrefix(ani)); gauut.getXML(SetCCsysId); }

    Exempelkod för incidenten:

    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 gauut = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'setWebexcctable'); gauout.addParam('actInfo', JSON.stringify(actInfo)); gauout.addParam('ani', stripPrefix(ani)); gauut.getXML(SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gauut = new GlideAjax('propUtils'); gauout.addParam('sysparm_name', 'UserGetSysId'); gauout.addParam('fält', 'telefon'); gauout.addParam('värde', callerani); gauout.getXMLWait(); // var sysid = gauut.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)); } 

Resultat efter uppdateringen


 

Följande anpassningar gäller för version 1.0.5 och nedan. För anpassningarna för de nyare versionerna 1.0.7 och högre, följ stegen ovan.

Anpassning # 1 - Lägg till anpassade affärsregler för användningsfall för samtalsflöde

Skapa en ny incidentpost för varje samtal

För varje nytt samtal till WebexCC CRM-anslutningen i ServiceNow, skapa en ny incidentpost.

  1. Sök efter affärsregler i filternavigatorn

  2. Klicka på Ny.

    Exempelkod för referens:

    function customcti() { var url = null; var namn = sysparm_anropsnamn; eid = sysparm_anrops-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 användar-ID = null; if (eid != null && eid != '') { userID = UserGetSysId("anställd_nummer", eid); } if (användar-ID == null && namn != null && namn != '') { användar-ID = UserGetSysId("namn", namn); } if (användar-ID == null && phone != null && phone != '') { userID = UserGetSysId("telefon", telefon); } if (användar-ID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + användar-ID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } svar = webbadress; returnera url; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(fält, värde); user.query(); if (user.next()) returnerar user.sys_id; annars returnera null; }

    Exempelkonfiguration av affärsregeln

  3. Aktivera Client callable

    Datortelefoniintegrering (CTI) Bearbetning för incident är markerad som Sann.

  4. Uppdatera screenpop-urln med den anpassade CTI-regeln " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone= "

Exempel

De sysparm_cti_rule=namn var ' namn ' är namnet på en fungera ska åberopas för CTI Bearbetning istället för att använda standardskriptet.

Definiera funktionen i a sys_script posten markerad kundanropsbar.

Om du måste infoga, uppdatera eller ta bort några GlideRecords i funktionen, anropa en separat icke-klient-anropsbar funktion för att utföra uppdateringarna.


 

För att göra ett skript klientanropbart måste du markera kryssrutan klientanropsbart i formuläret som visas när sys_script-posten visas.

Den klientanropbara kryssrutan visas inte som standard. För att se måste du ändra fälten som visas i formuläret med hjälp av kugghjulsikonen och slush hink-mekanismen.

Referenser

Anpassning # 2 - Lägg till CAD-variabel i Webex aktivitetstabell för kontaktcenter

Översikt

Den här artikeln beskriver processen för att lägga till ytterligare en kolumn i ServiceNow-tabellen - webexcc_activity som skapas vid installationen av Webex CC for ServiceNow CRM Connector.

Som standard innehåller tabellen out-of-box systemfält och värden.

Du kan eventuellt skapa fler affärsspecifika variabler (CAD-variabler) i WebexCC Flow-designern och lägga till dessa CAD-variabler i ServiceNow aktivitetsloggen för efteranrop, och bevara detta till aktivitetstabell efter samtal data.


 
  • Detta är endast referensdokumentation - och visar hur man gör detta för ett exempel på CAD-variabel som heter Customer Name som lagrar kundnamnet i IVR och postar detta till ServiceNow.

  • Partner+kund ServiceNow-utvecklarna kommer att konfigurera och hantera denna konfiguration eftersom den är en anpassning till den befintliga anslutningen.

  • Cisco kommer endast att tillhandahålla tekniker för hur man anpassar och utökar kontakten.

  • Från och med den här artikeln har Cisco-teamet validerat stöd för tillägg av CAD-variabel till aktivitetsloggen och aktivitetstabellen med den teknik som beskrivs nedan.

Lägg till kolumn till WebexCC-aktivitet
  1. Redigera tabellen i utvecklarversionen av ServiceNow.

  2. Gå till Studio > Webex Contact Center.

  3. Välj WebexCC Activity tabell.

  4. Till exempel Kundnamn.

  5. Välj Listlayout för WebexCC-aktivitet.

Skapa ett nytt skript Inkluderar

 

Det här steget krävs inte om du använder uppdateringsuppsättningen XML - Endast en rad krävs för att läggas till "webexcc.u_customername=actInfo.CustomerName" till propUtils.

Exempel på manus

Se raden med:webexcc.u_customername=actInfo.CustomerName; med en stödjande kommentar.

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_cacipropagent); web_cc_cacilagent); .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 =actInfocringingtime; =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Denna rad läggs till - för att fånga den i aktivitetsloggen webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // Aktiviteter i händelseregistrering; var actInfoString =this.getParameter('actInfo'); var suser = new 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(agerande sträng),null,2); inc.comments =jsonPretty; inc.update(); } } } returnerar sys_id; }, skriv: 'propUtils2' });
Redigera UI-sidan med ett nytt skriptnamn

Skapa en CAD-variabel i Flow Designer

Lägg till CAD-variabeln till skrivbordslayouten

Demo skärmdumpar

Se den nyligen tillagda CAD-variabeln i WebexCC-aktivitetstabellen.