Integrer Webex Contact Center med ServiceNow (version 1—Legacy)
Forudsætninger
Den mindste understøttede størrelse for softphone-grænsefladen er 500px. Enhver værdi, der er lavere end 500 px, kan resultere i problemer med visning eller funktionalitet.
Før du integrerer Webex Contact Center med ServiceNow CRM-konsollen, skal du sikre dig, at du har følgende:
-
Adgang til Webex Contact Center.
-
Administratoradgang til Control Hub på https://admin.webex.com og Webex Contact CenterManagement Portal. URL-adresserne for Management Portal er specifikke for din region.
-
En agent med adgang til skrivebordet. Webadressen til skrivebordet er specifik for dit område.
-
Agentadgang til følgende domæne, der er tilføjet på listen Tilladt politik for indholdssikkerhed:
-
*.service-now.com
Du kan finde flere oplysninger om, hvordan du definerer den tilladte liste, i artiklen Sikkerhedsindstillinger for Webex Contact Center.
-
-
En ServiceNow-udviklerportalkonto. For at oprette en konto skal du gå til ServiceNow-udviklerportalen på https://developer.servicenow.com/dev.do og klikke på Tilmeld dig og start opbygning.
-
Adgang til følgende filer på https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow opdateringssæt (XML)
-
ServiceNow Contact Center-skrivebordslayout (JSON)
-
- ServiceNow-udgaverne, som Webex Contact Center understøtter, er Vancouver, Utah, Tokya, Washington og Xanadu. Du kan finde flere oplysninger under Webex Contact Center Integration med ServiceNow.
Følg en af de to metoder nedenfor:
- For udviklerinstanser anbefaler vi, at du følger trinene i vejledningen til udviklerinstanser.
- Hvis du ejer en forekomst med virksomhedslicenser, skal du følge retningslinjerne for forekomster med virksomhedslicenser.
Vi anbefaler ikke at blande den virksomhedslicenserede app med udviklersandkasseforekomster.
Digitale kanaler som chat og e-mail understøttes ikke med CRM-stik. Dette gælder for alle CRM-integrationer, der bruger disse stik. Planlæg dine implementerings- og kundeengagementsarbejdsprocesser i overensstemmelse hermed.
I de følgende afsnit beskrives trinene til installation af ServiceNow-forbindelsen til udviklerforekomster.
| 1 |
Log ind på din ServiceNow-udviklerportalkonto, og åbn administr ationskonsollen. |
| 2 |
Klik på Start opbygning i området Min forekomst i menuen Kon to.
|
| 3 |
På din udviklerinstans skal du gå til Plugins fra filternavigator feltet øverst til venstre i vinduet.
|
| 4 |
Søg efter Openframe-plugin, der har titlen Open frame. Du skal muligvis rulle gennem listen.
|
| 5 |
Klik på Installer for at installere Openframe-pluginet. |
| 6 |
Klik på Aktiver i dialogboksen Akti ver plugin.
|
| 7 |
Når plugin-aktiveringen er fuldført, skal du klikke på Luk og genindlæse formular i dialogboksen Pluginaktivering.
|
| 8 |
For at kontrollere plugin-aktiveringen skal du navigere til OpenFrame fra filternavigator feltet øverst til venstre i vinduet. |
| 9 |
Klik på Konfigurationer, og sørg for, at OpenFrame-pluginet vises på listen OpenFrame-konfigurationer.
|
| 1 |
Filnavn: Web Excc-ServiceNow-Update-Setv (X) .xml
|
| 2 |
På din ServiceNow-forekomst skal du gå til , der skal udføres, i feltet Filternavigator øverst til venstre i vinduet.
|
| 3 |
Klik på linket Importer opdateringssæt fra XML.
|
| 4 |
Klik på Vælg fil, vælg XML-filen Systemopdateringssæt, og klik derefter på Upload.
Opdateringssættet vises på listen Hentede opdateringssæt og er i tilstanden Indlæst.
|
| 5 |
Klik på linket Update Set File Name (linket) på listen Hentede opdateringssæt for at åbne opdateringssættet.
|
| 6 |
Klik på Vis opdateringssæt øverst til højre i vinduet for at kontrollere, om der er problemer i opdateringssættet.
|
| 7 |
Klik på Luk i dialogboksen Update Set Preview, når forhåndsvisningen er afsluttet.
|
| 8 |
Klik på Gennemfør opdateringssæt.
|
| 9 |
Klik på Luk i dialogboksen Update Set Commit, når valideringen af Update Set er fuldført.
|
| 1 |
Skriv
|
| 2 |
Sorter egenskab erne efter opdateret dato på siden Systemegenskaber. Sørg for, at du kan se følgende Webex Contact Center-egenskaber:
|
| 3 |
Klik agentdesktop_urlfor at åbne agentdesktop_url siden Systemegen skab. |
| 4 |
I feltet Vær di skal du indtaste URL'en til Webex Contact Center- skrivebordet i henhold til driftsområdet.
|
| 5 |
Klik på Opdater for at gemme ændringerne. |
| 6 |
(Valgfrit) Hvis du vil ændre navnet på tabellen Aktivitet, skal du redigere egenskaberne webexccactivit ytable efter behov. Klik på webex ccactivitytable på siden Systemegenskaber. Skift feltet Vær di efter behov.
|
| 7 |
(Valgfrit) Tilføj brugergrupper på følgende måder:
|
| 1 |
Gå til > Konfigurationer i feltet Filternavigator.
|
| 2 |
Klik på Ny.
|
| 3 |
Indtast følgende egenskaber for URL'en:
|
| 4 |
Til højre for URL-feltet skal du klikke på knappen Lås og tilføje
|
| 5 |
(Valgfrit) Vælg den bruger- eller agentgruppe (er), der skal tildeles konfigurationen.
|
| 6 |
Klik på Send. URL'en vises som et link.
|
| 7 |
Før du forsøger at bruge OpenFrame-telefonen, skal du sørge for, at du uploader den brugerdefinerede ServiceNow JSON-fil til Webex Contact Center. Management Portal Du kan finde flere oplysninger under Konfigurere ServiceNow-skrivebordslayout på Webex Contact Center. |
| 1 |
|
| 2 |
Opdater egenskaberne i skrivebordslayoutfilen, hvis det er nødvendigt. |
| 3 |
Gå til Webex Contact CenterManagement Portal. |
| 4 |
Vælg K på Management Portal navigationslinjen.
|
| 5 |
Klik på Nyt layout, og angiv detaljerne for skrivebordslayoutet. |
| 6 |
Upload ServiceNow Desktop Layout JSON-filen. |
| 7 |
Klik på Gem for at gemme konfigurationen. Du kan nu starte Webex Contact Center- skrivebordet i ServiceNow-konsollen. |
| 8 |
Fra feltet Filternavigator navigerer du til .
|
I de følgende afsnit beskrives trinene til installation af ServiceNow-forbindelsen til licenserede virksomhedsforekomster.
| 1 |
Log ind på din ServiceNow-udviklerportalkonto, og åbn administr ationskonsollen. |
| 2 |
Klik på Start opbygning i området Min forekomst i menuen Kon to.
|
| 3 |
På din udviklerinstans skal du gå til Plugins fra filternavigator feltet øverst til venstre i vinduet.
|
| 4 |
Søg efter Openframe-plugin, der har titlen Open frame. Du skal muligvis rulle gennem listen.
|
| 5 |
Klik på Installer for at installere Openframe-pluginet. |
| 6 |
Klik på Aktiver i dialogboksen Akti ver plugin.
|
| 7 |
Når plugin-aktiveringen er fuldført, skal du klikke på Luk og genindlæse formular i dialogboksen Pluginaktivering.
|
| 8 |
For at kontrollere plugin-aktiveringen skal du navigere til OpenFrame fra filternavigator feltet øverst til venstre i vinduet. |
| 9 |
Klik på Konfigurationer, og sørg for, at OpenFrame-pluginet vises på listen OpenFrame-konfigurationer.
|
Forekomster, der har virksomhedslicenser, kan installere Webex Contact Center-applikationen direkte fra ServiceNow Store.
|
|
| 1 |
Skriv i feltet Filternavigator øverst til venstre i vinduet
|
| 2 |
Sorter egenskab erne efter opdateret dato på siden Systemegenskaber. Sørg for, at du kan se følgende Webex Contact Center-egenskaber:
|
| 3 |
Klik agentdesktop_urlfor at åbne agentdesktop_url siden Systemegen skab. |
| 4 |
I feltet Vær di skal du indtaste URL'en til Webex Contact Center- skrivebordet i henhold til driftsområdet.
|
| 5 |
Klik på Opdater for at gemme ændringerne. |
| 6 |
(Valgfrit) Hvis du vil ændre navnet på tabellen Aktivitet, skal du redigere egenskaberne x_caci_webexcc.webexccactiv itytable efter behov.
|
| 7 |
(Valgfrit) Tilføj brugergrupper på følgende måder:
|
| 1 |
Gå til > Konfigurationer i feltet Filternavigator.
|
| 2 |
Klik på Ny.
|
| 3 |
Indtast følgende egenskaber for URL'en:
|
| 4 |
Til højre for URL-feltet skal du klikke på knappen Lås og tilføje
|
| 5 |
(Valgfrit) Vælg den bruger- eller agentgruppe (er), der skal tildeles konfigurationen.
|
| 6 |
Klik på Send. URL'en vises som et link.
|
| 7 |
Fra feltet Filternavigator navigerer du til .
|
| 8 |
(Valgfrit) På listen Brugergruppe skal du flytte de brugergrupper, der kan få adgang til Webex Contact Center- skrivebordet, fra Til gæng elig til Valgt. |
| 9 |
Før du forsøger at bruge OpenFrame-telefonen, skal du sørge for, at du uploader den brugerdefinerede ServiceNow JSON-fil til Webex Contact Center. Management Portal Du kan finde flere oplysninger under Konfigurere ServiceNow-skrivebordslayout på Webex Contact Center. |
| 1 |
|
| 2 |
Opdater egenskaberne i skrivebordslayoutfilen, hvis det er nødvendigt. |
| 3 |
Gå til Webex Contact CenterManagement Portal. |
| 4 |
Vælg K på Management Portal navigationslinjen.
|
| 5 |
Klik på Nyt layout, og angiv detaljerne for skrivebordslayoutet. |
| 6 |
Upload ServiceNow Desktop Layout JSON-filen. |
| 7 |
Klik på Gem for at gemme konfigurationen. Du kan nu starte Webex Contact Center- skrivebordet i ServiceNow-konsollen. |
| 8 |
Fra feltet Filternavigator navigerer du til .
|
| 1 |
Gå til H æn delser > Åbn hæn delse i feltet Filternavigator. |
| 2 |
Højreklik på opkaldsfeltet, og klik på Konfigurer ordbog.
|
| 3 |
Tilføj kommaseparerede attributter
Du kan nu begynde at bruge Webex Contact Center-skrivebordet i ServiceNow-konsollen. |
| 4 |
Fra feltet Filternavigator navigerer du til .
|
- Vi understøtter kun login Agent Desktop ved hjælp af WebRTC til Salesforce (SFDC) og Microsoft Dynamics (MS Dynamics) Connectors.
- I øjeblikket gælder denne funktion kun for agenter.
Agent Desktopi ServiceNow Console
Før du foretager eksterne opkald, skal du sørge for, at du gør følgende:
-
Opret det outdial-indgangspunkt, og opsæt en outdial indgangspunktstrategi.
-
Aktivér outdial ANI for agentprofilen.
-
Indstil den eksterne ANI til en kortlægning af opkaldsnummer til indgangspunkt.
Du kan finde flere oplysninger i kapitlet Til vejebringelse i Cisco Webex Contact CenterInstallations- og administrationsvejledningen.
Fra feltet Filternavigator navigerer du til .
Du kan finde oplysninger om, hvordan du bruger Desktop, under fanen Agent i hjælpen til Webex Contact Center.
Oversigt
Denne artikel dækker flere måder, hvorpå du kan tilpasse dine forretningsregler for ServiceNow CRM-forbindelsesforbindelsen. Den beskriver, hvordan du kan tilpasse brugssager baseret på forretningsregler, der er specifikke for ServiceNow.
Kunden skal selv administrere disse brugssager på ServiceNow. Konfigurationen er specifik for ServiceNow og ikke Webex Contact Center-software eller ekspertise.
Dette er en referencedokumentation til at hjælpe med ændring af forretningsregler. ServiceNow-udviklerne opretter og administrerer forretningsreglerne og yder support.
Cisco leverer kun eksempeldokumentation.
De følgende afsnit indeholder oplysninger om, hvordan du konfigurerer, aktiverer og administrerer widgeten Handlinger til udvikler- og virksomhedsforekomster.
Gennemfør widgeten Opdateringssæt til handlinger
For de licenserede virksomhedsinstanser skal du installere den nyeste Webex Contact Center-app fra Service Now-butikken.
Hvis du vil konfigurere widgeten Handlinger til udviklerforekomster, skal du downloade den seneste XML-fil for systemopdateringssæt, der er tilgængelig på github-repoen på denne placering: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Filnavnet er webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Hvis du vil godkende opdateringssættet for widgeten Handlinger, skal du se trin 2 til 9 i Udfør opdateringssættet.
Aktivér Handlings-widget
Brug egenskaben isWidgetDisplayEnabled til at aktivere widgeten Handlinger. Du må ikke ændre denne egenskabs værdi i det brugerdefinerede skrivebordslayouts hovedløse sektion. Egenskaben er altid indstillet til falsk i det brugerdefinerede skrivebordslayouts hovedløse sektion. Du bør kun opdatere egenskabens værdi i panelsektionen i det brugerdefinerede skrivebordslayout.
Når du aktiverer widgeten Handlinger i det brugerdefinerede skrivebordslayout, kan du udføre følgende handlinger:
- Administrer aktivitetsposter — Klik på Vis /rediger aktivitetspost for at få vist listen over aktivitetsposter, der er knyttet til den, der ringer op.
- Tilknyt CRM-objekter — Klik på Til knyt til aktivitetsposter for at føje CRM-objekter som f.eks. opkaldstype (indgående eller udgående), opkaldsobjekt, opkaldsnoter osv., til aktivitetsposten.
- Administrer hændelser — Klik på Opret hændelse. Der oprettes en ny hændelse med opkaldsoplysningerne på forhånd udfyldt. Du kan foretage de nødvendige opdateringer til hændelsen. Du kan vælge at ændre posttypen fra hændelse til sag, HR-modul osv. Baseret på dine krav. Hvis du vil ændre posttypen, skal du ændre værdien af egenskaben TypeOfRecord i widgetkonfigurationen Handlinger. For eksempel:
{ "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" } } ] } - Tilføj live-opkaldsnoter — Du kan registrere yderligere oplysninger om opkaldet i tekstområdet og afslutte opkaldet. Du kan se disse noter tilføjet som opkaldsnoter i aktivitetsposten.
Kodeændring på ServiceNow
Scriptet indeholder ændringer-
Gå til filternavigator og søg efter
script-inklusioner
.Vælg Script Inkluderer under System brugergrænsefladen.
-
Filtrer navnet og søg efter
PropUtils.
-
Skift metoden U
serGetSysID i scriptet
.Nuværende:
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(); return sysid; },Ny prøvekode til hændelsen:
UserGetSysId : function () { var opened_for; //Incident related changes 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='Call Received From '+ 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å til filternavigator og søg efter
UI page.Vælg UI-sider under System UI.
-
Filtrer navnet og søg efter
agentdesktop
. -
Skift
screenpop-
funktionen i Client script.Nuværende funktion:
// screen pop 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(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });Eksempelkode for hændelsen:
// screen pop 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(); // 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' }); } }
Hvis opkaldsoplysningerne findes i CRM, og der allerede er åbnet en ny hændelse med denne kontakt, åbner applikationen den igangværende hændelse
Hvis opkaldsoplysningerne ikke findes i CRM, åbner applikationen en ny hændelse
Hvis opkaldsoplysningerne findes i CRM, åbner applikationen en ny hændelse med forududfyldte oplysninger
Oversigt
Denne brugssag beskriver processen for at tilføje en ekstra kolonne til ServiceNow-tabellen - webexcc_imp_activity og oprette sn_openframe_phone_log ved installationen af Webex CC for ServiceNow CRM Connector.
Tabellen indeholder som standard visse systemfelter og værdier, der er klar til brug.
Du kan oprette flere forretningsspecifikke variabler (CAD-variabler) inde i WebExCC Flow-designeren og tilføje CAD-variablerne inde i ServiceNow-aktivitetsloggen efter opkald samt fastholde dette i aktivitetstabelldataene efter opkaldstabellen.
Dette er kun en referencedokumentation - og viser, hvordan du gør dette for en eksempel på CAD-variabel kaldet Customer Name, der gemmer kundenavnet inde i IVR og sender dette til ServiceNow.
Det forventes, at partner+kundeserviceNow-udviklerne konfigurerer og administrerer denne konfiguration, da det er en tilpasning til det eksisterende stik.
Cisco leverer kun teknikkerne til, hvordan du tilpasser og udvider stikket.
Fra denne artikel har Cisco-teamet valideret support til tilføjelse af CAD-variabel til aktivitetsloggen og aktivitetstabellen ved hjælp af nedenstående teknik:
Føj kolonne til WebExCC IMP-aktivitet
-
Rediger tabellen i udviklerversionen af ServiceNow.

-
Gå til filternavigatoren og søg efter studio.

Vælg
Webex Contact Center

eller



-
Vælg tabellen
WebExCC IMP-aktivitet

-
Tilføj en ny kolonne, f.eks.
CustomerName


Tilføj kolonne til telefonlog
-
Rediger telefonlogtabellen.


-
Tilføj en ny kolonne, f.eks.
CustomerName
.

WebExCC Aktivitetstransformationskort

Tilføj en ny kolonne, f.eks. CustomerName felttilknytning
.


Tilpas listekolonner

Som Service Now anbefaler, skal du ændre valghandlingen fra oprette til ignorere.


Konfigurer liste over telefonlogfiler

Gå til Script Inkluder
Tilføj kun en linje webexcc. u_customername=ActInfo.CustomerName til PropUtils
.



Se linjen: webexcc. u_customername=ActInfo.Customer Name; med en understøttende 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;
// else
// return null;
var grInt = new GlideRecord('interaction');
grInt.initialize();
grInt.assigned_to= gs.getUserID();
grInt.type= 'phone';
grInt.opened_for= opened_for;
var sysid=grInt.insert();
return sysid;
},
setWebexcctable : function () {
var sys_id=0;
var actInfo = JSON.parse(this.getParameter('actInfo'));
var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
webexcc.addQuery("callobject", actInfo.CallObject);
webexcc.query();
if(!webexcc.next()) {
webexcc.ani = actInfo.ani;
webexcc.dnis =actInfo.dnis;
webexcc.queuename =actInfo.queuename;
webexcc.wrapuptime =actInfo.wrapuptime;
webexcc.callduration =actInfo.CallDurationInSeconds;
webexcc.ringingtime =actInfo.ringingtime;
webexcc.activitydate =actInfo.ActivityDate;
webexcc.callobject =actInfo.CallObject;
webexcc.calltype =actInfo.CallType;
webexcc.calldisposition=actInfo.CallDisposition;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
//Activities on Incident record;
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'
});
Oprette en CAD-variabel i Flow designer

Føj CAD-variablen til skrivebordslayoutet
Eksempel
"CadName1:SnowField1,CadName2:SnowField2"
CadName1 is CustomerName
SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Demo skærmbilleder
Se den nyligt tilføjede CAD-variabel i WebExCC Aktivitetstabellen.



Opret CAD-variabel til Flow Designer
Hændelsen haster
Indvirkning af hændelsen

Service Now scriptopdatering
Opdateringer til scriptet inkluderer
-
Gå til filternavigatoren og søg efter
script includesVælg indstillingen Script inkluderer under Systembrugergrænseflade.

-
Filtrer navnet med
propUtils.
-
Skift metoden
UserGetSysID
i feltet Script.
Nuværende script:
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(); return sysid; },Ny prøvekode til hændelsen:
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='Call Received From '+ 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);//sysid; },
-
Gå til filternavigatoren og søg efter
UI pages.Vælg ind stillingen UI Sider under System UI.

-
Filtrer bruger grænsefladens sider med navn og søg efter
agentdesktop.
-
Skift
screenpop-
funktionen i scriptfeltet.
Nuværende funktion:
// screen pop 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(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }Eksempelkode for hændelsen:
// screen pop function 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('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 }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Hvis opkaldsoplysningerne findes i CRM, og der ikke er nogen ny eller igangværende hændelse, åbner applikationen en ny hændelse


Skift koden på ServiceNow
Føj nye kolonner til WebExCC IMP-aktivitetstabellen
Åbn tabellen WebExCC IMP-aktivitet





Klik på Op dater.


Føj nye kolonner til tabellen Telefonlog
Åbn tabellen Telefonlog





WebExCC Aktivitetstransformationskort
Åbn transformeringskort
fra filternavigatoren


Klik på WebExCC Activity TransformMap




Klik på Opdater.

Ændringer i script inkluderer
-
Gå til filternavigator og søg efter „script inkluderer“.
Vælg Script Inkluderer under System brugergrænsefladen.

-
Filtrer navnet med
PropUtils.

-
Skift metoden
SetWebExcctable
.
Ny prøvekode til hændelse:
setWebexcctable : function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; delete 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='Update State to closed.'; 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.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } return sys_id; },
Metodeændringer på UI sider
-
Gå til filternavigator og søg efter
UI-sider
Vælg ind stillingen UI Sider under System UI.

-
Filtrer brugergrænsefladens sider med navn og søg efter
agentdesktop.
-
Skift funktionen
NowActivities og screenpop
i scriptet.
Nuværende 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); }Eksempelkode for hændelsen:
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)); }
Resultater efter opdateringen

Følgende tilpasninger gælder for version 1.0.5 og derunder. Følg ovenstående trin for tilpasninger til nyere versioner 1.0.7 og nyere.
Tilpasning nr. 1 - Tilføj brugerdefinerede forretningsregler for brugssager for opkaldsflow
Opret en ny hændelsesregistrering for hvert opkaldFor hvert nyt opkald til WebExCC CRM-forbindelsen i ServiceNow skal du oprette en ny hændelsesregistrering.
Søg efter forretningsregler i filternavigatoren

Klik på Ny.

Eksempelkode til reference:
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", name); } 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; return url; } function 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; }Eksempel på konfiguration af forretningsreglen

Aktivér Client, der kan kaldes

Computer Telephony Integration (CTI) Processing for Incident er markeret som True.

Opdater screenpop-url'en med den brugerdefinerede CTI-regel "cti.do? sysparm_cti_rule=Opret hændelse& = "sysparm_caller_phone

sysparm_cti_rule=name, hvor 'name' er navnet på en funktion, skal påberåbes til CTI Processing i stedet for at bruge standardscriptet.
Definer funktionen i en sys_scriptpost markeret klient, der kan kaldes.
Hvis du skal indsætte, opdatere eller slette GlidereCord (er) i funktionen, skal du kalde en separat funktion, der ikke kan kaldes af klienten, for at udføre opdateringerne.
Hvis du vil gøre et script klientkaldeligt, skal du markere afkrydsningsfeltet Client-callable på den formular, der vises, når posten vises. sys_script
Afkrydsningsfeltet Client-callable vises ikke som standard. For at få vist, skal du ændre de felter, der vises på formularen, ved hjælp af tandhjulsikonet og slush bucket-mekanismen.
Tilpasning # 2 - Tilføj CAD-variabel i Webex Contact Center aktivitetstabel
OversigtDenne artikel beskriver processen for at tilføje en ekstra kolonne til ServiceNow-tabellen - webexcc_activity der oprettes ved installationen af Webex CC for ServiceNow CRM Connector.
Tabellen indeholder som standard systemfelter og værdier, der er klar til brug.
Du kan potentielt oprette flere forretningsspecifikke variabler (CAD-variabler) inde i WebExCC Flow-designeren og tilføje disse CAD-variabler i ServiceNow-aktivitetslo ggen efter opkald og bevare dette i aktivitetstabeldataene efter opkaldstabellen.
-
Dette er kun referencedokumentation - og viser, hvordan du gør dette for en eksempel på CAD-variabel kaldet Customer Name, der gemmer kundenavnet inde i IVR og sender dette til ServiceNow.
-
Partner+kundeserviceNow-udviklerne konfigurerer og administrerer denne konfiguration, da det er en tilpasning til det eksisterende stik.
-
Cisco leverer kun teknikkerne til, hvordan du tilpasser og udvider stikket.
-
Fra denne artikel har Cisco-teamet valideret support til tilføjelse af CAD-variabel til aktivitetsloggen og aktivitetstabellen ved hjælp af den teknik, der er beskrevet nedenfor.
Rediger tabellen i udviklerversionen af ServiceNow.

Gå til .



Vælg WebExCC Aktiv itetstabel.

For eksempel CustomerName.


Vælg Listelayout til WebExCC-aktivitet.

Dette trin er ikke påkrævet, hvis du bruger Update Set XML - Der kræves kun en linje for at blive tilføjet "webexcc. u_customername=ActInfo.CustomerName "til PropUtils.



Eksempel på script
Se linjen med: webexcc. u_customername=ActInfo.Customer Name; med en understøttende kommentar.
var propUtils2 = Class.create();
propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
getWebexccProp : function () {
var webexccprop = {};
webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
webexccprop.url=gs.getProperty('x_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;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
// Activities on Incident record;
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(acting string),null,2);
inc.comments =jsonPretty;
inc.update();
}
}
}
return sys_id;
},
type: 'propUtils2'
});
Rediger brugergrænsefladen med et nyt scriptnavn
Oprette en CAD-variabel i Flow designer
Føj CAD-variablen til skrivebordslayoutet
Demo skærmbilleder
Se den nyligt tilføjede CAD-variabel i WebExCC Aktivitetstabellen.

CRM-forbindelsen fungerer baseret på den version af widgeten, der er angivet i JSON-skrivebordslayoutet. Det er ekstremt vigtigt at sikre, at widgetversionen i skrivebordslayoutet holdes opdateret.
Administratorer forventes at sikre, at alle skrivebordslayouter til denne CRM-forbindelse bruger denne widgetversion. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.
- Sidste ServiceNow opdatering— ServiceNow_Desktop_0 .1.0_v5.0.3.json. Fra marts 2024 er pakkeversionen 1.0.9
- Sidste XML-opdatering—WebExcc-ServiceNow-Update-SetV7-1-ActionsWidget.xml, juni 2024











































