Integrate Webex Contact Center met ServiceNow (Versie 1—Oude)
Voorwaarden
Momenteel is deze functie alleen van toepassing op agenten.
Voordat u Webex Contact Center integreert met de ServiceNow CRM console, controleert u of u beschikt over het volgende:
-
Toegang tot Webex Contact Center.
-
Beheerderstoegang tot de Control Hub bij https://admin.webex.com en Webex Contact Center Beheerportal. De URL's voor de Beheerportal zijn specifiek voor uw regio.
-
Een agent die toegang heeft tot de desktop. De URL voor de Desktop is specifiek voor uw regio.
-
Agent heeft toegang tot het volgende domein dat is toegevoegd aan de lijst met toegestane agenten in het beleid voor inhoudsbeveiliging:
-
*.service-now.com
Zie het artikel Beveiligingsinstellingen voor Webex Contact Center voor meer informatie over het definiëren van de lijst met toegestaan.
-
-
Een ServiceNow-account voor ontwikkelaarsportal. Om een account aan te maken, gaat u naar de ServiceNow-ontwikkelaarsportal 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)
-
Lay-out van ServiceNow Contact Center Desktop (JSON)
-
- De ServiceNow-edities die Webex Contact Center ondersteunt zijn Vancouver, Utah, Tokya, Washington en Xanadu. Zie Webex Contact Center Integration met ServiceNow voor meer informatie.
Volg een van de twee onderstaande methoden:
Voor ontwikkelaarsinstanties raden we aan de stappen in de handleiding voor ontwikkelaars-exemplaren te volgen.
Als u eigenaar bent van een instantie met een ondernemingslicentie, volgt u de richtlijnen voor exemplaren met een ondernemingslicentie.
Het is niet raadzaam de ondernemingslicentie-app te mengen met sandbox-exemplaren van ontwikkelaars.
In de volgende hoofdstukken worden de stappen beschreven voor het installeren van de ServiceNow-connector voor exemplaren van ontwikkelaars.
1 |
Meld u aan bij uw ServiceNow-account voor ontwikkelaarsportal en open de beheerconsole . |
2 |
Klik in het gedeelte Mijn instantie van het menu Account op Opbouw starten. |
3 |
In uw exemplaar voor ontwikkelaars navigeert u in het veld Filternavigator linksboven in het venster naar Invoegtoepassingen. |
4 |
Zoek de invoegtoepassing Openframe die de titel Openframe heeft. Mogelijk moet u door de lijst bladeren. |
5 |
Klik op Installeren om de Openframe-invoegtoepassing te installeren. |
6 |
Klik in het dialoogvenster Invoegtoepassing activeren op Activeren. |
7 |
Wanneer de plugin is geactiveerd, klikt u op Sluiten en Opnieuw laden in het dialoogvenster Plugin-activering . |
8 |
Navigeer om de activering van de invoegtoepassing te controleren naar OpenFrame in het veld Filternavigator linksboven in hetvenster. |
9 |
Klik op Configuraties en zorg ervoor dat de OpenFrame-invoegtoepassing wordt weergegeven in de lijst met OpenFrame-configuraties . |
1 |
Download het laatste bestand voor systeemupdateset XML dat beschikbaar is op de github-repo op deze locatie: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. Bestandsnaam: webexcc-servicenow-update-setV(X).XML |
2 |
Navigeer in uw ServiceNow-instantie in het veld Filternavigator linksboven in het venster naar Sets |
3 |
Klik op de koppeling Updateet importeren van XML . |
4 |
Klik op Bestand kiezen, selecteer de systeemupdateset XML bestand en klik op Uploaden.
De updateset wordt weergegeven in de lijst Opgehaalde sets met updates en heeft de status Geladen .
|
5 |
Klik in de lijst Opgehaalde updatesets op de bestandsnaam bijwerkenset (koppeling) om de Update Set te openen. |
6 |
Klik in de rechterbovenhoek van het venster op Voorbeeld bijwerken ingesteld om de updateset te controleren op problemen. |
7 |
Klik op Sluiten in het dialoogvenster Voorbeeld set bijwerken nadat de voorbeeldweergave is voltooid. |
8 |
Klik op Doorvoeren updateset. |
9 |
Klik op Sluiten in het dialoogvenster Doorvoer updateset zodra het doorvoeren van de updateset is voltooid. |
1 |
Typ in het veld Filternavigator |
2 |
Sorteer de eigenschappen op de pagina Systeemeigenschappen op bijgewerkte datum. Controleer of u de volgende eigenschappen van Webex Contact Center ziet: |
3 |
Klik op agentdesktop_url om de pagina Systeemeigendom agentdesktop_url te openen. |
4 |
Geef in het veld Waarde de URL op voor Webex Contact Center Desktop afhankelijk van het werkingsgebied. |
5 |
Klik op Bijwerken om de wijzigingen op te slaan. |
6 |
(Optioneel) Als u de naam van de tabel Activiteit wilt wijzigen, bewerkt u indien nodig de eigenschappen van webexccactiviteit . Klik op de pagina Systeemeigenschappen op webexccactiviteittabel. Wijzig desgewenst het veld Waarde . |
7 |
(Optioneel) Voeg gebruikersgroepen op de volgende manieren toe:
|
1 |
Ga vanuit het veld Filternavigator naar . |
2 |
Klik op Nieuw. |
3 |
Voer de volgende eigenschappen in voor de URL:
|
4 |
Klik rechts van het veld URL op de knop Slot en voeg agentdesktop.do |
5 |
(Optioneel) Selecteer de gebruiker-/agentgroepen die u de configuratie wilt toewijzen. |
6 |
Klik op Verzenden. De URL wordt weergegeven als een koppeling. |
7 |
Voordat u de OpenFrame-telefoon probeert te gebruiken, moet u het bestand Met aangepaste desktopindeling voor ServiceNow uploaden naar de Webex Contact Center Management Portal. Zie ServiceNow Desktop-indeling instellen op Webex Contact Center voor meer informatie. |
1 |
Download de desktopindeling voor ServiceNow van https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Werk zo nodig de eigenschappen in het bestand met de bureaubladindeling bij. |
3 |
Ga naar Webex Contact Center Beheerportal. |
4 |
Klik op de navigatiebalk van de Management Portal op . |
5 |
Klik op Nieuwe indeling en voer de details voor de bureaubladindeling in. |
6 |
Upload het JSON-bestand met ServiceNow Desktop-indeling. |
7 |
Klik op Opslaan om de configuratie op te slaan. U kunt Webex Contact Center Desktop nu in de ServiceNow-console starten. |
8 |
Navigeer vanuit het veld Filternavigator naar . |
In de volgende hoofdstukken worden de stappen beschreven voor het installeren van de ServiceNow-connector voor ondernemingsinstanties met een licentie.
1 |
Meld u aan bij uw ServiceNow-account voor ontwikkelaarsportal en open de beheerconsole . |
2 |
Klik in het gedeelte Mijn instantie van het menu Account op Opbouw starten. |
3 |
In uw exemplaar voor ontwikkelaars navigeert u in het veld Filternavigator linksboven in het venster naar Invoegtoepassingen. |
4 |
Zoek de invoegtoepassing Openframe die de titel Openframe heeft. Mogelijk moet u door de lijst bladeren. |
5 |
Klik op Installeren om de Openframe-invoegtoepassing te installeren. |
6 |
Klik in het dialoogvenster Invoegtoepassing activeren op Activeren. |
7 |
Wanneer de plugin is geactiveerd, klikt u op Sluiten en Opnieuw laden in het dialoogvenster Plugin-activering . |
8 |
Navigeer om de activering van de invoegtoepassing te controleren naar OpenFrame in het veld Filternavigator linksboven in hetvenster. |
9 |
Klik op Configuraties en zorg ervoor dat de OpenFrame-invoegtoepassing wordt weergegeven in de lijst met OpenFrame-configuraties . |
Instanties met ondernemingslicenties kunnen de toepassing Webex Contact Center rechtstreeks vanuit de ServiceNow Store installeren.
Download en installeer Webex Contact Center via ServiceNow store: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
Geef in het veld Filternavigator |
2 |
Sorteer de eigenschappen op de pagina Systeemeigenschappen op bijgewerkte datum. Zorg ervoor dat u de volgende eigenschappen van Webex Contact Center kunt zien: |
3 |
Klik op agentdesktop_url om de pagina Systeemeigendom agentdesktop_url te openen. |
4 |
Geef in het veld Waarde de URL op voor Webex Contact Center Desktop afhankelijk van het gebied waarin de desktop actief is. |
5 |
Klik op Bijwerken om de wijzigingen op te slaan. |
6 |
(Optioneel) Als u de naam van de tabel Activiteit wilt wijzigen, bewerkt u indien nodig de eigenschappen van x_caci_webexcc.webexccactivitytable .
|
7 |
(Optioneel) Voeg gebruikersgroepen op de volgende manieren toe:
|
1 |
Ga vanuit het veld Filternavigator naar . |
2 |
Klik op Nieuw. |
3 |
Voer de volgende eigenschappen in voor de URL:
|
4 |
Klik rechts van het veld URL op de knop Vergrendelen en voeg x_caci_webexcc_agentdesktop.do |
5 |
(Optioneel) Selecteer de gebruiker-/agentgroepen die u de configuratie wilt toewijzen. |
6 |
Klik op Verzenden. De URL wordt weergegeven als een koppeling. |
7 |
Navigeer vanuit het veld Filternavigator naar . |
8 |
(Optioneel) Verplaats in de lijst Gebruikersgroepen de gebruikersgroepen die toegang hebben tot Webex Contact Center Desktop van Beschikbaar naar Geselecteerd. |
9 |
Voordat u de OpenFrame-telefoon probeert te gebruiken, moet u het bestand Met serviceNow aangepaste desktopindeling JSON uploaden naar de Webex Contact Center Management Portal. Zie ServiceNow-bureaubladindeling instellen op Webex Contact Center voor meer informatie. |
1 |
Download de desktopindeling voor ServiceNow van https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Werk indien nodig de eigenschappen in het bureaubladindelingsbestand bij. |
3 |
Ga naar het Webex Contact Center Managementportaal. |
4 |
Selecteer in de navigatiebalk van de Management Portal de optie . |
5 |
Klik op Nieuwe lay-out en voer de details voor de bureaubladlay-out in. |
6 |
Upload het ServiceNow Desktop Layout JSON-bestand. |
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 Filternavigator naar . |
1 |
Navigeer vanuit het veld Filternavigator naar Incidenten > Open incident. |
2 |
Klik met de rechtermuisknop op het aanroepveld en klik op Woordenboek configureren. |
3 |
Voeg door komma's gescheiden kenmerken toe U kunt nu de Webex Contact Center Desktop in de ServiceNow-console gebruiken. |
4 |
Navigeer vanuit het veld Filternavigator naar . |
We ondersteunen alleen inloggen op Agent Desktop met behulp van WebRTC voor Salesforce (SFDC) en Microsoft Dynamics (MS Dynamics) Connectors.
Agent Desktop in de ServiceNow-console
Voordat u naar het buitenland belt, moet u het volgende doen:
-
Maak het outdial-toegangspunt aan en stel een outdial-toegangspuntstrategie op.
-
Schakel outdial ANI in voor het agentprofiel.
-
Stel de outdial ANI in op een Dial Number-to-Entry Point mapping.
Zie het hoofdstuk Provisioning van de Cisco Webex Contact Center Setup and Administration Guide voor meer informatie.
Navigeer vanuit het veld Filternavigator naar .
Voor informatie over het gebruik van Desktop, zie de Agent Tab in de Webex Contact Center help.
Overzicht
In dit artikel worden verschillende manieren besproken om uw bedrijfsregels voor de ServiceNow CRM-connector aan te passen. Er wordt gedetailleerd beschreven hoe u de use cases kunt aanpassen op basis van bedrijfsregels die specifiek zijn voor ServiceNow.
De klant moet deze use cases zelf beheren via ServiceNow. De configuratie is specifiek voor ServiceNow en niet voor Webex Contact Center software of expertise.
Dit is referentiedocumentatie ter ondersteuning van het aanpassen van bedrijfsregels. De ServiceNow-ontwikkelaars maken en beheren de bedrijfsregels en bieden ondersteuning.
Cisco biedt alleen voorbeelddocumentatie.
In de volgende secties vindt u informatie over het instellen, inschakelen en beheren van de Acties-widget voor ontwikkelaars- en Enterprise-exemplaren.
Commit de update set voor Acties Widget
Installeer voor de gelicentieerde Enterprise-exemplaren de nieuwste app Webex Contact Center uit de ServiceNow Store.
Om de Acties-widget voor de ontwikkelaarsinstanties in te stellen, downloadt u het meest recente bestand System Update Set XML dat beschikbaar is in de GitHub-repository 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. Voor het vastleggen van de updateset voor de widget Acties raadpleegt u stap 2 tot en met 9 in De updateset vastleggen.
Acties-widget inschakelen
Gebruik de eigenschap isWidgetDisplayEnabled om de widget Acties in te schakelen. U mag de waarde van deze eigenschap in het headless-gedeelte van de aangepaste bureaubladindeling niet wijzigen. In het headless-gedeelte van de aangepaste desktoplay-out staat deze eigenschap altijd op 'false'. U mag de waarde van de eigenschap alleen bijwerken in het paneelgedeelte van de aangepaste bureaubladindeling.
Nadat u de widget Acties in de aangepaste bureaubladindeling hebt ingeschakeld, kunt u de volgende acties uitvoeren:
- Activiteitenrecords beheren: klik op Activiteitenrecord bekijken/bewerken om de lijst met activiteitenrecords te bekijken die aan de beller zijn gekoppeld.
- CRM-objecten koppelen: klik op Koppelen aan activiteitenrecords om CRM-objecten, zoals het gesprekstype (inkomend of uitgaand), gespreksobject, gespreksnotities, enzovoort, toe te voegen aan het activiteitenrecord.
- Incidenten beheren: klik op Incident maken. Er wordt een nieuw incident aangemaakt, waarbij de gegevens van de beller al zijn ingevuld. U kunt de gewenste updates aan het incident doorvoeren. U kunt het recordtype naar wens aanpassen van incident naar case, HR-module, enzovoort. Om het recordtype te wijzigen, wijzigt u de waarde van de typeOfRecord eigenschap in de configuratie van de Acties-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" : "Incident maken" }, "wrapper": { "title": "SNOW-acties!", "maximizeAreaName": "app-maximize-area" } } ] }
- Live gespreksnotities toevoegen: in het tekstvak kunt u aanvullende informatie over het gesprek vastleggen en het gesprek afronden. Deze notities worden toegevoegd als gespreksnotities in het activiteitenrecord.
Codewijziging op ServiceNow
Het script bevat wijzigingen-
Ga naar de filternavigator en zoek naar
Script bevat
.Selecteer Script bevat onder Systeemgebruikersinterface.
-
Filter de Naam en zoek naar
propUtils
. -
Verander de methode
GebruikerGetSysId
In het Script.Huidig:
UserGetSysId: functie () { var geopend_voor; var gebruiker = nieuw GlideRecord("sys_gebruiker"); gebruiker.addQuery(this.getParameter('veld'),this.getParameter('waarde')); gebruiker.query(); als (gebruiker.next()) geopend_voor=gebruiker.sys_id; var grInt = nieuw GlideRecord('interactie'); grInt.initialize(); grInt.toegewezen_aan= gs.getUserID(); grInt.type= 'telefoon'; grInt.opened_for= geopend_voor; var sysid=grInt.Insert(); return sysid; },
Nieuwe voorbeeldcode voor het incident:
UserGetSysId: function () { var opened_for; //Incidentgerelateerde wijzigingen 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(); } anders{ inc.initialize(); inc.caller_id=geopend_voor; inc.contact_type='telefoon'; inc.short_description='Oproep ontvangen van'+ this.getParameter('waarde'); sysidlist.incsysid=inc.Insert(); } } var grInt = new GlideRecordSecure('interactie'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefoon'; grInt.opened_for= geopend_voor; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
Ga naar de filternavigator en zoek naar
UI-pagina
.Selecteer UI-pagina's onder Systeem-UI.
-
Filter de Naam en zoek naar
agentdesktop
. -
Verander de
schermafbeelding
Functie in Clientscript.Huidige functie:
// scherm pop-functie screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.telefoonnummer){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_naam', 'UserGetSysId'); gaout.addParam('veld', 'telefoon'); gaout.addParam('waarde', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });
Voorbeeldcode voor het incident:
// scherm pop-functie 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(); // Voor incidentgerelateerde wijziging var sysObj = JSON.parse(gaout.getAnswer()); als(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entiteit: 'incident', query: 'sys_id='+sysObj.incsysid, 'interactie_sys_id': sysObj.sysid }); }anders{ openFrameAPI.openServiceNowForm({ entiteit: 'incident', query: 'sys_id=-1', 'interactie_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Als de bellergegevens in CRM aanwezig zijn en er al een nieuw incident met dit contact is geopend, opent de toepassing het lopende incident
Als de bellergegevens niet in CRM aanwezig zijn, opent de applicatie een nieuw incident
Als de bellergegevens in CRM aanwezig zijn, opent de applicatie een nieuw incident met vooraf ingevulde details
Overzicht
In dit use case wordt gedetailleerd beschreven hoe u een extra kolom aan de ServiceNow-tabel toevoegt (webexcc_imp_activity) en hoe u sn_openframe_phone_log maakt na de installatie van de CC Webex voor ServiceNow CRM Connector.
Standaard bevat de tabel bepaalde kant-en-klare systeemvelden en waarden.
U kunt meer bedrijfsspecifieke variabelen (CAD-variabelen) maken in de WebexCC Flow Designer en de CAD-variabelen toevoegen aan het ServiceNow POST-aanroepactiviteitenlogboek. Deze variabelen kunt u ook opslaan in de tabel met aanroepactiviteitengegevens van POST.
Dit is uitsluitend referentiedocumentatie en laat zien hoe u dit doet voor een voorbeeld-CAD-variabele met de naam Klantnaam. Deze variabele slaat de klantnaam op in IVR en post deze naar ServiceNow.
Er wordt verwacht dat de ServiceNow-ontwikkelaars van partner+klant deze configuratie configureren en beheren, aangezien het een aanpassing is aan de bestaande connector.
Cisco biedt alleen de technieken waarmee u de connector kunt aanpassen en uitbreiden.
Op het moment van dit artikel heeft het Cisco-team de ondersteuning gevalideerd voor het toevoegen van CAD-variabelen aan het activiteitenlogboek en de activiteitentabel met behulp van de hieronder beschreven techniek:
Kolom toevoegen aan WebexCC IMP-activiteit
-
Bewerk de tabel in de ontwikkelaarsversie van ServiceNow.
-
Ga naar de filternavigator en zoek naar studio.
Selecteren
Webex-contactcenter
of
-
Selecteer de
WebexCC IMP-activiteit
tafel -
Voeg een nieuwe kolom toe, bijvoorbeeld:
Klantnaam
Kolom toevoegen aan telefoonlogboek
-
Bewerk de telefoonlogtabel.
-
Voeg een nieuwe kolom toe, bijvoorbeeld:
Klantnaam
.
WebexCC-activiteitstransformatiekaart
Voeg een nieuwe kolom toe, bijvoorbeeld: Klantnaam
veldkartering.
Lijstkolommen personaliseren
Zoals Service Now aanbeveelt, wijzigt u de actie Keuze van maken naar negeren.
Telefoonlogboeklijst 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 ondersteunend commentaar.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global. Abstract,{ getWebexccProp: functie () { 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); }, UserGet OmId: functie () { 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 // retour null; var grInt = nieuw GlideRecord('interactie'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefoon'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysid in; }, setWebexcctable: functie () { 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 =actInfo.dnis; webexcc.queuename =actInfo.wrapuptime; webexcc.callduration =actInfo.callduration =actInfo.CallDurationInSeconds; webexcc.beltijd =actInfo.beltijd; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; Deze regel is toegevoegd- om deze vast te leggen in het Activiteitenlogboek webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); Activiteiten op record incident; var actInfoString =dit.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(); } } sys_id; }, type: 'propUtils' });
Een CAD-variabele maken in Stromingsontwerper
De CAD-variabele toevoegen aan de desktopindeling
Voorbeeld
"CadName1:SnowField1,CadName2:SnowField2" CadName1 is Klantnaam SnowField1 wordt ook gebruikt als Klantnaam; dit maakt deel uit van de schaar die wordt getoond boven "actInfo.CustomerName".
Demo-schermafbeeldingen
Geef de nieuwe toegevoegde CAD-variabele in de tabel WebexCC-activiteit weer.
Cad-variabele maken voor Flow Designer
Urgentie van het incidentImpact op het incident
Script voor Service now bijwerken
Wijzigingen in het script omvat
-
Ga naar de filternavigator en zoek
naar script omvat
Selecteer de optie Script omvat onder Systeemgebruikersinterface.
-
Filter de naam met
propUtils
. -
De methode wijzigen
GebruikerGet Een id
In het veld Script .Huidig script:
UserGet OmId: functie () { 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:
UserGet OmId: functie () { 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.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='Oproep ontvangen van '+ this.getParameter('value'); sysidlist.inc gezsid=inc.Insert(); } } var grInt = new GlideRecordSecure('interactie'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefoon'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; retour JSON.stringify(sysidlist);//sysid; },
-
Ga naar de filternavigator en zoek
naar UI-pagina's
.Selecteer de optie UI-pagina's onder Systeeminterface.
-
Filter de UI-pagina's met Naam en zoek
naar agentdesktop
. -
De
schermpop
Functie in het scriptveld.Huidige functie:
scherm pop functie screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = nieuw Glide Depripri('propUtils'); gaout.addParam('sysparm_name', "UserGet EnId"); 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 functie screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != niet gedefinieerd) { 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 = nieuw Glide Enax('propUtils'); gaout.addParam('sysparm_name', 'UserGet Een Opn'); gaout.addParam('veld', 'telefoon'); 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.inc onderhid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.inc onder een beding, '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 bellergegevens wel in CRM aanwezig zijn en er geen nieuw of binnenkomend incident is, wordt de toepassing een nieuw incident geopend.
De code wijzigen op ServiceNow
Nieuwe kolommen toevoegen aan het WebExCC IMP-activiteit
tafel
Open de WebExCC IMP-activiteittafel
Klik op Bijwerken.
Nieuwe kolommen toevoegen aan het Telefoonlogboek
tafel
Open de Telefoonlogboek
tafel
WebexCC Activity Transform Map
Openen Kaart transformeren
Van de filternavigator
Klik op WebexCC Activity TransformMap
Klik op Bijwerken.
Wijzigingen in script omvat
-
Ga naar filternavigator en zoek naar 'script omvat'.
Selecteer het script onder Systeemgebruikersinterface.
-
De naam filteren met
propUtils
. -
De methode wijzigen
setWebexcctable (instellingWebexcctable)
.Nieuwe voorbeeldcode voor Incident:
setWebexcctable: functie () { 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()) { //var actInfoString; //var actInfoString =this.getParameter('actInfo'); var inc opexid=actInfo.incident_sys_id; var interaction nu=actInfo.interaction_sys_id; var incnum""; var intenum="; verwijderen actInfo['interaction_sys_id']; actInfo verwijderen['incident_sys_id']; if( interaction een inte!= null && interaction de glijdd != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interaction opinterval ); inte.addQuery('sys_id', interaction opa ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('status','Afgesloten voltooid'); inte.work_notes='Status bijwerken naar gesloten.'; inte.update(); } } if( inc onder een bepaalde id!= null && inc soort != niet gedefinieerd){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', inc onder een van den 24e ); 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 json 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.beltijd; 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(); } terug sys_id; },
Methodewijzigingen op UI-pagina's
-
Ga naar de filternavigator en zoek naar
Ui-pagina's
Selecteer de optie UI-pagina's onder Systeeminterface.
-
Filter de UI-pagina's met Naam en zoek naar agentdesktop
.
-
De
nowActiviteiten en screenpop
Functie in het script.Huidige functie:
function nowActivities(actInfo, ani) { var gaout = new Glide De voorbehandeld('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCR uitid); }
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.inc; } var gaout = new Glide Voorax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetC beschiid); } function screenpop(callerani,callSessionInfo) { if(callerani==callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new Glide Uitter('propUtils'); gaout.addParam('sysparm_name', 'UserGet InterfaceId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.inc onder een id){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.inc onderh, '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. Voer de bovenstaande stappen uit voor de aanpassingen voor de nieuwere versies 1.0.7 en hoger.
Aanpassing # 1 - Aangepaste bedrijfsregels toevoegen voor use cases voor gespreksstromen
Een nieuw incidentrecord maken voor elke oproepMaak voor elke nieuwe oproep in de WebexCC CRM connector in ServiceNow een Nieuw incidentrecord.
Zoeken naar bedrijfsregels in de filternavigator
Klik op Nieuw.
Voorbeeldcode ter referentie:
functie customcti() { var url = null; var naam = 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-weergave = sysparm_view; if (weergave == null || weergave == '') weergave = "itil"; var userID = null; if (eid != null &&& eid != '') { userId = UserGet Watid("employee_number",eid); } if (= null &&& naam != null && naam != '') { gebruikerID = UserGet EnDId("naam", naam); } if (gebruikersnaam == null && telefoon != null && telefoon != '') { userID = UserGet En Voordid("telefoon", telefoon); } if (gebruikersID != 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; } antwoord = url; url inleveren; } functie UserGet Enid(veld, waarde) { var user = new GlideRecord("sys_user"); user.addQuery(veld, value); user.query(); if (user.next()) return user.sys_id; else return null; }
Voorbeeld van de configuratie van de bedrijfregel
Client gespreksbaar inschakelen
Verwerking van Computer Telephony Integration (CTI) voor incident wordt gemarkeerd als Waar.
Werk de url van screenpop bij met de aangepaste CTI-regel " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
De sysparm_cti_rule=naam waarbij 'naam' de naam van een functie is, moet worden aangeroepen voor CTI Verwerken in plaats van het standaardscript.
Definieer de functie in een sys_script vermelding die is gemarkeerd als client beller.
Als u GlideRecords moet Insert, bijwerken of verwijderen in de functie, belt u een afzonderlijke niet-bellerbare functie om de updates uit te voeren.
Als u een scriptclient gespreksbaar wilt maken, moet u het selectievakje Client-gespreksbaar inschakelen op het formulier dat verschijnt wanneer het sys_script wordt weergegeven.
Het selectievakje client-beller wordt standaard niet weergegeven. Om te kunnen weergeven, moet u de velden op het formulier aanpassen met behulp van het tandwielpictogram en het slush bucketmechanisme.
Aanpassing # 2 - Voeg CAD-variabele toe in activiteitentabel Webex Contact Center
OverzichtDit artikel beschrijft het proces voor het toevoegen van een extra kolom aan de tabel ServiceNow, webexcc_activity die is gemaakt na de installatie van de Webex CC voor ServiceNow CRM Connector.
De tabel bevat standaard systeemvelden en waarden.
U kunt mogelijk meer bedrijfsspecifieke variabelen (CAD-variabelen) in de WebexCC Flow-ontwerper maken en deze CAD-variabelen toevoegen in het Logboek met gespreksactiviteit van ServiceNowPOST, en dit bijhouden aan de POST tabelgegevens voor gespreksactiviteit.
-
Dit is alleen referentiedocumentatie, en laat zien hoe u dit kunt doen voor een voorbeeld van een CAD-variabele (Klantnaam) waarbij de klantnaam wordt opgeslagen in de IVR en deze post bij ServiceNow.
-
De partner+klant ServiceNow ontwikkelaars zullen deze configuratie configureren en beheren als het een aanpassing is op de bestaande connector.
-
Cisco geeft alleen de technieken voor het aanpassen en uitbreiden van de connector.
-
Sinds dit artikel heeft het team Cisco ondersteuning gevalideerd voor het toevoegen van een CAD-variabele aan het Activiteitenlogboek en de Activiteitstabel met behulp van de hieronder beschreven techniek.
Bewerk de tabel in de ontwikkelaarsversie van ServiceNow.
Ga naar
.Selecteer tabel WebExCC-activiteit .
Bijvoorbeeld Klantnaam.
Selecteer Lijstindeling voor WebexCC-activiteit.
Deze stap is niet vereist als u de Updateset XML gebruikt - er hoeft slechts één regel "webexcc.u_customername=actInfo.CustomerName" aan propUtils te worden toegevoegd.

Voorbeeldscript
Zie de regel met:webexcc.u_customername=actInfo.CustomerName; met een ondersteunde opmerking.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global. Abstract,{ getWebexccProp: functie () { 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(webccprop); }, setWebexcctable: functie () { 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; // Deze regel wordt toegevoegd - om deze regel vast te leggen in webexcc van het activiteitenlogboek. u_customername=actInfo.CustomerName; sys_id=webexcc.Insert(); Activiteiten op record incident; var actInfoString =dit.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(); } } } sys_id; }, type: 'propUtils2' });
De gebruikersinterface-pagina bewerken met een nieuwe scriptnaam
Een CAD-variabele maken in Stromingsontwerper
De CAD-variabele toevoegen aan de desktopindeling
Demo-schermafbeeldingen
Geef de nieuwe toegevoegde CAD-variabele in de tabel WebexCC-activiteit weer.
