Integrate Webex Contact Center met ServiceNow
Wanneer u Webex Contact Center integreert met de ServiceNow CRM console, kunt u Webex Contact Center Desktop vanuit ServiceNow starten.
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 Beheerhub bij https://admin.webex.com en de Webex Contact Center-beheerportal. De URL's voor de Beheerportal zijn specifiek voor uw regio.
-
Noord-Amerika: https://portal.wxcc-us1.cisco.com
-
Singapore: https://portal-v2.wxcc-sg1.cisco.com
-
-
Een agent die toegang heeft tot de desktop. De URL voor de Desktop is specifiek voor uw regio.
-
Noord-Amerika: https://desktop.wxcc-us1.cisco.com
-
Singapore: https://desktop.wxcc-sg1.cisco.com
-
-
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. Als u een account wilt maken, gaat u naar de ServiceNow-ontwikkelaarsportal op https://developer.servicenow.com/dev.do en klikt u op Aanmelden en bouwen starten.
-
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. Raadpleeg 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 Updateset importeren van XML . |
4 |
Klik op Bestand kiezen, selecteer de systeemupdateset XML bestand en klik vervolgens 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 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 de Webex Contact Center Desktop afhankelijk van het gebied waar de activiteiten zijn. |
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-beheerportal. Zie De ServiceNow Desktop-indeling instellen in 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 de Webex Contact Center Desktop nu in 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 het venster. |
9 |
Klik op Configuraties en zorg ervoor dat de OpenFrame-invoegtoepassing wordt weergegeven in de lijst met OpenFrame-configuraties . |
Instanties met enterprise-licenties kunnen de Webex Contact Center-toepassing rechtstreeks vanuit de ServiceNow Store installeren.
Download en installeer de Webex Contact Center-pakket via de 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. Controleer of u de volgende eigenschappen 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 de Webex Contact Center Desktop afhankelijk van het gebied waar de activiteiten zijn. |
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 de Webex Contact Center Desktop van Beschikbaar naar Geselecteerd. |
9 |
Voordat u de OpenFrame-telefoon probeert te gebruiken, moet u het bestand Met aangepaste desktopindeling voor ServiceNow uploaden naar de Webex Contact Center-beheerportal. Zie De ServiceNow Desktop-indeling instellen in 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 de Webex Contact Center Desktop nu in ServiceNow-console starten. |
8 |
Navigeer vanuit het veld Filternavigator naar . |
1 |
Navigeer vanuit het veld Filternavigator naar Incidenten > Open incident. |
2 |
Klik met de rechtermuisknop op het bellerveld en klik op Verklarende taal configureren. |
3 |
Voeg door komma's gescheiden attributen U kunt nu de Webex Contact Center Desktop in de ServiceNow-console gebruiken. |
4 |
Navigeer vanuit het veld Filternavigator naar . |
Agent Desktop in de ServiceNow-console
Zorg dat u het volgende doet voordat u uitgaande gesprekken tot stand brengt:
-
Maak het uitgaande toegangspunt en stel een strategie voor uitgaande toegangspunten in.
-
Schakel uitgaande ANI in voor het agentprofiel.
-
Stel voor de uitgaande ANI in op een toewijzing van nummer naar ingang.
Zie het hoofdstuk Inrichten van de Cisco Webex Contact Center Installatie- en beheerdershandleiding voor meer informatie.
Navigeer vanuit het veld Filternavigator naar .
Zie het tabblad Agent in Webex Help voor contactcentrum voor meer informatie over het gebruik van Desktop.
Overzicht
In dit artikel worden verschillende manieren beschreven om uw bedrijfsregels aan te passen voor de ServiceNow CRM connector. Hier wordt uitgelegd hoe u de use cases 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 Webex Contact Center-software of expertise.
Dit is een referentiedocumentatie om de aanpassing van bedrijfsregels te helpen. De ServiceNow-ontwikkelaars zullen de bedrijfsregels maken en beheren en ondersteuning bieden.
Cisco levert alleen voorbeelddocumentatie.
In de volgende secties vindt u informatie over het instellen, inschakelen en beheren van de widget Acties voor ontwikkelaars en ondernemingsinstanties.
De widget Updateset voor acties inschakelen
Installeer voor de gelicentieerde enterprise-exemplaren de nieuwste Webex Contact Center-app uit de ServiceNow Store.
Als u de widget Acties wilt instellen voor de ontwikkelaars, downloadt u het laatste bestand systeemupdateset XML bestand dat beschikbaar is op 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. Zie stappen 2 tot 9 in De updateset doorvoeren voor de widget Acties.
Widget Acties inschakelen
Gebruik de eigenschap isWidgetDisplayEnabled om de widget Acties in te schakelen. U mag de waarde van deze eigenschap niet wijzigen in het gedeelte headless van de aangepaste bureaubladindeling. De eigenschap wordt altijd ingesteld op onwaar in de sectie headless van de aangepaste bureaubladindeling. Wijzig de waarde van de eigenschap alleen 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 Activiteitsrecord weergeven/bewerken om de lijst met activiteitsrecords weer te geven die aan de beller zijn gekoppeld.
- CRM-objecten koppelen: klik op Koppelen aan activiteitenrecords om CRM-objecten als gesprekstype (inkomend of uitgaand), gespreksobjecten, gespreksnotities enzovoort toe te voegen aan het activiteitsrecord.
- Incidenten beheren: klik op Incident maken. Er wordt een nieuw incident gemaakt met de gegevens van de beller die vooraf zijn ingevuld. U kunt het incident zelf de benodigde updates aanbrengen. U kunt ervoor kiezen om het recordtype voor incident tot case, HR-module enzovoort aan te passen op basis van uw wensen. Als u het recordtype wilt wijzigen, wijzigt u de waarde van de eigenschap typeOfRecord in de widgetconfiguratie Acties. Bijvoorbeeld:
{ "comp": "MD-tab-panel", "attributen": { "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-acties ", "maximizeAreaName": "app-maximizeArea-area" }
- Live-notities toevoegen. U kunt extra informatie over het gesprek vastleggen in het tekstgebied en het gesprek afronden. U kunt deze notities toevoegen als gespreksopmerkingen in het activiteitenrecord.
Codewijziging op ServiceNow
Het script bevat wijzigingen-
Ga naar de filternavigator en zoek naar
Script omvat
.Selecteer het script onder Systeemgebruikersinterface.
-
De naam filteren en zoeken naar
propUtils
. -
De methode wijzigen
GebruikerGet Een id
In het script.Curent:
UserGet EnId: 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; //Incident gerelateerde 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()) { sysid.inc soortid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='Oproep ontvangen van '+ this.getParameter('value'); sysidlist.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; JSON.stringify(sysidlist) retourneren; },
-
Ga naar filternavigator en zoek
naar UI-pagina
.Selecteer UI-pagina's onder Systeemgebruikersinterface.
-
De naam filteren en zoeken naar
agentdesktop
. -
De
schermpop
Functie in clientscript.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:
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(); // For Incident-related change var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.inc indzsid){ openFrameAPI.openServiceNowForm({ entiteit: 'incident', query: 'sys_ id='+sysObj.inc aan de binnendienst, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Als de bellergegevens aanwezig zijn in CRM en er wordt al een nieuw incident geopend met dit contact, opent de toepassing het nieuwe incident
Als de bellergegevens niet aanwezig zijn in de CRM, wordt door de toepassing een nieuw incident geopend.
Als de bellergegevens in CRM aanwezig zijn, wordt een nieuw incident geopend met vooraf ingevulde gegevens.
Overzicht
Deze use case beschrijft het proces voor het toevoegen van een extra kolom aan de ServiceNow-tabel. Hiermee webexcc_imp_activity en maak sn_openframe_phone_log bij de installatie van de Webex CC voor ServiceNow CRM Connector.
Standaard bevat de tabel bepaalde standaardsysteemvelden en -waarden.
U kunt meer bedrijfsspecifieke variabelen (CAD-variabelen) maken in de WebexCC Flow-ontwerper en de CAD-variabelen toevoegen in het ServiceNow-logboek met activiteiten na gesprek, en deze ook behouden in de tabelgegevens van activiteiten na gesprekken.
Dit is alleen een referentiedocumentatie, en hierin wordt getoond hoe u dit kunt doen voor een voorbeeld van een CAD-variabele genaamd Klantnaam waarmee de klantnaam in de IVR wordt opgeslagen en deze in ServiceNow wordt geplaatst.
Naar verwachting zullen de partner+customer ServiceNow ontwikkelaars deze configuratie configureren en beheren omdat het een aanpassing is op de bestaande connector.
Cisco levert alleen de technieken voor het aanpassen en uitbouwen van de connector.
Sinds dit artikel heeft het Cisco-team ondersteuning gevalideerd voor de toevoeging van een CAD-variabele aan het Activiteitenlogboek en de Activiteitstabel 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 studio.
Selecteren
Webex-contactcenter
of
-
Selecteer het selectievakje
WebExCC IMP-activiteit
tafel -
Een nieuwe kolom toevoegen, bijvoorbeeld
Naam klant
Kolom toevoegen aan telefoonlogboek
-
De tabel met telefoonlogboeken bewerken.
-
Een nieuwe kolom toevoegen, bijvoorbeeld
Naam klant
.
WebexCC Activity Transform Map
Een nieuwe kolom toevoegen, bijvoorbeeld Naam klant
veldtoewijzing.
Kolommen lijst aanpassen
Zoals in Service now wordt aanbevolen, wijzigt u de bewerking Keuze van maken in negeren.
Lijst met telefoonlogboeken configureren
Ga naar Inclusief script
Slechts één lijn toevoegen webexcc.u_customername=actInfo.Klantnaam
Bij propUtils.
Voorbeeldscript
Zie de regel: webexcc.u_customername=actInfo.CustomerName; met een ondersteunde opmerking.
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 EnId: 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('value'); inc.impact=this.getParameter('Impact'); inc.short_description='Oproep ontvangen van '+ this.getParameter('value'); sysid.inc soortid=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 Een nieuwe kolom toevoegen - InteractionsNumber Een nieuwe kolom - IncidentNummer toevoegen
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
Computer Telephony Integration (CTI) Verwerking voor incident wordt als Waar gemarkeerd.
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 is van een functie , 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 invoegen, bijwerken of verwijderen in de functie, belt u een afzonderlijke niet-client-gespreksfunctie 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 aan Webex activiteitentabel contactcentrum
OverzichtDit artikel beschrijft het proces voor het toevoegen van een extra kolom aan de ServiceNow-tabel, webexcc_activity die wordt 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 ServiceNow-activiteiten na gesprekken en dit bijhouden aan detabelgegevens na gespreksactiviteit .
-
Dit is alleen referentiedocumentatie, en hierin wordt getoond hoe u dit kunt doen voor een voorbeeld van een CAD-variabele met de naam Klant waarmee de klantnaam in het IVR wordt opgeslagen en deze wordt geplaatst bij ServiceNow.
-
De partner+klant ServiceNow ontwikkelaars zullen deze configuratie configureren en beheren als het een aanpassing is op de bestaande connector.
-
Cisco zal alleen de technieken verschaffen voor het aanpassen en uitbouwen van de connector.
-
Met betrekking tot dit artikel heeft het Cisco-team ondersteuning gevalideerd voor de toevoeging 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 het Contact Center van
Selecteer tabel WebExCC-activiteit .
Bijvoorbeeld Klantnaam.
Selecteer Lijstindeling voor WebexCC-activiteit.
Deze stap is niet vereist wanneer u de Update Set gebruikt XML - 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 scriptnaamEen 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.