Integrera Webex Contact Center med ServiceNow
När du integrerar Webex Contact Center med ServiceNow CRM-konsolen kan du starta Webex Contact Center Desktop inifrån ServiceNow.
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 ska du kontrollera att du har följande:
-
Tillgång till Webex kontaktcenter.
-
Administratörsåtkomst till Control Hub på https://admin.webex.com och Webex Contact Center Management Portal. URL:erna för hanteringsportalen är specifika för din region.
-
Nordamerika: https://portal.wxcc-us1.cisco.com
-
Storbritannien: https://portal.wxcc-eu1.cisco.com
-
Singapore: https://portal-v2.wxcc-sg1.cisco.com
-
-
En agent med åtkomst till skrivbordet. URL:en för skrivbordet är specifik för din region.
-
Nordamerika: https://desktop.wxcc-us1.cisco.com
-
Storbritannien: https://desktop.wxcc-eu1.cisco.com
-
Singapore: https://desktop.wxcc-sg1.cisco.com
-
-
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.
-
Tillgång 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 Webex Integrering av kontaktcenter 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 XML filen med systemuppdateringsuppsättningen 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 den anpassade JSON-filen med ServiceNow-skrivbordslayouten till Webex Contact Center Management Portal. 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 för 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. Nu kan du 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 till vä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 Webex Contact Center-paketet 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 Desktop från Tillgänglig till Vald. |
9 |
Innan du försöker använda OpenFrame-telefonen måste du ladda upp den anpassade JSON-filen med ServiceNow-skrivbordslayouten till Webex Contact Center Management Portal. 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 för 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. Nu kan du starta Webex Contact Center Desktop i ServiceNow-konsolen. |
8 |
I fältet Filternavigatör navigerar du till . |
1 |
I fältet Filternavigator navigerar du till Incidenter > Öppna incident. |
2 |
Högerklicka på uppringarfältet och klicka på Konfigurera ordlista. |
3 |
Lägg till kommaseparerade attribut Nu kan du börja använda Webex Contact Center Desktop i ServiceNow-konsolen. |
4 |
I fältet Filternavigatör navigerar du till . |
Agent Desktop i ServiceNow-konsolen
Innan du ringer uppringningssamtal bör du se till att göra följande:
-
Skapa startpunkten för outdial och ställ in en strategi för outdial-startpunkt.
-
Aktivera outdial ANI för agentprofilen.
-
Ställ in ANI för uppringning till en uppringningsnummer-till-ingångspunkt-mappning.
Mer information finns i kapitlet Etablering i Cisco Webex Contact Center Installations- och administrationshandboken.
I fältet Filternavigatör navigerar du till .
Information om hur du använder Desktop finns på fliken Agent i hjälpen för Webex Contact Center.
Ö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 för att underlätta ändring av affärsregler. ServiceNow-utvecklarna skapar och hanterar affärsreglerna och ger support.
Cisco tillhandahåller endast exempeldokumentation.
Följande avsnitt innehåller information om hur du konfigurerar, aktiverar och hanterar åtgärdswidgeten för utvecklare och företagsinstanser.
Genomför widgeten Uppdateringsuppsättning för åtgärder
För licensierade företagsinstanser installerar du den senaste Webex Contact Center-appen från ServiceNow-butiken .
Om du vill konfigurera widgeten Åtgärder för utvecklarinstanserna laddar du ned den senaste filen XML Systemuppdateringsuppsättning som finns på GitHub-lagringsplatsen 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. Information om hur du sparar uppdateringsuppsättningen för widgeten Åtgärder finns i steg 2 till 9 i Genomför 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-avsnitt. Egenskapen är alltid inställd på false i den anpassade skrivbordslayoutens headless-avsnitt. 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 om du vill visa listan över aktivitetsposter som är kopplade till uppringaren.
- Koppla CRM-objekt – Klicka på Koppla till aktivitetsposter om du vill lägga till CRM-objekt som samtalstyp (inkommande eller utgående), samtalsobjekt, samtalsanteckningar och så vidare i aktivitetsposten.
- Hantera incidenter – klicka på Skapa incident. En ny incident skapas med information om uppringaren ifylld. Du kan göra nödvändiga uppdateringar av händelsen. Du kan välja att ändra posttypen från incident till ärende, HR-modul och så vidare baserat på dina krav. Om du vill ändra posttypen ändrar du värdet för egenskapen typeOfRecord i widgetkonfigurationen Å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" : "Create Incident" }, "wrapper": { "title": "SNOW Actions!", "maximizeAreaName": "app-maximize-area" } } ] }
- Lägg till anteckningar om livesamtal – Du kan samla in ytterligare information om samtalet i textområdet 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
Skriptet innehåller
.Välj skriptet som ingår under Systemgränssnitt.
-
Filtrera namnet och sök efter
propUtils
. -
Ändra metod
UserGetSysId
I skriptet .Nyfiken:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); 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('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 = ny GlideRecordSecure ("interaktion"). grInt.initiera(); grInt.assigned_to= gs.getUserID(); grInt.type = 'telefon'; grInt.opened_for = opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; returnera JSON.stringify(sysidlist); },
-
Gå till filternavigatorn och sök efter
UI-sidan
.Välj gränssnittssidor under Systemgränssnitt.
-
Filtrera namnet och sök efter
AgentDesktop
. -
Ändra
Screenpop
i klientskript.Nuvarande funktion:
screen pop-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(); 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 gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // For Incident-related change var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Om uppringarinformationen finns i CRM och det redan finns en ny incident som har öppnats med den här kontakten, öppnar programmet den pågående incidenten
Om uppringarinformationen inte finns i CRM öppnar programmet en ny incident
Om uppringarinformationen finns i CRM öppnar programmet en ny incident med förifylld information
Översikt
Det här användningsfallet beskriver processen för att lägga till en extra kolumn i tabellen ServiceNow – webexcc_imp_activity och skapa sn_openframe_phone_log vid installationen 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 företagsspecifika variabler (CAD-variabler) inuti WebexCC-flödesdesignern och lägga till CAD-variablerna i ServiceNow-aktivitetsloggen efter samtal, samt bevara detta i aktivitetstabelldata efter samtal.
Detta är endast en 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.
Det förväntas att partner+kunden 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 anslutningen.
Från och med den här artikeln har Cisco-teamet validerat stöd för tillägg av CAD-variabel i aktivitetsloggen och aktivitetstabellen med hjälp av tekniken som beskrivs nedan:
Lägg till kolumn i WebexCC IMP-aktivitet
-
Redigera tabellen i utvecklarversionen av ServiceNow.
-
Gå till filternavigatorn och sök efter studio.
Markera
Webex Contact Center
eller
-
Välj ikonen
WebexCC IMP-aktivitet
bord -
Lägg till en ny kolumn, till exempel
CustomerName
Lägg till kolumn i telefonloggen
-
Redigera telefonloggtabellen.
-
Lägg till en ny kolumn, till exempel
CustomerName
.
Karta över WebexCC-aktivitetstransformering
Lägg till en ny kolumn, till exempel CustomerName
fältmappning.
Anpassa listkolumner
Som Service Now rekommenderar ändrar du åtgärden Val från skapa till ignorera.
Konfigurera telefonlogglista
Gå till skript Inkludera
Lägg bara till en rad webexcc.u_customername=actInfo.CustomerName
Till propUtils.
Exempel på skript
Se raden: webexcc.u_customername=actInfo.CustomerName; med en stödjande kommentar.
var propUtils = Class.create(); propUtils.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); }, 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;//returnera user.sys_id; else // returnera null; var grInt = ny GlideRecord ('interaktion'); grInt.initiera(); grInt.assigned_to= gs.getUserID(); grInt.type = 'telefon'; grInt.opened_for = opened_for; var sysid=grInt.insert(); returnera 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; Den här raden läggs till – för att samla in 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(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } returnera sys_id; }, typ: 'propUtils' });
Skapa en CAD-variabel i Flow designer
Lägga till CAD-variabeln i skrivbordslayouten
Exempel
"CadName1:SnowField1,CadName2:SnowField2" CadName1 är CustomerName SnowField1 används också som CustomerName, som är en del av exemplet scirpt showen ovanför "actInfo.CustomerName".
Demo skärmdumpar
Visa den nyligen tillagda CAD-variabeln i tabellen WebexCC-aktivitet.
Skapa CAD-variabel för Flow Designer
Brådskande incidentIncidentens påverkan
Skriptuppdatering för Service Now
Uppdateringar av skriptet omfattar
-
Gå till filternavigatorn och sök efter
skript som innehåller
Välj alternativet Skript innehåller under Systemgränssnitt.
-
Filtrera namnet med
propUtils
. -
Ändra metod
UserGetSysId
I fältet Skript .Aktuellt skript:
UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); 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('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 = ny GlideRecordSecure ("interaktion"). grInt.initiera(); 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
gränssnittssidor
.Välj alternativet UI-sidor under Systemgränssnitt.
-
Filtrera gränssnittssidorna med Namn och sök efter
agentdesktop
. -
Ändra
Screenpop
I skriptfältet.Nuvarande funktion:
skärmpopfunktion 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ärmpopfunktion screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null &&; callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null &&; callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax ('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('fält', 'telefon'); gaout.addParam('värde', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Påverkan', påverkan); 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)); }
Om uppringarinformationen 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ägga till nya kolumner i WebexCC IMP-aktivitet
bord
Öppna WebexCC IMP-aktivitetbord Lägg till en ny kolumn - InteractionsNumber Lägg till en ny kolumn - IncidentNumber
Klicka på Uppdatera.
Lägga till nya kolumner i Telefonlogg
bord
Öppna Telefonlogg
bord
Karta över WebexCC-aktivitetstransformering
Öppen Omforma karta
Från filternavigatorn
Klicka på WebexCC Activity 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
.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()) { //Aktiviteter på incidentpost; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; 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ä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("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis = actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.avslutningstid; 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å gränssnittssidor
-
Gå till filternavigatorn och sök efter
UI-sidor
Välj alternativet UI-sidor under Systemgränssnitt.
-
Filtrera gränssnittssidorna med Namn och sök efter
agentdesktop
. -
Ändra
nowAktiviteter och screenpop
I skriptet.Nuvarande funktion:
function nowActivities(actInfo, ani) { var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }
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 gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML (SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Resultat efter uppdateringen
Följande anpassningar gäller för version 1.0.5 och tidigare. För anpassningar för de nyare versionerna 1.0.7 och senare följer du stegen ovan.
Anpassning # 1 - Lägg till anpassade affärsregler för användningsfall för samtalsflöden
Skapa en ny incidentpost för varje samtalSkapa en ny incidentpost för varje nytt anrop till WebexCC CRM-anslutningsappen i ServiceNow.
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 CTI (Computer Telephony Integration) för incident markeras som sant.
Uppdatera screenpop-URL:en med den anpassade CTI regeln" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
Bearbetningen sysparm_cti_rule= namn där 'namn' är namnet på en funktion ska anropas för CTI bearbetning 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 infoga, 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 företagsspecifika variabler (CAD-variabler) i WebexCC-flödesdesignern och lägga till dessa CAD-variabler i ServiceNow-aktivitetsloggen efter samtal och bevara detta i aktivitetstabelldata efter samtal.
-
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 anslutningen.
-
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 kontaktcentret
Webex.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 Update Set 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 skriptnamnSkapa 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.