Integrera Webex Contact Center med ServiceNow (version 1 – äldre)
Förutsättningar
För närvarande gäller den här funktionen endast för agenter.
Innan du integrerar Webex Contact Center med Crm-konsolen för ServiceNow måste du se till att du har följande:
-
Åtkomst till Webex Contact Center.
-
Administratörsåtkomst till Control Hub på https://admin.webex.com och portalen Hantering av Webex Contact Center. URL:erna till 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 har lagts till i listan över tillåtna innehållssäkerhetspolicyer:
-
*.service-now.com
Mer information om hur du definierar listan 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å och https://developer.servicenow.com/dev.do klickar 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:
-
Uppdateringsuppsättning för ServiceNow (XML)
-
ServiceNow Contact Center, skrivbordslayout (JSON)
-
- ServiceNow-utgåvorna som Webex Contact Center stöder är Vancouver, Utah, Tokya, Washington och Xanadu. Mer information finns i Webex Contact Center-integrering med ServiceNow.
Följ en av de två metoderna nedan:
För utvecklarinstanser rekommenderar vi att du följer stegen i guiden 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 utvecklarnas sandlåda-instanser.
Följande avsnitt beskriver stegen för att installera ServiceNow-anslutningen för utvecklarinstanser.
1 |
Logga in på ditt ServiceNow-utvecklarportalkonto och öppna administrationskonsolen . |
2 |
I området Mitt instans i kontomenyn klickar du på Börja bygga. |
3 |
På din utvecklarinstans, från Filternavigator fältet längst upp till vänster i fönstret, navigera till Insticksprogram. |
4 |
Sök efter plugin-programmet Openframe med titeln Openframe. Du kanske måste bläddra igenom listan. |
5 |
Klicka på Installera för att installera insticksprogrammet för Openframe. |
6 |
Klicka på Aktivera i dialogruta aktiveringsmodulen . |
7 |
När aktiveringen av plugin-programmet är slutförd klickar du på Stäng och uppdatera formulär i dialogrutan Aktivering av plugin-program . |
8 |
Om du vill verifiera insticksprogrammets aktivering går du till OpenFrame i fältet Filtrera navigator längst upp till vänster i fönstret. |
9 |
Klicka på Konfigurationer och se till att insticksprogrammet OpenFrame visas i listan OpenFrame-konfigurationer . |
1 |
Hämta den senaste XML-filen för systemuppdateringsuppsättning som finns tillgänglig på github-repo 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 XML-filen för systemuppdateringsuppsättning och klicka sedan på Överför.
Uppdateringsuppsättningen visas i listan hämtade uppdateringsuppsättningar och är i inläst tillstånd.
|
5 |
I listan Hämtade uppdateringsuppsättningar klickar du på filnamnet för uppdateringsuppsättningen (länken) för att öppna uppdateringsuppsättningen. |
6 |
Klicka på Preview Update Set (Förhandsgranska uppdateringsuppsättning ) längst upp till höger i fönstret för att kontrollera om det finns problem i uppdateringsuppsättningen. |
7 |
Klicka på Stäng i dialogrutan Uppdatera inställning för förhandsgranskning när förhandsgranskningen är klar. |
8 |
Klicka på Bekräfta uppdaterings uppsättning. |
9 |
Klicka på Stäng i dialogrutan Förbind uppdateringsuppsättning när du har slutfört implementeringen av uppdateringsuppsättningen. |
1 |
I fältet Filternavigator längst upp till vänster i fönstret skriver du |
2 |
På sidan Systemegenskaper sorterar du egenskaperna efter uppdaterat datum. Kontrollera att du kan se följande Webex Contact Center-egenskaper : |
3 |
Klicka agentdesktop_url för att öppna sidan Systemegenskap agentdesktop_url . |
4 |
I fältet Värde anger du URL:en till Webex Contact Center-skrivbordet enligt region.
|
5 |
Klicka på Uppdatera för att spara ändringarna. |
6 |
(Valfritt) För att ändra tabellnamnet för aktivitet redigerar du de webexccactivitytable-egenskaper som krävs. 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 |
Gå till fältet Filtrera navigator och navigera 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 användar-/agentgrupp(er) för att tilldela konfigurationen. |
6 |
Klicka på Skicka in. URL:en visas som en länk. |
7 |
Innan du försöker använda OpenFrame-telefonen ska du se till att du laddar upp JSON-filen för anpassad skrivbordslayout för ServiceNow till portalen Hantering av Webex Contact Center. Mer information finns i Konfigurera skrivbordslayouten för ServiceNow i Webex Contact Center. |
1 |
Hämta skrivbordslayouten för ServiceNow från https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Uppdatera egenskaperna i filen för skrivbordslayout om det behövs. |
3 |
Gå till portalen Hantering av Webex Contact Center . |
4 |
Från navigeringsraden i hanteringsportalen väljer du |
5 |
Klicka på Ny layout och ange uppgifter om skrivbordslayouten. |
6 |
Överför JSON-filen för ServiceNows skrivbordslayout. |
7 |
Spara konfigurationen genom att klicka på Slutför. Nu kan du starta skrivbordet för Webex Contact Center i ServiceNow-konsolen. |
8 |
Från fältet Filternavigator navigerar du till . |
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 administrationskonsolen . |
2 |
I området Mitt instans i kontomenyn klickar du på Börja bygga. |
3 |
På din utvecklarinstans, från Filternavigator fältet längst upp till vänster i fönstret, navigera till Insticksprogram. |
4 |
Sök efter plugin-programmet Openframe med titeln Openframe. Du kanske måste bläddra igenom listan. |
5 |
Klicka på Installera för att installera insticksprogrammet för Openframe. |
6 |
Klicka på Aktivera i dialogruta aktiveringsmodulen . |
7 |
När aktiveringen av plugin-programmet är slutförd klickar du på Stäng och uppdatera formulär i dialogrutan Aktivering av plugin-program . |
8 |
Om du vill verifiera insticksprogrammets aktivering går du till OpenFrame i fältet Filtrera navigator längst upp till vänster i fönstret. |
9 |
Klicka på Konfigurationer och se till att insticksprogrammet OpenFrame visas i listan OpenFrame-konfigurationer . |
Instanser som har företagslicenser kan installera Webex Contact Center-programmet direkt från ServiceNow-butiken.
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 Filtrera navigator längst upp till vänster i fönstret anger du |
2 |
På sidan Systemegenskaper sorterar du egenskaperna efter uppdaterat datum. Kontrollera att du kan se följande Webex Contact Center-egenskaper : |
3 |
Klicka agentdesktop_url för att öppna sidan Systemegenskap agentdesktop_url . |
4 |
I fältet Värde anger du URL:en till Webex Contact Center-skrivbordet enligt region.
|
5 |
Klicka på Uppdatera för att spara ändringarna. |
6 |
(Valfritt) Om du vill ändra namnet på aktivitetstabellen redigerar du egenskaperna för x_caci_webexcc.webexccactivitytable efter behov.
|
7 |
(Valfritt) Lägg till användargrupper på följande sätt:
|
1 |
Gå till fältet Filtrera navigator och navigera 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 användar-/agentgrupp(er) för att tilldela konfigurationen. |
6 |
Klicka på Skicka in. URL:en visas som en länk. |
7 |
Från fältet Filternavigator navigerar du till . |
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 ska du se till att du laddar upp JSON-filen för anpassad skrivbordslayout för ServiceNow till portalen Hantering av Webex Contact Center. Mer information finns i Konfigurera skrivbordslayouten för ServiceNow i Webex Contact Center. |
1 |
Hämta skrivbordslayouten för ServiceNow från https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Uppdatera egenskaperna i filen för skrivbordslayout om det behövs. |
3 |
Gå till portalen Hantering av Webex Contact Center . |
4 |
Från navigeringsraden i hanteringsportalen väljer du |
5 |
Klicka på Ny layout och ange uppgifter om skrivbordslayouten. |
6 |
Överför JSON-filen för ServiceNows skrivbordslayout. |
7 |
Spara konfigurationen genom att klicka på Slutför. Nu kan du starta skrivbordet för Webex Contact Center i ServiceNow-konsolen. |
8 |
Från fältet Filternavigator navigerar du till . |
1 |
Från fältet Filternavigator navigerar du till Incidenter > Öppna incidenter. |
2 |
Högerklicka på fältet för inringare och klicka på Konfigurera ordbok. |
3 |
Lägg till kommaavgränsade 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 har för närvarande inte stöd för inloggning till Agent Desktop med skrivbordsalternativet (WebRTC).
Agentskrivbord i ServiceNow-konsolen
Innan du ringer upp uppringda samtal ska du se till att göra följande:
-
Skapa en outdial entry point och ange en outdial start punkt strategi.
-
Aktivera uppringning ANI för agentprofilen.
-
Ställ in uppringnings-ANI på en mappning med nummer-till-startpunkt.
Mer information finns i kapitlet Reservering i Konfigurations- och administrationsguide för Cisco Webex Contact Center.
Från fältet Filternavigator navigerar du till .
Mer information om hur du använder skrivbordet finns på fliken Agent i hjälpen till Webex Contact Center.
Översikt
Den här artikeln beskriver flera sätt att anpassa dina affärsregler för ServiceNow CRM-anslutningen. Här beskrivs 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 för Webex Contact Center-programvara eller -expertis.
Detta är en referensdokumentation som hjälper till att ändra företagsreglerna. ServiceNow-utvecklarna skapar och hanterar affärsreglerna och tillhandahåller support.
Cisco tillhandahåller endast exempeldokumentation.
Följande avsnitt innehåller information om hur du konfigurerar, aktiverar och hanterar åtgärdskomponenten för utvecklings- och företagsinstanser.
Förbind uppdateringsuppsättningen för åtgärdskomponenten
För licensierade företagsinstanser installerar du den senaste Webex Contact Center-appen från ServiceNow-butiken.
Om du vill konfigurera widgeten Actions för utvecklarinstanser hämtar du den senaste XML-filen för systemuppdateringsuppsättning som finns tillgänglig på github-repo 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. Se steg 2 till 9 i Förbinda uppdateringsuppsättningen om du vill utföra uppdateringsuppsättningen för widgeten Actions.
Aktivera widget för åtgärder
Använd egenskapen isWidgetDisplayEnabled för att aktivera widgeten Actions. Du får inte ändra den här egenskapens värde i avsnittet för den anpassade skrivbordslayouten. Egenskapen är alltid inställd på false i den anpassade skrivbordslayoutens huvudlösa 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 för att visa listan med aktivitetsposter som är associerade med 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 i aktivitetsposten.
- Hantera incidenter – klicka på Skapa incident. En ny incident skapas med inringningsinformationen ifylld. Du kan göra de nödvändiga uppdateringarna av incidenten. Du kan välja att ändra registreringstypen från incident till fall, HR-modul och så vidare baserat på dina krav. Om du vill ändra inspelningstypen ändrar du värdet för egenskapen typeOfRecord i widgetkonfigurationen för åtgärder. Till exempel:
{"comp": "md-tab-panel", "attribut": {"slot": "panel", "class": "widget-pane" }, "barn": [{"comp": "agentx-custom-desktop", "skript": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "egenskaper": {"isWidgetDisplayEnabled": sant, "typeOfRecord": "Skapa incident" }, "wrapper": {"title": "SNOW Actions!", "maximizeAreaName": "app-maximize-area" } } ] }
- Lägg till live-samtalsanteckningar – Du kan samla in ytterligare information om samtalet i textområdet och avsluta samtalet. Du kan se dessa anteckningar som har lagts till 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 inkluderar under Systemgränssnitt.
-
Filtrera Namn och sök efter
propUtils
. -
Ändra metoden
UserGetSysId
i skriptet.Kurent:
AnvändarGetSysId: function () { var opened_for; var user = ny GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=användare.sys_id; var grInt = ny GlideRecord('interaktion'); 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:
AnvändarGetSysId: funktion () { var opened_for; //Incidentrelaterade ändringar var sysidlist = {}; var användare = ny GlideRecordSecure (”sys_user"); user.addQuery(this.getParameter('field'), this.getParameter('value')); user.query(); om(user.next()) { opened_for=användare.sys_id;//returnera användare.sys_id; var inc = ny 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; inkl.contact_type=”telefon”; inkl.short_description='Samtal mottaget från '+ this.getParameter('värde'); sysidlist.incsysid=inc.insert(); } } var grInt = ny GlideRecordSecure('interaktion'); 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); },
-
Gå till filternavigatorn och sök efter
användarsidan
.Välj UI-sidor under Systemgränssnitt.
-
Filtrera Namn och sök efter
agentdesktop
. -
Ändra funktionen
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: ”interaktion”, fråga: 'sys_id='+sysid }),
Exempelkod för incidenten:
// 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(); // För incidentrelaterad ändring var sysObj = JSON.parse(gaout.getAnswer()); om(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: ”incident”, fråga: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: ”incident”, fråga: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); }}
Om inringningsinformationen finns i CRM och det redan finns en ny incident öppnad med den här kontakten, öppnar programmet den pågående incidenten
Om inringningsinformationen inte finns i CRM öppnar programmet en ny incident
Om inringningsinformationen finns i CRM öppnar programmet 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 tabellen ServiceNow – webexcc_imp_activity och skapa sn_openframe_phone_log när du installerar Webex CC för ServiceNow CRM-anslutning.
Som standard innehåller tabellen vissa fält och värden utanför rutan system.
Du kan skapa fler företagsspecifika variabler (CAD-variabler) i WebexCC-flödesdesignern och lägga till CAD-variablerna i ServiceNow-aktivitetsloggen efter samtal samt behålla detta i tabelldata för aktivitet efter samtal.
Detta är endast en referensdokumentation – och visar hur man gör detta för en exempelCAD-variabel som kallas kundnamn som lagrar kundnamnet i IVR och lägger upp det i ServiceNow.
Det förväntas att ServiceNow-utvecklarna för partner+kund kommer att konfigurera och hantera denna konfiguration eftersom det är en anpassning till den befintliga anslutningen.
Cisco tillhandahåller endast tekniker för att anpassa och utöka anslutningen.
Från och med den här artikeln har Cisco-teamet validerat stöd för att lägga till CAD-variabel i aktivitetsloggen och aktivitetstabellen med den teknik 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.
Välj
Webex Contact Center
eller
-
Välj tabellen
WebexCC IMP-aktivitet
-
Lägg till en ny kolumn, till exempel
Kundnamn
Lägg till kolumn i telefonloggen
-
Redigera telefonens loggtabell.
-
Lägg till en ny kolumn, till exempel
Kundnamn
.
Karta över WebexCC-aktivitet
Lägg till en ny kolumn, till exempel Kundnamn
fältmappning.
Anpassa listkolumner
Ändra Val-åtgärden från att skapa till att ignorera som Tjänst nu rekommenderar.
Konfigurera telefonlogglista
Gå till skriptinkludera
Lägg endast till en linje webexcc.u_customername=actInfo.Kundnamn
i propUtils.
Exempelskript
Se raden: webexcc.u_customername=actInfo.Kundnamn; med en stödjande kommentar.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp : funktion () { 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'); returnera JSON.stringify(webexccprop); }, UserGetSysId : function () { var opened_for; var user = ny GlideRecord("sys_user"); user.addQuery(this.getParameter('field'), this.getParameter('value')); user.query(); if (user.next()) opened_for=användare.sys_id;//returanvändare.sys_id; // else // returnull; var grInt = ny GlideRecord('interaktion'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefon'; grInt.opened_for= opened_for; var sysid=grInt.insert(); returnera sysid; }, setWebexcctable : funktion () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = ny GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Den här raden läggs till – för att registrera den i aktivitetsloggen webexcc.u_customername=actInfo. kundnamn; sys_id=webexcc.insert(); //Aktiviteter på incidentpost; var actInfoString =this.getParameter('actInfo'); var suser = ny GlideRecordSecure("sys_user"); suser.addQuery("telefon", this.getParameter('ani')); suser.query(); om(suser.next()) { var inc = ny GlideRecordSecure('incident'); inc.addQuery('caller_id', suger.sys_id); inc.orderByDesc(')sys_created_on'); inc.query(); om (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } returnera sys_id; }, skriv: ”propUtils” }),
Skapa en CAD-variabel i flödesverktyget
Lägg till CAD-variabeln i skrivbordslayouten
Exempel
"CadName1:SnowField1,CadName2:SnowField2" CadName1 är CustomerName SnowField1 används också som CustomerName som ingår i exempel scirpt showen ovan "actInfo.CustomerName".
Demoskärmbilder
Visa den nyligen tillagda CAD-variabeln i WebexCC-aktivitetstabellen.
Skapa CAD-variabel för flödesverktyget
Brådskande händelsePåverkan på incidenter
Skriptuppdatering för Service Now
Uppdateringar av skriptet inkluderar
-
Gå till filternavigatorn och sök efter
skriptet innehåller
Välj alternativet Skriptinkludera under Systemgränssnitt.
-
Filtrera namnet med
propUtils
. -
Ändra metoden
UserGetSysId
i fältet Script .Aktuellt skript:
AnvändarGetSysId: function () { var opened_for; var user = ny GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=användare.sys_id; var grInt = ny GlideRecord('interaktion'); 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:
AnvändarGetSysId: funktion () { var opened_for; var sysidlist = {}; var användare = ny GlideRecordSecure (”sys_user"); user.addQuery(this.getParameter('field'), this.getParameter('value')); user.query(); om(user.next()) { opened_for=användare.sys_id;//returnera användare.sys_id; var inc = ny 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; inkl.contact_type='phone'; 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 = ny GlideRecordSecure('interaktion'); 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
gränssnittssidor
.Välj alternativet UI-sidor under Systemgränssnitt.
-
Filtrera UI-sidorna med Namn och sök efter
agentdesktop
. -
Ändra funktionen
screenpop
i skriptfältet.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: ”interaktion”, fråga: 'sys_id='+sysid }); }
Exempelkod för incidenten:
// screen pop-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 != odefinierad) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = ny GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('fält', 'telefon'); gaout.addParam('värde', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); om(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: ”incident”, fråga: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: ”incident”, fråga: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem(”screenpopinteraction”,JSON.stringify(sysObj)); }
Om inringningsinformationen 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 tabellen WebexCC IMP-aktivitet
Öppna tabellen WebexCC IMP-aktivitetLägg till en ny kolumn – InteractionsNumber Lägg till ny kolumn – IncidentNumber
Klicka på Uppdatera.
Lägg till nya kolumner i tabellen Telefonlogg
Öppna tabellen Telefonlogg
Karta över WebexCC-aktivitet
Öppna transformationskartan
från filternavigatorn
Klicka på WebexCC aktivitetstransform
Klicka på Uppdatera.
Ändringar i skript inkluderar
-
Gå till filternavigatorn och sök efter ”skriptet innehåller”.
Välj Skriptet inkluderar under Systemgränssnitt.
-
Filtrera namnet med
propUtils
. -
Ändra metoden
setWebexcctable
.Ny exempelkod för Incident:
setWebexcctable: funktion () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = ny 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']; ta bort actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != odefinierad){ var inte = ny GlideRecordSecure('interaktion'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); om (inte.next()) { intenum=inte.number; // inte.setValue('state', 'Stängd slutförd'); inte.work_notes='Uppdatera status till stängd.'; inte.update(); }} om( incsysid!= null && incsysid != odefinierad){ var inci = ny 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(); om(suser.next()) { var inc = ny GlideRecordSecure('incident'); inc.addQuery('caller_id', suger.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); om (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.könamn; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.Aktivitetsdatum; 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å användargränssnittssidor
-
Gå till filternavigatorn och sök efter
användargränssnittssidor
Välj alternativet UI-sidor under Systemgränssnitt.
-
Filtrera UI-sidorna med
Namn
och sök efter agentdesktop. -
Ändra funktionen
nowActivities 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:
funktion nuActivities(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('ani', 'setWebexcctable'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'telefon'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysObj = JSON. ”incident”, fråga: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: ”incident”, fråga: '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 av de nyare versionerna 1.0.7 och senare följer du stegen ovan.
Anpassning nr 1 – Lägg till anpassade affärsregler för användningsfall för samtalsflöde
Skapa en ny incidentpost för varje samtalSkapa en ny incidentpost för varje nytt samtal till WebexCC CRM-anslutningen i ServiceNow.
Sök efter affärsregler i filternavigatorn
Klicka på Ny.
Exempelkod för referens:
funktion customcti () { var url = null; var namn = sysparm_caller_name; ed = sysparm_caller_id; var telefon = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; om (vy == null || view == '') view = "itil"; var userID = null; om (eid != null && eid != '') { userID = UserGetSysId ("employee_number",eid); } om (användar-ID == null && namn != null && namn != '') { userID = UserGetSysId("namn", namn); } om (användar-ID == null && telefon != null && telefon != '') { userID = UserGetSysId("telefon", telefon); } om (användar-ID != null) { om (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + användar-ID; } om (url == null) { url = "incident.do?sys_id=-1”; om (fQuery != null) url += "&sysparm_query=" + fQuery; } svar = url; returadress; } funktion UserGetSysId (fält, värde) { var user = ny GlideRecord("sys_user"); user.addQuery(fält, värde); user.query(); om (user.next()) returnerar användaren.sys_id; annars returneras null; }
Exempelkonfiguration av affärsregeln
Aktivera klient som kan ringas upp
Bearbetning av CTI (Computer Telephony Integration) For Incident är markerat som True.
Uppdatera URL för skärmpopup med den anpassade CTI-regeln " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
sysparm_cti_rule=namn där ”namn” är namnet på en funktion ska anropas för CTI-bearbetning istället för att använda standardskriptet.
Definiera funktionen i en sys_script post märkt klient som kan ringas upp.
Om du måste infoga, uppdatera eller ta bort någon(a) GlideRecord(er) i funktionen ska du ringa en separat funktion som inte kan ringas upp av klienten för att utföra uppdateringarna.
För att göra en skriptklient uppringbar måste du markera kryssrutan för klientsamtal på formuläret som visas när sys_script posten visas.
Den klientuppringningsbara kryssrutan visas inte som standard. För att visa måste du ändra fälten som visas på formuläret med kugghjulsikonen och slush bucket-mekanismen.
Anpassning nr 2 – Lägg till CAD-variabel i aktivitetstabellen för Webex Contact Center
ÖversiktI den här artikeln beskrivs processen för att lägga till en extra kolumn i tabellen ServiceNow – webexcc_activity som skapas när du installerar Webex CC för ServiceNow CRM-anslutning.
Som standard innehåller tabellen fält och värden utanför systemet.
Du kan eventuellt skapa fler företagsspecifika variabler (CAD-variabler) i WebexCC-flödesdesignern och lägga till CAD-variablerna i loggen för aktivitet efter samtal och behålla detta i data i tabellen för aktivitet efter samtal .
-
Detta är endast referensdokumentation – och visar hur man gör detta för en exempelCAD-variabel som kallas kundnamn som lagrar kundnamnet i IVR och lägger upp det i ServiceNow.
-
Partner+Customer ServiceNow-utvecklarna konfigurerar och hanterar denna konfiguration eftersom det är en anpassning till den befintliga anslutningen.
-
Cisco tillhandahåller endast tekniker för att anpassa och utöka anslutningen.
-
Från och med den här artikeln har Cisco-teamet validerat stöd för att lägga till CAD-variabel i aktivitetsloggen och aktivitetstabellen med den teknik som beskrivs nedan.
Redigera tabellen i utvecklarversionen av ServiceNow.
Gå till
.Välj tabellen WebexCC-aktivitet .
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 måste läggas till ”webexcc.u_customername=actInfo.CustomerName” i propUtils.
Exempelskript
Se raden med:webexcc.u_customername=actInfo.Kundnamn; med en stödjande kommentar.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp : funktion () { 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'); returnera JSON.stringify(webexccprop); }, setWebexcctable : funktion () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = ny GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // Den här raden läggs till – för att registrera den i aktivitetsloggen webexcc.u_customername=actInfo. kundnamn; sys_id=webexcc.insert(); // Aktiviteter på incidentposten; var actInfoString =this.getParameter('actInfo'); var suser = ny GlideRecordSecure("sys_user"); suser.addQuery("telefon", this.getParameter('ani')); suser.query(); om(suser.next()) { var inc = ny GlideRecordSecure('incident'); inc.addQuery('caller_id', suger.sys_id); inc.orderByDesc(')sys_created_on'); inc.query(); om (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(skådespelarsträng),null,2); inc.comments =jsonPretty; inc.update(); } } } returnera sys_id; }, skriv: ”propUtils2” });
Redigera gränssnittssidan med ett nytt skriptnamnSkapa en CAD-variabel i flödesverktyget
Lägg till CAD-variabeln i skrivbordslayouten
Demoskärmbilder
Visa den nyligen tillagda CAD-variabeln i WebexCC-aktivitetstabellen.