Integreer het Webex Contact Center met ServiceNow (versie 1 en ouder)
Vereisten
De minimale ondersteunde grootte voor de softphone-interface is 500 px. Elke waarde lager dan 500 px kan leiden tot scherm- of functionaliteitsproblemen.
Voordat u Webex Contact Center integreert met de ServiceNow CRM-console, moet u ervoor zorgen dat u over het volgende beschikt:
-
Toegang tot het Webex Contact Center.
-
Beheerderstoegang tot de Control Hub op https://admin.webex.com en het Webex Contact CenterManagement Portal. De URL's daarvoor Management Portal zijn specifiek voor uw regio.
-
Een agent met toegang tot de desktop. De URL voor de desktop is specifiek voor uw regio.
-
Toegang van agenten tot het volgende domein dat is toegevoegd aan de lijst met toegestane inhoudsbeveiligingsbeleid:
-
*.service-now.com
Zie het artikel Beveiligingsinstellingen voor Webex Contact Center voor meer informatie over het definiëren van de toegestane lijst.
-
-
Een ServiceNow-account voor ontwikkelaars. Om een account aan te maken, gaat u naar het ServiceNow-portaal voor ontwikkelaars op https://developer.servicenow.com/dev.do en klikt u op Aanmelden en beginnen met bouwen.
-
Toegang tot de volgende bestanden op https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow-updateset (XML)
-
Bureaubladindeling van ServiceNow voor contactcentrum (JSON)
-
- De ServiceNow-edities die door Webex Contact Center worden ondersteund, zijn Vancouver, Utah, Tokya, Washington en Xanadu. Zie Webex Contact Center-integratie met ServiceNow voor meer informatie.
Volg een van de twee onderstaande methoden:
- Voor ontwikkelaarsinstanties raden we aan de stappen in de handleiding voor ontwikkelaars te volgen.
- Als u eigenaar bent van een exemplaar met een bedrijfslicentie, volg dan de richtlijnen voor exemplaren met een bedrijfslicentie.
We raden af om de app met een licentie voor ondernemingen te combineren met sandbox-exemplaren voor ontwikkelaars.
Digitale kanalen zoals chat en e-mail worden niet ondersteund met CRM-connectoren. Dit is van toepassing op alle CRM-integraties die deze connectoren gebruiken. Gelieve uw implementatie- en klantcontactworkflows dienovereenkomstig te plannen.
In de volgende gedeelten worden de stappen beschreven om de ServiceNow-connector te installeren voor instanties van ontwikkelaars.
| 1 |
Meld u aan bij uw ServiceNow-account voor ontwikkelaars en open de beheerconsole. |
| 2 |
Klik in het gedeelte Mijn instantie van het Accountmenu op Opbouw starten.
|
| 3 |
Op uw ontwikkelaarsversie navigeert u in het veld Filternavigator in de linkerbovenhoek van het venster naar Plug-ins.
|
| 4 |
Zoek naar de Openframe-plug-in met de titel Openframe. Misschien moet u door de lijst bladeren.
|
| 5 |
Klik op Installeren om de Openframe-plug-in te installeren. |
| 6 |
Klik in het dialoogvenster Plugin activeren op Activeren.
|
| 7 |
Wanneer de activering van de plug-in is voltooid, klikt u op Formulier sluiten en opnieuw laden in het dialoogvenster Plug-in-activering.
|
| 8 |
Om de activering van de plug-in te controleren, navigeert u in het veld Filternavigator in de linkerbovenhoek van het venster naar OpenFrame. |
| 9 |
Klik op Configuraties en zorg ervoor dat de OpenFrame-plug-in wordt weergegeven in de lijst met OpenFrame-configuraties.
|
| 1 |
Bestandsnaam: WebXCC-ServiceNow-Update-SETV (X) .xml
|
| 2 |
In uw ServiceNow-exemplaar navigeert u in het veld Filternavigator linksboven in het venster naar Commit.
|
| 3 |
Klik op de link Updateset importeren via XML.
|
| 4 |
Klik op Bestand kiezen, selecteer het XML-bestand van de System Update Set en klik vervolgens op Uploaden.
De updateset verschijnt in de lijst Opgehaalde updatesets en bevindt zich in de status Geladen.
|
| 5 |
Klik in de lijst met opgehaalde updatesets op de bestandsnaam van de updateset (link) om de updateset te openen.
|
| 6 |
Klik rechtsboven in het venster op Preview Update Set om te controleren of er problemen zijn met de updateset.
|
| 7 |
Klik op Sluiten in het dialoogvenster Update Set Preview zodra de voorvertoning is voltooid.
|
| 8 |
Klik op Update Set vastleggen.
|
| 9 |
Klik op Sluiten in het dialoogvenster Update Set Commit zodra het vastleggen van de Update Set is voltooid.
|
| 1 |
Typ in het veld Filternavigator linksboven in het venster
|
| 2 |
Sorteer op de pagina Systeemeigenschappen de eigenschappen op bijgewerkte datum. Zorg ervoor dat u de volgende eigenschappen van Webex Contact Center kunt zien:
|
| 3 |
Klik agentdesktop_urlom de agentdesktop_url pagina met systeemeigenschappen te openen. |
| 4 |
Voer in het veld Waarde de URL in voor de Webex Contact Center-desktop, afhankelijk van de regio waarin u werkt.
|
| 5 |
Klik op Update om de wijzigingen op te slaan. |
| 6 |
(Optioneel) Als u de naam van de activiteitentabel wilt wijzigen, moet u indien nodig de eigenschappen van de webexccactivitytable bewerken. Klik op de pagina Systeemeigenschappen op webexccactivitytable. Wijzig zo nodig het veld Waarde.
|
| 7 |
(Optioneel) Voeg gebruikersgroepen toe op de volgende manieren:
|
| 1 |
Navigeer in het veld Filternavigator naar .
|
| 2 |
Klik op Nieuw.
|
| 3 |
Voer de volgende eigenschappen in voor de URL:
|
| 4 |
Klik rechts van het URL-veld op de knop Vergrendelen en voeg deze toe
|
| 5 |
(Optioneel) Selecteer de gebruikers-/agentgroep (en) om de configuratie toe te wijzen.
|
| 6 |
Klik op Verzenden. De URL wordt weergegeven als een link.
|
| 7 |
Voordat u de OpenFrame-telefoon probeert te gebruiken, moet u ervoor zorgen dat u het aangepaste JSON-bestand van ServiceNow naar het Webex Contact Center uploadt. Management Portal Zie De ServiceNow-desktopindeling instellen op Webex Contact Center voor meer informatie. |
| 1 |
|
| 2 |
Werk indien nodig de eigenschappen in het bestand Desktop Layout bij. |
| 3 |
Ga naar het Webex Contact CenterManagement Portal. |
| 4 |
Kies op de Management Portal navigatiebalk Layout.
|
| 5 |
Klik op Nieuwe indeling en voer de gegevens voor de bureaubladindeling in. |
| 6 |
Upload het JSON-bestand van ServiceNow Desktop Layout. |
| 7 |
Klik op Opslaan om de configuratie op te slaan. U kunt nu de Webex Contact Center-desktop starten in de ServiceNow-console. |
| 8 |
Navigeer vanuit het veld Filter Navigator naar .
|
In de volgende gedeelten worden de stappen beschreven om de ServiceNow-connector te installeren voor gelicentieerde bedrijfsinstanties.
| 1 |
Meld u aan bij uw ServiceNow-account voor ontwikkelaars en open de beheerconsole. |
| 2 |
Klik in het gedeelte Mijn instantie van het Accountmenu op Opbouw starten.
|
| 3 |
Op uw ontwikkelaarsversie navigeert u in het veld Filternavigator in de linkerbovenhoek van het venster naar Plug-ins.
|
| 4 |
Zoek naar de Openframe-plug-in met de titel Openframe. Misschien moet u door de lijst bladeren.
|
| 5 |
Klik op Installeren om de Openframe-plug-in te installeren. |
| 6 |
Klik in het dialoogvenster Plugin activeren op Activeren.
|
| 7 |
Wanneer de activering van de plug-in is voltooid, klikt u op Formulier sluiten en opnieuw laden in het dialoogvenster Plug-in-activering.
|
| 8 |
Om de activering van de plug-in te controleren, navigeert u in het veld Filternavigator in de linkerbovenhoek van het venster naar OpenFrame. |
| 9 |
Klik op Configuraties en zorg ervoor dat de OpenFrame-plug-in wordt weergegeven in de lijst met OpenFrame-configuraties.
|
Instanties met bedrijfslicenties kunnen de Webex Contact Center-toepassing rechtstreeks vanuit de ServiceNow Store installeren.
|
|
| 1 |
Voer in het veld Filternavigator linksboven in het venster in
|
| 2 |
Sorteer op de pagina Systeemeigenschappen de eigenschappen op bijgewerkte datum. Zorg ervoor dat u de volgende eigenschappen van Webex Contact Center kunt zien:
|
| 3 |
Klik agentdesktop_urlom de agentdesktop_url pagina met systeemeigenschappen te openen. |
| 4 |
Voer in het veld Waarde de URL in voor de Webex Contact Center-desktop, afhankelijk van de regio waarin u werkt.
|
| 5 |
Klik op Update om de wijzigingen op te slaan. |
| 6 |
(Optioneel) Als u de naam van de activiteitentabel wilt wijzigen, moet u de eigenschappen van x_caci_webexcc.webexccactivitytable zo nodig bewerken.
|
| 7 |
(Optioneel) Voeg gebruikersgroepen toe op de volgende manieren:
|
| 1 |
Navigeer in het veld Filternavigator naar .
|
| 2 |
Klik op Nieuw.
|
| 3 |
Voer de volgende eigenschappen in voor de URL:
|
| 4 |
Klik rechts van het URL-veld op de knop Vergrendelen en voeg deze toe
|
| 5 |
(Optioneel) Selecteer de gebruikers-/agentgroep (en) om de configuratie toe te wijzen.
|
| 6 |
Klik op Verzenden. De URL wordt weergegeven als een link.
|
| 7 |
Navigeer vanuit het veld Filter Navigator naar .
|
| 8 |
(Optioneel) Verplaats in de lijst met gebruikersgroepen de gebruikersgroepen die toegang hebben tot de Webex Contact Center-desktop van Beschikbaar naar Geselecteerd. |
| 9 |
Voordat u de OpenFrame-telefoon probeert te gebruiken, moet u ervoor zorgen dat u het aangepaste JSON-bestand van ServiceNow naar het Webex Contact Center uploadt. Management Portal Zie De ServiceNow-desktopindeling instellen op Webex Contact Center voor meer informatie. |
| 1 |
|
| 2 |
Werk indien nodig de eigenschappen in het bestand Desktop Layout bij. |
| 3 |
Ga naar het Webex Contact CenterManagement Portal. |
| 4 |
Kies op de Management Portal navigatiebalk Layout.
|
| 5 |
Klik op Nieuwe indeling en voer de gegevens voor de bureaubladindeling in. |
| 6 |
Upload het JSON-bestand van ServiceNow Desktop Layout. |
| 7 |
Klik op Opslaan om de configuratie op te slaan. U kunt nu de Webex Contact Center-desktop starten in de ServiceNow-console. |
| 8 |
Navigeer vanuit het veld Filter Navigator naar .
|
| 1 |
Navigeer in het veld Filternavigator naar Incidenten > Incident openen. |
| 2 |
Klik met de rechtermuisknop op het veld voor de beller en klik op Woordenboek configureren.
|
| 3 |
Voeg attributen
U kunt nu beginnen met het gebruik van de Webex Contact Center Desktop in de ServiceNow-console. |
| 4 |
Navigeer vanuit het veld Filter Navigator naar .
|
- We ondersteunen het aanmelden Agent Desktop met alleen WebRTC for Salesforce (SFDC) en Microsoft Dynamics (MS Dynamics) Connectors.
- Momenteel is deze functie alleen van toepassing op agenten.
Agent Desktopin de ServiceNow-console
Zorg ervoor dat u het volgende doet voordat u naar buiten belt:
-
Creëer het startpunt voor de outdial en stel een strategie voor het instappunt voor de outdial op.
-
Schakel outdial ANI in voor het profiel van de agent.
-
Stel de ANI voor de outdial in op een Dial Number-to-Entry Point-toewijzing.
Zie voor meer informatie het hoofdstuk Provisioning van de handleiding voor Cisco Webex Contact Centerinstallatie en beheer.
Navigeer vanuit het veld Filter Navigator naar .
Zie het tabblad Agent in de Help van Webex Contact Center voor informatie over het gebruik van Desktop.
Overzicht
Dit artikel behandelt verschillende manieren om uw bedrijfsregels voor de ServiceNow CRM-connector aan te passen. Hierin wordt beschreven hoe u de gebruiksscenario's kunt aanpassen op basis van bedrijfsregels die specifiek zijn voor ServiceNow.
De klant moet deze use-cases zelf beheren op ServiceNow. De configuratie is specifiek voor ServiceNow en niet voor Webex Contact Center-software of -expertise.
Dit is een referentiedocument ter ondersteuning van de wijziging van bedrijfsregels. De ontwikkelaars van ServiceNow zullen de bedrijfsregels opstellen en beheren en ondersteuning bieden.
Cisco biedt alleen voorbeelddocumentatie.
In de volgende gedeelten vindt u informatie over het instellen, inschakelen en beheren van de Actions-widget voor ontwikkelaars en ondernemingen.
De Update Set for Actions-widget vastleggen
Voor de gelicentieerde bedrijfsexemplaren installeert u de nieuwste Webex Contact Center-app uit de ServiceNow-winkel.
Om de Actions-widget in te stellen voor de ontwikkelaars, moet u het meest recente XML-bestand van de System Update Set downloaden dat beschikbaar is in de github-repo op deze locatie: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. De bestandsnaam is webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Om de updateset voor de Actions-widget vast te leggen, zie de stappen 2 tot en met 9 in De updateset vastleggen.
Acties-widget inschakelen
Gebruik de eigenschap IsWidgetDisplayEnabled om de Actions-widget in te schakelen. U mag de waarde van deze eigenschap niet wijzigen in de headless sectie van de aangepaste bureaubladindeling. De eigenschap is altijd ingesteld op false in het headless gedeelte van de aangepaste bureaubladindeling. U moet de waarde van de eigenschap alleen bijwerken in het paneelgedeelte van de aangepaste bureaubladindeling.
Zodra u de Actions-widget in de aangepaste bureaubladindeling hebt ingeschakeld, kunt u de volgende acties uitvoeren:
- Activiteitsrecords beheren: klik op Activiteitsrecord bekijken/bewerken om de lijst met activiteitsrecords te bekijken die aan de beller zijn gekoppeld.
- CRM-objecten koppelen: klik op Koppelen aan activiteitenrecords om CRM-objecten, zoals oproeptype (inkomend of uitgaand), oproepobject, gespreksnotities, enzovoort, toe te voegen aan het activiteitenrecord.
- Incidenten beheren: klik op Incident aanmaken. Er is een nieuw incident ontstaan waarbij de gegevens van de beller vooraf zijn ingevuld. U kunt het incident op de hoogte brengen van de vereiste updates. U kunt ervoor kiezen om het recordtype van incident tot geval aan te passen, de HR-module, enzovoort op basis van uw vereisten. Om het recordtype te wijzigen, wijzigt u de waarde van de eigenschap typeOfRecord in de configuratie van de Actions-widget. Bijvoorbeeld:
{ "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" } } ] } - Voeg live gespreksnotities toe. U kunt in het tekstgedeelte aanvullende informatie over het gesprek vastleggen en het gesprek afronden. U kunt zien dat deze notities als gespreksnotities zijn toegevoegd in het activiteitenrecord.
Codewijziging op ServiceNow
Het script bevat wijzigingen-
Ga naar de filternavigator en zoek naar het
script dat is inbegrepen
.Selecteer het Script Includes onder System UI.
-
Filter de naam en zoek naar
PropUtils
. -
Wijzig de methode
UserGetSysid
in het Script.Actueel:
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; },Nieuwe voorbeeldcode voor het incident:
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); },
-
Ga naar de filternavigator en zoek naar
UI page.Selecteer UI-pagina's onder System UI.
-
Filter de naam en zoek naar
agentdesktop
. -
Wijzig de
screenpop-functie
in Client-script.Huidige functie:
// 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 });Voorbeeldcode voor het incident:
// 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' }); } }
Als de informatie over de beller aanwezig is in CRM en er is al een nieuw incident geopend met deze contactpersoon, opent de applicatie het incident dat bezig is
Als de informatie over de beller niet bestaat in CRM, opent de toepassing een nieuw incident
Als de informatie over de beller aanwezig is in CRM, opent de applicatie een nieuw incident met vooraf ingevulde gegevens
Overzicht
Deze use case beschrijft het proces om een extra kolom toe te voegen aan de ServiceNow-tabel - webexcc_imp_activity en die te creëren sn_openframe_phone_log na de installatie van de Webex CC for ServiceNow CRM Connector.
De tabel bevat standaard bepaalde kant-en-klare systeemvelden en -waarden.
U kunt meer bedrijfsspecifieke variabelen (CAD-variabelen) aanmaken in de WebXCC Flow designer en de CAD-variabelen toevoegen aan het activiteitenlogboek van ServiceNow na een gesprek, en dit ook opslaan in de gegevens van de activiteitentabel na het gesprek.
Dit is enkel een referentiedocumentatie - en laat zien hoe u dit moet doen voor een CAD-voorbeeldvariabele genaamd Customer Name, die de klantnaam opslaat in de IVR en deze naar ServiceNow stuurt.
Naar verwachting zullen de ontwikkelaars van Partner+Customer ServiceNow deze configuratie configureren en beheren, aangezien het een aanpassing is aan de bestaande connector.
Cisco biedt alleen de technieken om de connector aan te passen en uit te breiden.
Vanaf dit artikel heeft het Cisco-team de ondersteuning gevalideerd voor de toevoeging van een CAD-variabele aan het activiteitenlogboek en de activiteitentabel met behulp van de hieronder beschreven techniek:
Kolom toevoegen aan WebExcc IMP Activity
-
Bewerk de tabel in de ontwikkelaarsversie van ServiceNow.

-
Ga naar de filternavigator en zoek naar de studio.

Selecteer het
Webex Contact Center

of



-
Selecteer de
activiteitstabel van WebEXCC IMP

-
Een nieuwe kolom toevoegen, bijvoorbeeld
CustomerName


Kolom aan telefoonlogboek toevoegen
-
De tabel met het telefoonlogboek bewerken.


-
Voeg een nieuwe kolom toe, bijvoorbeeld
CustomerName
.

WebXCC-kaart voor activiteitstransformatie

Voeg een nieuwe kolom toe, bijvoorbeeld CustomerName field mapping
.


Lijstkolommen personaliseren

Zoals Service Now aanbeveelt, wijzigt u de actie Keuze van creëren naar negeren.


Lijst met telefoonlogboeken configureren

Ga naar Script Include
Voeg slechts één regel toe, webexcc. u_customername=Actinfo.customerName
naar PropUtils.



Zie de regel: webexcc. u_customername=Actinfo.customerName; met een ondersteunende opmerking.
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'
});
Maak een CAD-variabele in Flow designer

Voeg de CAD-variabele toe aan de bureaubladindeling
Voorbeeld
"CadName1:SnowField1,CadName2:SnowField2"
CadName1 is CustomerName
SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Schermafbeeldingen van de demo
Bekijk de nieuw toegevoegde CAD-variabele in de WebExcc-activiteitstabel.



Maak een CAD-variabele voor Flow Designer
Urgentie bij incidenten
Gevolgen van een incident

Service Now: scriptupdate
Updates voor het Script omvatten
-
Ga naar de filternavigator en zoek naar
script includesSelecteer de optie Script Includes onder System UI.

-
Filter de naam met
propUtils.
-
Wijzig de methode
UserGetSysid
in het Script-veld.
Huidig 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; },Nieuwe voorbeeldcode voor het incident:
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; },
-
Ga naar de filternavigator en zoek naar
UI pages.Selecteer de optie UI Pages onder System UI.

-
Filter de pagina's in de gebruikersinterface met een naam en zoek naar
agentdesktop.
-
Wijzig de
screenpop-functie
in het scriptveld.
Huidige functie:
// 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 }); }Voorbeeldcode voor het incident:
// 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)); }
Als de informatie over de beller aanwezig is in CRM, en er is geen nieuw incident of een incident gaande, dan opent de applicatie een nieuw incident


Wijzig de code op ServiceNow
Nieuwe kolommen toevoegen aan de WebExCC
IMP-activiteitstabel
Open de activiteitstabel van WebEXCC IMP





Klik op Update.


Nieuwe kolommen aan de telefoonlogtabel
toevoegen
Open de tabel met telefoonlogboeken





WebXCC-kaart voor activiteitstransformatie
Open de transformatiekaart
vanuit de filternavigator


Klik op WebExcc
Activity TransformMap




Klik op Update.

Wijzigingen in Script omvatten
-
Ga naar de filternavigator en zoek naar „script bevat”.
Selecteer het Script Includes onder System UI.

-
Filter de naam met
ProPutils
.
-
Wijzig de methode
SetWebExccTable
.
Nieuwe voorbeeldcode voor Incident:
setWebexcctable : function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; 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; },
Wijzigingen in de methode op pagina's van de gebruikersinterface
-
Ga naar de filternavigator en zoek naar
pagina's in de gebruikersinterface
Selecteer de optie UI Pages onder System UI.

-
Filter de pagina's in de gebruikersinterface met een naam en zoek naar
agentdesktop.
-
Wijzig de
NowActivities- en screenpop-functie
in het script.
Huidige functie:
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); }Voorbeeldcode voor het incident:
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)); }
Resultaten na de update

De volgende aanpassingen zijn van toepassing op versies 1.0.5 en lager. Volg de bovenstaande stappen voor de aanpassingen voor de nieuwere versies 1.0.7 en hoger.
Aanpassing nummer 1 - Voeg aangepaste bedrijfsregels toe voor gebruikssituaties voor gespreksstromen
Maak voor elk gesprek een nieuw incidentendossierMaak voor elke nieuwe oproep naar de WebXCC CRM-connector in ServiceNow een nieuw incidentrecord.
Zoek naar bedrijfsregels in de filternavigator

Klik op Nieuw.

Voorbeeldcode ter referentie:
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; }Voorbeeldconfiguratie van de bedrijfsregel

Cliënt oproepbaar inschakelen

Computer Telephony Integration (CTI) Processing for Incident is gemarkeerd als True.


De sysparm_cti_rule=naam waarbij 'name' de naam van een functie is, moet worden aangeroepen voor CTI Processing in plaats van het standaardscript te gebruiken.
Definieer de functie in een sys_scriptitem met de aanduiding „client callable”.
Als u GlideRecord (s) in de functie moet invoegen, bijwerken of verwijderen, roep dan een aparte functie aan die niet door de client kan worden opgeroepen om de updates uit te voeren.
Om een script client-opvraagbaar te maken, moet u het selectievakje client-oproepbaar aanvinken op het formulier dat verschijnt wanneer de invoer wordt weergegeven. sys_script
Het selectievakje dat door de klant kan worden opgeroepen, wordt standaard niet weergegeven. Om ze te kunnen bekijken, moet u de velden aanpassen die op het formulier worden weergegeven met behulp van het tandwielpictogram en het slush bucket-mechanisme.
Aanpassing nummer 2 - Voeg een CAD-variabele toe aan de activiteitentabel van Webex Contact Center
OverzichtDit artikel beschrijft het proces om een extra kolom toe te voegen aan de ServiceNow-tabel, webexcc_activity die wordt aangemaakt na de installatie van de Webex CC for ServiceNow CRM Connector.
De tabel bevat standaard systeemvelden en -waarden die standaard uit de doos bestaan.
U kunt mogelijk meer bedrijfsspecifieke variabelen (CAD-variabelen) aanmaken in de WebXCC Flow designer en die CAD-variabelen toevoegen aan het activiteitenlogboek van ServiceNow na een gesprek, en dit bewaren in de gegevens van de activiteitstabel na het gesprek.
-
Dit is enkel referentiedocumentatie - en laat zien hoe u dit moet doen voor een CAD-voorbeeldvariabele genaamd Customer Name, die de klantnaam opslaat in de IVR en deze naar ServiceNow stuurt.
-
De ontwikkelaars van Partner+Customer ServiceNow zullen deze configuratie configureren en beheren, aangezien het een aanpassing is aan de bestaande connector.
-
Cisco biedt alleen de technieken om de connector aan te passen en uit te breiden.
-
Vanaf dit artikel heeft het Cisco-team de ondersteuning gevalideerd voor de toevoeging van een CAD-variabele aan het activiteitenlogboek en de activiteitentabel met behulp van de hieronder beschreven techniek.
Bewerk de tabel in de ontwikkelaarsversie van ServiceNow.

Ga naar .



Selecteer de WebExcc-activiteitstabel.

Bijvoorbeeld CustomerName.


Selecteer de lijstindeling voor WebXCC-activiteiten.

Deze stap is niet vereist als u de Update Set XML gebruikt. Er is slechts één regel nodig om "webexcc toe te voegen. u_customername=Actinfo.customerName "naar PropUtils.



Voorbeeldscript
Zie de regel met: webexcc. u_customername=Actinfo.customerName; met een ondersteunende opmerking.
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'
});
De UI-pagina bewerken met een nieuwe scriptnaam
Maak een CAD-variabele in Flow designer
Voeg de CAD-variabele toe aan de bureaubladindeling
Schermafbeeldingen van de demo
Bekijk de nieuw toegevoegde CAD-variabele in de WebExcc-activiteitstabel.

De CRM-connector werkt op basis van de versie van de widget die is gespecificeerd in de JSON voor de desktopindeling. Het is uiterst belangrijk om ervoor te zorgen dat de widgetversie in de bureaubladindeling bijgewerkt blijft.
Van beheerders wordt verwacht dat ze ervoor zorgen dat alle desktoplay-outs voor deze CRM-connector deze widgetversie gebruiken. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.
- Laatste update van ServiceNow— ServiceNow_Desktop_0 .1.0_v5.0.3.json. Vanaf maart 2024 is de pakketversie 1.0.9
- Laatste XML-update: WebExcc-ServiceNow-Update-SetV7-1-ActionsWidget.xml, juni 2024











































