När du integrerar Webex Contact Center med ServiceNow CRM-konsolen kan du starta Webex Contact Center Desktop från ServiceNow.
Förutsättningar
Innan du integrerar Webex Contact Center med ServiceNow CRM-konsolen, se till att du har följande:
-
Tillgång till Webex kontaktcenter.
-
Administratörsåtkomst till kontrollhubben på https://admin.webex.com och Webex Contact Center Management Portal. Webbadresserna för Management Portal är specifika för din region.
-
Nordamerika: https://portal.wxcc-us1.cisco.com
-
Storbritannien: https://portal.wxcc-eu1.cisco.com
-
-
En agent med åtkomst till skrivbordet. Webbadressen till skrivbordet är specifik för din region.
-
Nordamerika: https://desktop.wxcc-us1.cisco.com
-
Storbritannien: https://desktop.wxcc-eu1.cisco.com
-
-
Agentåtkomst till följande domän som läggs till i listan över tillåtna innehållssäkerhetspolicyer:
-
*.service-now.com
För mer information om hur du definierar den tillåtna listan, se artikeln Säkerhetsinställningar för Webex Contact Center.
-
-
Ett ServiceNow-utvecklarportalkonto. För att skapa ett konto, gå till ServiceNow-utvecklarportalen på https://developer.servicenow.com/dev.do och klicka på Registrera dig och börja bygga.
-
Åtkomst till följande filer på https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow Update Set (XML)
-
ServiceNow Contact Center Desktop Layout (JSON)
-
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 instans på Konto 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 . |
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 |
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 |
Från fältet Filternavigator navigerar du till . |
2 |
Klicka på Ny. |
3 |
Ange följande egenskaper för URL:en:
|
4 |
Till höger om URL fältet, klicka på Lås knappen och lägg till |
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 . |
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 . 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 instans på Konto 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 . |
Instanser som har företagslicenser kan installera Webex Contact Center-applikation direkt från ServiceNow Store.
Ladda ner och installera Webex Contact Center-paketet från ServiceNow-butiken: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
I fältet Filternavigator uppe till vänster i fönstret anger du |
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.
|
7 |
(Valfritt) Lägg till användargrupper på följande sätt:
|
1 |
Från fältet Filternavigator , navigera till . |
2 |
Klicka på Ny. |
3 |
Ange följande egenskaper för URL:en:
|
4 |
Till höger om URL fältet, klicka på Lås knappen och lägg till |
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 . 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 . |
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 . 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 Du kan nu börja använda Webex Contact Center-skrivbordet i ServiceNow-konsolen. |
4 |
Från fältet Filternavigator , navigera till . 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 .
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:
-
Öppna webbläsaren Google Chrome och ange
chrome://flags/#third-party-storage-partitioning
i adressfältet. -
Inaktivera Experimentell tredjepartslagringspartitionering flaggan.
-
Stäng och starta om Chrome.
-
Logga in igen på skrivbordet i ServiceNow CRM-konsolen.
Så här löser du det här problemet i Edge-webbläsaren:
-
Öppna webbläsaren och ange
edge://flags/#third-party-storage-partitioning
i adressfältet. -
Inaktivera Experimentell tredjepartslagringspartitionering flaggan.
-
Spara ändringarna och starta om webbläsaren.
-
Logga in igen på skrivbordet i ServiceNow CRM-konsolen.
Så här löser du det här problemet i webbläsaren Firefox:
-
Ö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
. -
Ange
network.cookie.cookieBehavior
i rutan Sökpreferensnamn högst upp iabout:config
sida för att hitta inställningen. -
Dubbelklicka på inställningen eller klicka på ikonen Redigera för att redigera inställningen.
-
Ändra värdet till 0.
-
Spara ändringarna och starta om webbläsaren.
-
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-
Gå till filternavigatorn och sök efter
Manus inkluderar
.Välj Script Includes under System UI.
-
Filtrera namnet och sök efter
propUtils
. -
Ä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); },
-
Gå till filternavigatorn och sök efter
UI-sida
.Välj UI-sidor under System-UI.
-
Filtrera namnet och sök efter
agentdesktop
. -
Ä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
-
Redigera tabellen i utvecklarversionen av ServiceNow.
-
Gå till filternavigatorn och sök efter studio.
Markera
Webex Contact Center
eller
-
Välj
WebexCC IMP-aktivitet
tabell -
Lägg till en ny kolumn, till exempel
Köparens namn
Lägg till kolumn i telefonloggen
-
Redigera telefonloggtabellen.
-
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 |
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 incidentIncidentens påverkan
Service Now-skriptuppdatering
Uppdateringar av skriptet inkluderar
-
Gå till filternavigatorn och sök efter
script include
Välj alternativet Script Includes under System UI.
-
Filtrera namnet med
propUtils
. -
Ä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; },
-
Gå till filternavigatorn och sök efter
UI-sidor
.Välj UI-sidor alternativ under System UI.
-
Filtrera UI-sidor med namn och sök efter
agentdesktop
. -
Ä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-aktivitettabell 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
WebexCC aktivitetsomvandlingskarta
Öppen Transformera karta
Från filternavigatorn
Klicka på WebexCC Activity TransformMap
Klicka på Uppdatera.
Ändringar av skriptet inkluderar
-
Gå till filternavigatorn och sök efter "script include".
Välj Script Includes under System UI.
-
Filtrera namnet med
propUtils
. -
Ä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
-
Gå till filternavigatorn och sök efter
UI-sidor
Välj alternativet UI Sidor under System UI.
-
Filtrera gränssnittssidorna med Namn och sök efter
agentdesktop
. -
Ä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 samtalFör varje nytt samtal till WebexCC CRM-anslutningen i ServiceNow, skapa en ny incidentpost.
Sök efter affärsregler i filternavigatorn
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
Aktivera Client callable
Datortelefoniintegrering (CTI) Bearbetning för incident är markerad som Sann.
Uppdatera screenpop-urln med den anpassade CTI-regeln " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone= "
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. |
Anpassning # 2 - Lägg till CAD-variabel i Webex aktivitetstabell för kontaktcenter
ÖversiktDen 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.
|
Redigera tabellen i utvecklarversionen av ServiceNow.
Gå till
.Välj WebexCC Activity tabell.
Till exempel Kundnamn.
Välj Listlayout för WebexCC-aktivitet.
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 skriptnamnSkapa 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.