Integrera Webex Contact Center med ServiceNow (Version 1 – Legacy)
Förutsättningar
För närvarande är den här funktionen endast tillämplig på agenter.
Innan du integrerar Webex Contact Center med ServiceNow CRM-konsolen kontrollerar du att du har följande:
-
Tillgång till Webex Contact Center.
-
Administratörsåtkomst till Control Hub på https://admin.webex.com och Webex Contact Center hanteringsportalen. URL:erna för hanteringsportalen är specifika för din region.
-
En agent med åtkomst till skrivbordet. URL:en för skrivbordet är specifik för din region.
-
Agentåtkomst till följande domän som läggs till i listan över tillåtna innehållssäkerhetsprinciper:
-
*.service-now.com
Mer information om hur du definierar listan över tillåtna finns i artikeln Säkerhetsinställningar för Webex Contact Center.
-
-
Ett ServiceNow-utvecklarportalkonto. Om du vill skapa ett konto går du till ServiceNow-utvecklarportalen på https://developer.servicenow.com/dev.do och klickar på Registrera dig och börja skapa.
-
Åtkomst till följande filer på https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow-uppdateringsuppsättning (XML)
-
ServiceNow Skrivbordslayout för kontaktcenter (JSON)
-
- ServiceNow-utgåvorna som Webex Contact Center stöder är Vancouver, Utah, Tokya, Washington och Xanadu. Mer information finns i Webex Contact Center Integration med ServiceNow.
Följ en av de två metoderna nedan:
För utvecklarinstanser rekommenderar vi att du följer stegen i handboken för utvecklarinstanser.
Om du äger en företagslicensierad instans följer du riktlinjerna för företagslicensierade instanser.
Vi rekommenderar inte att du blandar den företagslicensierade appen med testinstanser i begränsat läge för utvecklare.
I följande avsnitt beskrivs stegen för att installera ServiceNow-anslutningsappen för utvecklarinstanser.
1 |
Logga in på ditt ServiceNow-utvecklarportalkonto och öppna administrationskonsolen . |
2 |
I området Min instans på menyn Konto klickar du på Börja skapa. |
3 |
På utvecklarinstansen navigerar du till Plugin-program i fältet Filternavigator längst upp till vänster i fönstret. |
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-programmet. |
6 |
I dialogrutan Aktivera plugin-program klickar du på Aktivera. |
7 |
När plugin-aktiveringen är klar klickar du på Stäng &ladda om formulär i dialogrutan Plugin-aktivering . |
8 |
Verifiera plugin-aktiveringen genom att gå till OpenFrame i fältet Filternavigator längst upp tillvänster i fönstret. |
9 |
Klicka på Konfigurationer och kontrollera att plugin-programmet OpenFrame visas i listan OpenFrame-konfigurationer . |
1 |
Ladda ned den senaste filen Systemuppdateringsuppsättning XML som finns på GitHub-lagringsplatsen på den här platsen : 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 fältet Filternavigator längst upp till vänster i fönstret, navigerar du till . |
3 |
Klicka på länken Importera uppdateringsuppsättning från XML . |
4 |
Klicka på Välj fil, välj filen Systemuppdateringsuppsättning XML och klicka sedan på Överför.
Uppdateringsuppsättningen visas i listan Hämtade uppdateringsuppsättningar och har statusen Inläst .
|
5 |
I listan Hämtade uppdateringsuppsättningar klickar du på filnamnet (länken) för att öppna uppdateringsuppsättningen. |
6 |
Klicka på Förhandsgranska uppdateringsuppsättning längst upp till höger i fönstret för att kontrollera om det finns problem med uppdateringsuppsättningen. |
7 |
Klicka på Stäng i dialogrutan Uppdatera förhandsgranskning när förhandsgranskningen är klar. |
8 |
Klicka på Genomför uppdateringsuppsättning. |
9 |
Klicka på Stäng i dialogrutan Genomför uppdateringsuppsättning när genomförandet av uppdateringsuppsättningen är klart. |
1 |
I fältet Filternavigator längst upp till vänster i fönstret skriver du |
2 |
På sidan Systemegenskaper sorterar du egenskaperna efter uppdateringsdatum. Kontrollera att du kan se följande Webex Contact Center egenskaper: |
3 |
Klicka på agentdesktop_url för att öppna sidan agentdesktop_url Systemegenskap. |
4 |
I fältet Värde anger du webbadressen till Webex Contact Center Desktop beroende på verksamhetsområde.
|
5 |
Klicka på Uppdatera för att spara ändringarna. |
6 |
(Valfritt) Om du vill ändra namnet på tabellen Aktivitet redigerar du egenskaperna för webexccactivitytable efter behov. På sidan Systemegenskaper klickar du på webexccactivitytable. Ändra fältet Värde efter behov. |
7 |
(Valfritt) Lägg till användargrupper på följande sätt:
|
1 |
I fältet Filternavigator navigerar du till . |
2 |
Klicka på Ny. |
3 |
Ange följande egenskaper för URL:en:
|
4 |
Till höger om fältet URL klickar du på knappen Lås och lägger till |
5 |
(Valfritt) Välj de användar-/agentgrupper som konfigurationen ska tilldelas till. |
6 |
Klicka på Skicka. URL:en visas som en länk. |
7 |
Innan du försöker använda OpenFrame-telefonen måste du ladda upp JSON-filen ServiceNow anpassad skrivbordslayout till Webex Contact Center hanteringsportalen. Mer information finns i Konfigurera ServiceNow-skrivbordslayouten på Webex Contact Center. |
1 |
Ladda ned 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 hanteringsportalen Webex Contact Center. |
4 |
I navigeringsfältet i hanteringsportalen väljer du . |
5 |
Klicka på Ny layout och ange information om skrivbordslayouten. |
6 |
Ladda upp JSON-filen ServiceNow Desktop Layout. |
7 |
Klicka på Spara för att spara konfigurationen. Du kan nu starta Webex Contact Center Desktop i ServiceNow-konsolen. |
8 |
I fältet Filternavigatör navigerar du till . |
I följande avsnitt beskrivs stegen för att installera ServiceNow-anslutningsappen för licensierade företagsinstanser.
1 |
Logga in på ditt ServiceNow-utvecklarportalkonto och öppna administrationskonsolen . |
2 |
I området Min instans på menyn Konto klickar du på Börja skapa. |
3 |
På utvecklarinstansen navigerar du till Plugin-program i fältet Filternavigator längst upp till vänster i fönstret. |
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-programmet. |
6 |
I dialogrutan Aktivera plugin-program klickar du på Aktivera. |
7 |
När plugin-aktiveringen är klar klickar du på Stäng &ladda om formulär i dialogrutan Plugin-aktivering . |
8 |
Verifiera plugin-aktiveringen genom att gå till OpenFrame i fältet Filternavigator längst upp tillvänster i fönstret. |
9 |
Klicka på Konfigurationer och kontrollera att plugin-programmet OpenFrame visas i listan OpenFrame-konfigurationer . |
Instanser som har företagslicenser kan installera programmet Webex Contact Center direkt från ServiceNow Store.
Hämta och installera paketet Webex Contact Center från ServiceNow-butiken: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
I fältet Filternavigator längst upp till vänster i fönstret anger du |
2 |
På sidan Systemegenskaper sorterar du egenskaperna efter uppdateringsdatum. Kontrollera att du kan se följande Webex Contact Center-egenskaper: |
3 |
Klicka på agentdesktop_url för att öppna sidan agentdesktop_url Systemegenskap. |
4 |
I fältet Värde anger du webbadressen till Webex Contact Center Desktop beroende på verksamhetsområde.
|
5 |
Klicka på Uppdatera för att spara ändringarna. |
6 |
(Valfritt) Om du vill ändra namnet på tabellen Aktivitet redigerar du egenskaperna x_caci_webexcc.webexccactivitytable efter behov.
|
7 |
(Valfritt) Lägg till användargrupper på följande sätt:
|
1 |
I fältet Filternavigator navigerar du till . |
2 |
Klicka på Ny. |
3 |
Ange följande egenskaper för URL:en:
|
4 |
Till höger om fältet URL klickar du på knappen Lås och lägger till |
5 |
(Valfritt) Välj de användar-/agentgrupper som konfigurationen ska tilldelas till. |
6 |
Klicka på Skicka. URL:en visas som en länk. |
7 |
I fältet Filternavigatör navigerar du till . |
8 |
(Valfritt) I listan Användargrupp flyttar du de användargrupper som har åtkomst till Webex Contact Center skrivbordet från Tillgänglig till Vald. |
9 |
Innan du försöker använda OpenFrame-telefonen måste du ladda upp JSON-filen för ServiceNow-anpassad skrivbordslayout till Webex Contact Center hanteringsportalen. För mer information, se Konfigurera ServiceNow-skrivbordslayouten 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 hanteringsportalen Webex Contact Center. |
4 |
Från navigeringsfältet i hanteringsportalen väljer du . |
5 |
Klicka på Ny layout och ange informationen för skrivbordslayouten. |
6 |
Ladda upp JSON-filen för ServiceNow-skrivbordslayouten. |
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 navigerar du till . |
1 |
Från fältet Filternavigator navigerar du till Incidenter >Öppna incident. |
2 |
Högerklicka på anroparfä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 navigerar du till . |
Vi stöder endast inloggning till Agent Desktop med WebRTC för Salesforce (SFDC) och Microsoft Dynamics (MS Dynamics) Connectors.
Agent Desktop i ServiceNow-konsolen
Innan du ringer utlandssamtal, se till att du gör följande:
-
Skapa en outdial-ingångspunkt och konfigurera en strategi för outdial-ingångspunkten.
-
Aktivera outdail ANI för agentprofilen.
-
Ställ in outdial ANI till en mappning mellan uppringningsnummer och ingångspunkt.
För mer information, se kapitlet **Provisionering** i **Installations- och administrationsguiden för Cisco Webex Contact Center**.
Från fältet Filternavigator navigerar du till .
För information om hur du använder Desktop, se Agent Tab i Webex Contact Center-hjälpen.
Översikt
Den här artikeln beskriver 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 som stöd vid modifiering av affärsregler. ServiceNow-utvecklarna kommer att skapa och hantera affärsreglerna och ge support.
Cisco tillhandahåller endast exempeldokumentation.
Följande avsnitt innehåller information om hur du konfigurerar, aktiverar och hanterar Actions-widgeten för utvecklare och företagsinstanser.
Bekräfta uppdateringsuppsättningen för åtgärdswidgeten
För de licensierade företagsinstanserna, installera den senaste Webex Contact Center-appen från ServiceNow-butiken.
För att konfigurera Actions-widgeten för utvecklarinstanserna, ladda ner den senaste systemuppdateringsfilen XML som finns tillgänglig på github-repot på den här platsen: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Filnamnet är webexcc-servicenow-update-setv7-1-ActionsWidget.XML. För att bekräfta uppdateringsuppsättningen för widgeten Åtgärder, se steg 2 till 9 i Verifiera uppdateringsuppsättningen.
Aktivera åtgärdswidgeten
Använd egenskapen isWidgetDisplayEnabled för att aktivera widgeten Åtgärder. Du får inte ändra den här egenskapens värde i den anpassade skrivbordslayoutens headless-sektion. Egenskapen är alltid inställd på falskt i den anpassade skrivbordslayoutens headless-sektion. Du bör endast uppdatera egenskapens värde i panelavsnittet i den anpassade skrivbordslayouten.
När du har aktiverat widgeten Åtgärder i den anpassade skrivbordslayouten kan du utföra följande åtgärder:
- Hantera aktivitetsposter – klicka på Visa/redigera aktivitetspost för att visa listan över aktivitetsposter som är kopplade till uppringaren.
- Associera CRM-objekt – klicka på Associera till aktivitetsposter för att lägga till CRM-objekt som samtalstyp (inkommande eller utgående), samtalsobjekt, samtalsanteckningar och så vidare till aktivitetsposten.
- Hantera incidenter – klicka på Skapa incident. En ny incident skapas med uppringarens uppgifter i förväg ifyllda. Du kan göra de nödvändiga uppdateringarna av incidenten. Du kan välja att ändra posttypen från incident till ärende, HR-modul och så vidare baserat på dina behov. För att ändra posttypen, ändra värdet för typAvPost egenskapen i konfigurationen för widgeten Åtgärder. Till exempel:
{ "comp": "md-tab-panel", "attributes": { "slot": "panel", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Skapa incident" }, "wrapper": { "title": "SNOW-åtgärder!", "maximizeAreaName": "app-maximize-area" } } ] }
- Lägg till samtalsanteckningar i realtid – du kan spara ytterligare information om samtalet i textfältet och avsluta samtalet. Du kan se dessa anteckningar tillagda som samtalsanteckningar i aktivitetsposten.
Kodändring på ServiceNow
Skriptet innehåller ändringar-
Gå till filternavigatorn och sök efter
Manuset inkluderar
.Välj Skriptet inkluderar under Systemgränssnitt.
-
Filtrera namnet och sök efter
propUtils
. -
Ändra metoden
AnvändarGetSysId
i skriptet.Nuvarande:
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('interaktion'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return 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('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='Samtal mottaget från '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
Gå till filternavigatorn och sök efter
UI-sida
.Välj UI-sidor under Systemgränssnitt.
-
Filtrera namnet och sök efter
agentdesktop
. -
Ändra
skärmdump
Funktion i Klientskript.Nuvarande funktion:
// skärmvisningsfunktion screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });
Exempelkod för incidenten:
// skärmvisningsfunktion 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(); // För incidentrelaterad ändring var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); ... }annars { openFrameAPI.openServiceNowForm({ entitet: 'incident', fråga: 'sys_id=-1', 'interaktionssys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Om uppringarinformationen finns i CRM och det redan finns en ny incident öppnad med den här kontakten, öppnar programmet den pågående incidenten.
Om uppringarinformationen inte finns i CRM öppnar applikationen en ny incident.
Om uppringarens information finns i CRM öppnar applikationen en ny incident med förifyllda uppgifter.
Översikt
Det här användningsfallet beskriver processen för att lägga till en extra kolumn i ServiceNow-tabellen - webexcc_imp_activity - och skapa sn_openframe_phone_log vid installation av Webex CC för ServiceNow CRM Connector.
Som standard innehåller tabellen vissa färdiga 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 ServiceNow POST samtalsaktivitetslogg, samt spara detta i POST samtalsaktivitetstabelldata.
Detta är endast en referensdokumentation – och visar hur man gör detta för en exempel-CAD-variabel som heter Kundnamn, som lagrar kundnamnet i IVR och skickar detta till ServiceNow.
Det förväntas att Partner+Customer ServiceNow-utvecklarna kommer att konfigurera och hantera denna konfiguration eftersom det är en anpassning av den befintliga kopplingen.
Cisco tillhandahåller bara teknikerna för hur man anpassar och utökar kopplingen.
I och med den här artikeln har Cisco-teamet validerat stöd för tillägg av CAD-variabler i aktivitetsloggen och aktivitetstabellen med hjälp av tekniken 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
Kundnamn
Lägg till kolumn i telefonloggen
-
Redigera telefonloggtabellen.
-
Lägg till en ny kolumn, till exempel
Kundnamn
.
WebexCC-aktivitetstransformationskarta
Lägg till en ny kolumn, till exempel Kundnamn
fältkartläggning.
Anpassa listkolumner
Som Service Now rekommenderar, ändra åtgärden Val från skapa till ignorera.
Konfigurera telefonlogglista
Gå till Skriptinkludering
Lägg bara till en rad webexcc.u_kundnamn=aktinfo.Kundnamn
Till propUtils.
Se raden: webexcc.u_kundnamn=aktinfo.Kundnamn; 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_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id;//return user.sys_id; // annars // return null; var grInt = new GlideRecord('interaktion'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; 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(); Behöver du en GlideRecordSecure? 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 registrera den i aktivitetsloggen webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); //Aktiviteter på incidentposten; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } return sys_id; }, type: 'propUtils' });
Skapa en CAD-variabel i Flow Designer
Lägg till CAD-variabeln i skrivbordslayouten
Exempel
"CadName1:SnowField1,CadName2:SnowField2" CadName1 är kundnamn. SnowField1 används också som kundnamn, vilket är en del av exempelskriptet som visas ovan "actInfo.CustomerName".
Demo-skärmdumpar
Visa den nyligen tillagda CAD-variabeln i WebexCC-aktivitetstabellen.
Skapa CAD-variabel för Flow Designer
Incidentens brådskaHändelsens påverkan
Uppdatering av Service Now-skript
Uppdateringar av manuset inkluderar
-
Gå till filternavigatorn och sök efter
manuset inkluderar
Välj Manuset inkluderar alternativ under Systemgränssnitt.
-
Filtrera Namn med
propUtils
. -
Ändra metoden
AnvändarGetSysId
i Manus fält.Nuvarande 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('interaktion'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); return 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('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Samtal mottaget från '+ this.getParameter('value'); sysidlist.incsysid=inc.Insert(); } } var grInt = new GlideRecordSecure('interaktion'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },
-
Gå till filternavigatorn och sök efter
UI-sidor
.Välj UI-sidor alternativ under Systemgränssnitt.
-
Filtrera UI-sidor med Namn och sök efter
agentdesktop
. -
Ändra
skärmdump
Funktionen i skriptfältet.Nuvarande funktion:
// skärmvisningsfunktion screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }
Exempelkod för incidenten:
// skärmvisning funktion screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != odefinierad) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != odefinierad) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); Behöver du en variabelnamn eller variabelnamn som används i incident-funktionen? }annars { openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); } FrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid'); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); } Behöver du en variabelnamn eller variabelnamn?
Om anroparinformationen finns i CRM och det inte finns någon ny eller pågående incident öppnar programmet en ny incident
Ändra koden på ServiceNow
Lägg till nya kolumner i WebexCC IMP-aktivitet
bord
Öppna WebexCC IMP-aktivitetbord
Klicka på Uppdatera.
Lägg till nya kolumner i Telefon Logg
bord
Öppna Telefon Logg
bord
Karta över omvandling av WebexCC-aktivitet
Öppen Transformera karta
Från filternavigatorn
Klicka på WebexCC-aktivitet TransformMap
Klicka på Uppdatera.
Ändringar i skriptet inkluderar
-
Gå till filternavigatorn och sök efter "script includes".
Välj skriptet som ingår under Systemgränssnitt.
-
Filtrera namnet med
propUtils
. -
Ändra metod
setWebexcctable (på engelska)
.Ny exempelkod för incident:
setWebexcctable: funktion () { 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()) { //Aktiviteter på incidentpost; //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']; ta bort 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ängd.'; 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 = ny GlideRecordSecure("sys_user"); suser.addQuery("telefon", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = ny GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('tillstånd','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 = tum; webexcc.u_interactionsnumber=intenum; sys_id=WebexCC.Insert(); } returnera sys_id; },
Metodändringar på användargränssnittssidor
-
Gå till filternavigatorn och sök efter
Sidor för användargränssnitt
Välj alternativet UI-sidor under Systemgränssnitt.
-
Filtrera UI-sidorna med Namn och sök efter
agentdesktop
. -
Ändra
nuAktiviteter och skärmpop
Funktion i skriptet.Nuvarande funktion:
funktion nowActivities (actInfo, ani) { var gaout = ny GlideAjax ('propUtils'); gaout.addParam ('sysparm_name', 'setWebexcctable'); gaout.addParam ('actInfo', JSON.stringify (actInfo)); gaout.addParam ('ani', stripPrefixes (ani)); gaout.getXML (SetCCsysId); }
Exempelkod för incidenten:
funktion 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); } funktion screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Resultat efter uppdateringen
Följande anpassningar gäller för version 1.0.5 och senare. För anpassningar för de nyare versionerna 1.0.7 och senare, 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 skapar du en ny incidentpost.
Sök efter affärsregler i filternavigatören
Klicka på Ny.
Exempelkod som referens:
function customcti() {var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null &&; name != '') { userID = UserGetSysId("name", namn); } if (userID == null && phone != null &&; phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; returnera webbadress; } funktion UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }
Exempel på konfiguration av affärsregeln
Aktivera klientanrop
Bearbetning av datortelefoniintegration (CTI) för incident markeras som sant.
Uppdatera screenpop-URL:en med den anpassade CTI regeln " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule =namnet där 'name' är namnet på en funktion ska anropas förCTI Processing i stället för att använda standardskriptet.
Definiera funktionen i en sys_script post som är markerad som klientanropbar.
Om du måste Insert, uppdatera eller ta bort GlideRecords i funktionen anropar du en separat funktion som inte kan anropas av klienten för att utföra uppdateringarna.
Om du vill göra ett skript klientanropbart måste du markera kryssrutan för klientanrop i formuläret som visas när den sys_script posten visas.
Kryssrutan för klientanrop visas inte som standard. Om du vill visa måste du ändra fälten som visas i formuläret med kugghjulsikonen och slaskhinkmekanismen.
Anpassning # 2 - Lägg till CAD-variabel i aktivitetstabellen Webex Contact Center
ÖversiktI den här artikeln beskrivs hur du lägger till ytterligare en kolumn i tabellen ServiceNow – webexcc_activity som skapas vid installationen av Webex CC för ServiceNow CRM Connector.
Som standard innehåller tabellen färdiga systemfält och värden.
Du kan potentiellt skapa fler affärsspecifika variabler (CAD-variabler) i WebexCC-flödesdesignern och lägga till dessa CAD-variabler i ServiceNow POST-samtalsaktivitetsloggen och bevara detta i tabelldata för POST samtalsaktivitet.
-
Detta är endast referensdokumentation - och visar hur du gör detta för en CAD-exempelvariabel som heter Kundnamn som lagrar kundnamnet i IVR och publicerar detta till ServiceNow.
-
Partner + Customer ServiceNow-utvecklarna konfigurerar och hanterar den här konfigurationen eftersom det är en anpassning till den befintliga anslutningsappen.
-
Cisco tillhandahåller endast tekniker för hur du anpassar och utökar kopplingen.
-
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 hjälp av tekniken som beskrivs nedan.
Redigera tabellen i utvecklarversionen av ServiceNow.
Gå till Studio
.Välj tabellen WebexCC-aktivitet .
Till exempel CustomerName.
Välj Listlayout för WebexCC-aktivitet.
Det här steget krävs inte om du använder uppdateringsuppsättningen XML - Endast en rad behöver läggas till "webexcc.u_customername=actInfo.CustomerName" i propUtils.

Exempel på skript
Se raden med:webexcc.u_customername=actInfo.CustomerName; med en stödjande kommentar.
var propUtils2 = Class.create(); propUtils2.prototype = Objekt.extendsObject(global. AbstractAjaxProcessor,{ getWebexccProp: function () { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_ webexcc.webexccactivitytable')); webexcc.addQuery ("callobject", actInfo.CallObject); webexcc.query (); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Den här raden har lagts till - för att hämta den i aktivitetsloggen webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); Aktiviteter i incidentregistret; var actInfoString = this.getParameter ('actInfo'); var suser = ny 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(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } returnera sys_id; }, typ: 'propUtils2' });
Redigera gränssnittssidan med ett nytt skriptnamn
Skapa en CAD-variabel i Flow designer
Lägga till CAD-variabeln i skrivbordslayouten
Demo skärmdumpar
Visa den nyligen tillagda CAD-variabeln i tabellen WebexCC-aktivitet.
