Webex Contact Center integreren met ServiceNow (versie 1 - verouderd)
Voorwaarden
Deze functie is momenteel alleen van toepassing op agenten.
Voordat u Webex Contact Center integreert met de ServiceNow CRM-console, moet u ervoor zorgen dat u het volgende hebt:
-
Toegang tot Webex Contact Center.
-
Beheerderstoegang tot de Control Hub https://admin.webex.com en de beheerportal van Webex Contact Center. De URL's voor de beheerportal zijn specifiek voor uw regio.
-
Noord-Amerika: https://portal.wxcc-us1.cisco.com
-
Verenigd Koninkrijk: https://portal.wxcc-eu1.cisco.com
-
Singapore: https://portal-v2.wxcc-sg1.cisco.com
-
-
Een agent met toegang tot het bureaublad. De URL voor het bureaublad is specifiek voor uw regio.
-
Noord-Amerika: https://desktop.wxcc-us1.cisco.com
-
Verenigd Koninkrijk: https://desktop.wxcc-eu1.cisco.com
-
Singapore: https://desktop.wxcc-sg1.cisco.com
-
-
Toegang van agent tot het volgende domein dat is toegevoegd aan de Lijst Toegestane lijst inhoudsbeveiligingsbeleid:
-
*.service-now.com
Zie het artikel Beveiligingsinstellingen voor Webex Contact Center voor meer informatie over het definiëren van de lijst met toegestane gegevens.
-
-
Een account voor een ServiceNow-ontwikkelaarsportal. Als u een account wilt maken, gaat u naar de portal ServiceNow Developer op en klikt https://developer.servicenow.com/dev.do u op Aanmelden en Gebouw starten.
-
Toegang tot de volgende bestanden op https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow Update Set (XML)
-
Lay-out van ServiceNow Contact Center-bureaublad (JSON)
-
- De ServiceNow-edities die Webex Contact Center ondersteunt 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 instanties van ontwikkelaars raden we u aan de stappen in de handleiding voor instanties van ontwikkelaars te volgen.
Als u eigenaar bent van een instantie met bedrijfslicentie, volgt u de richtlijnen voor instanties met bedrijfslicentie.
We raden niet aan de app met een zakelijke licentie te mengen met sandbox-instanties van ontwikkelaars.
In de volgende gedeelten worden de stappen beschreven voor het installeren van de ServiceNow-connector voor ontwikkelaarsinstanties.
1 |
Meld u aan bij uw account voor de ServiceNow-ontwikkelaarsportal en open de Beheerconsole . |
2 |
Klik in het gedeelte Mijn exemplaar van het menu Account op Gebouw starten. |
3 |
Ga in uw ontwikkelaarsinstantie naar het veld Filternavigator linksboven in het venster naar Plug-ins. |
4 |
Zoek naar de Openframe-invoeg plug-in met de titel Openframe. Mogelijk moet u door de lijst bladeren. |
5 |
Klik op Installeren om de Openframe-invoegpagina te installeren. |
6 |
Klik in het activeervenster dialoogvenster op Activeren. |
7 |
Wanneer de activatie van de invoegtoepassing is voltooid, klikt u op Formulier sluiten en opnieuw laden in het dialoogvenster Activatie van invoegtoepassing . |
8 |
Om de invoegactivering te verifiëren, navigeert u vanuit het veld Filter navigator linksboven van het venster naar OpenFrame. |
9 |
Klik op Configuraties en zorg dat de OpenFrame-invoegpagina wordt weergegeven in de lijst OpenFrame-configuraties . |
1 |
Download het meest recente XML-bestand met de systeemupdate 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 |
Ga in uw ServiceNow-exemplaar naar het veld Filternavigator linksboven in het venster naar . |
3 |
Klik op de koppeling Update importeren ingesteld vanuit XML . |
4 |
Klik op Bestand kiezen, selecteer het XML-bestand Systeemupdate en klik vervolgens op Uploaden.
De bij te werken set wordt weergegeven in de lijst Opgehaalde update sets en heeft de status Geladen .
|
5 |
Klik in de lijst Opgehaalde updatesets op de bestandsnaam Updateset (koppeling) om de updateset te openen. |
6 |
Klik rechtsboven in het venster op Voorbeeld instellen bijwerken om te controleren of de update is ingesteld op problemen. |
7 |
Klik in het dialoogvenster Voorbeeld instellen bijwerken op Sluiten zodra het voorbeeld is voltooid. |
8 |
Klik op Update van commiteren ingesteld. |
9 |
Klik op Sluiten in het dialoogvenster Commit instellen bijwerken zodra het vastleggen van de set bijwerken is voltooid. |
1 |
Typ in het veld Filternavigator linksboven in het venster |
2 |
Op de pagina Systeemeigenschappen sorteren u de eigenschappen op de bijgewerkte datum. Zorg ervoor dat u de volgende eigenschappen van Webex Contact Center kunt zien: |
3 |
Klik om agentdesktop_url de pagina Systeem eigenschap te agentdesktop_url openen. |
4 |
Voer in het veld Waarde de URL voor de Webex Contact Center Desktop in volgens het bewerkingsgebied.
|
5 |
Klik op Bijwerken om de wijzigingen op te slaan. |
6 |
(Optioneel) Als u de naam van de tabel Activiteit wilt wijzigen, bewerkt u de eigenschappen van de webexccactiviteitstabel als dat nodig is. Klik op de pagina Systeemeigenschappen op webexccactivitytable. Wijzig indien nodig het veld Waarde . |
7 |
(Optioneel) Voeg gebruikersgroepen op de volgende manieren toe:
|
1 |
Navigeer vanuit het veld Filter navigator naar |
2 |
Klik op Nieuw. |
3 |
Voer de volgende eigenschappen in voor de URL:
|
4 |
Aan de rechterkant van het veld URL klikt u op de knop Vergrendelen en voegt u |
5 |
(Optioneel) Selecteer de gebruikers-/agentgroep(en) om de configuratie toe te wijzen. |
6 |
Klik op Verzenden. De URL wordt weergegeven als een koppeling. |
7 |
Voordat u probeert de OpenFrame-telefoon te gebruiken, moet u ervoor zorgen dat u het aangepaste JSON-bestand voor de ServiceNow-desktopindeling uploadt naar de beheerportal van Webex Contact Center. Zie De ServiceNow-desktopindeling instellen in Webex Contact Center voor meer informatie. |
1 |
Download de bureaubladindeling voor ServiceNow van https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Werk indien nodig de eigenschappen in het bestand Bureaubladindeling bij. |
3 |
Ga naar de beheerportal van Webex Contact Center . |
4 |
Kies in de navigatiebalk van de Beheerportal . |
5 |
Klik op Nieuwe lay-out en voer de gegevens voor de bureaubladindeling in. |
6 |
Upload het ServiceNow-desktop lay-out JSON-bestand. |
7 |
Klik op Opslaan om de configuratie op te slaan. U kunt nu Webex Contact Center Desktop starten binnen de ServiceNow-console. |
8 |
Ga in het veld Filternavigator naar . |
In de volgende gedeelten worden de stappen beschreven voor het installeren van de ServiceNow-connector voor gelicentieerde bedrijfsinstanties.
1 |
Meld u aan bij uw account voor de ServiceNow-ontwikkelaarsportal en open de Beheerconsole . |
2 |
Klik in het gedeelte Mijn exemplaar van het menu Account op Gebouw starten. |
3 |
Ga in uw ontwikkelaarsinstantie naar het veld Filternavigator linksboven in het venster naar Plug-ins. |
4 |
Zoek naar de Openframe-invoeg plug-in met de titel Openframe. Mogelijk moet u door de lijst bladeren. |
5 |
Klik op Installeren om de Openframe-invoegpagina te installeren. |
6 |
Klik in het activeervenster dialoogvenster op Activeren. |
7 |
Wanneer de activatie van de invoegtoepassing is voltooid, klikt u op Formulier sluiten en opnieuw laden in het dialoogvenster Activatie van invoegtoepassing . |
8 |
Om de invoegactivering te verifiëren, navigeert u vanuit het veld Filter navigator linksboven van het venster naar OpenFrame. |
9 |
Klik op Configuraties en zorg dat de OpenFrame-invoegpagina wordt weergegeven in de lijst OpenFrame-configuraties . |
Instanties met Enterprise-licenties kunnen de toepassing Webex Contact Center rechtstreeks vanuit de ServiceNow Store installeren.
Download en installeer het Webex Contact Center-pakket vanuit de ServiceNow Store: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
In het veld Filter navigator in de linkerbovenhoek van het venster voert u |
2 |
Op de pagina Systeemeigenschappen sorteren u de eigenschappen op de bijgewerkte datum. Zorg ervoor dat u de volgende eigenschappen van Webex Contact Center kunt zien: |
3 |
Klik om agentdesktop_url de pagina Systeem eigenschap te agentdesktop_url openen. |
4 |
Voer in het veld Waarde de URL voor de Webex Contact Center Desktop in volgens het bewerkingsgebied.
|
5 |
Klik op Bijwerken om de wijzigingen op te slaan. |
6 |
(Optioneel) Als u de naam van de activiteitentabel wilt wijzigen, bewerkt u de eigenschappen van de x_caci_webexcc.webexccactivitytable indien nodig.
|
7 |
(Optioneel) Voeg gebruikersgroepen op de volgende manieren toe:
|
1 |
Navigeer vanuit het veld Filter navigator naar |
2 |
Klik op Nieuw. |
3 |
Voer de volgende eigenschappen in voor de URL:
|
4 |
Aan de rechterkant van het veld URL klikt u op de knop Vergrendelen en voegt u |
5 |
(Optioneel) Selecteer de gebruikers-/agentgroep(en) om de configuratie toe te wijzen. |
6 |
Klik op Verzenden. De URL wordt weergegeven als een koppeling. |
7 |
Ga in het veld Filternavigator naar . |
8 |
(Optioneel) Verplaats in de lijst Gebruikersgroep de gebruikersgroepen die toegang hebben tot het Webex Contact Center-bureaublad van Beschikbaar naar Geselecteerd. |
9 |
Voordat u probeert de OpenFrame-telefoon te gebruiken, moet u ervoor zorgen dat u het aangepaste JSON-bestand voor de ServiceNow-desktopindeling uploadt naar de beheerportal van Webex Contact Center. Zie De ServiceNow-desktopindeling instellen in Webex Contact Center voor meer informatie. |
1 |
Download de bureaubladindeling voor ServiceNow van https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Werk indien nodig de eigenschappen in het bestand Bureaubladindeling bij. |
3 |
Ga naar de beheerportal van Webex Contact Center . |
4 |
Kies in de navigatiebalk van de Beheerportal . |
5 |
Klik op Nieuwe lay-out en voer de gegevens voor de bureaubladindeling in. |
6 |
Upload het ServiceNow-desktop lay-out JSON-bestand. |
7 |
Klik op Opslaan om de configuratie op te slaan. U kunt nu Webex Contact Center Desktop starten binnen de ServiceNow-console. |
8 |
Ga in het veld Filternavigator naar . |
1 |
Ga in het veld Filternavigator naar Incidenten > Incident openen. |
2 |
Klik met de rechtermuisknop op het veld van de beller en klik op Woordenboek configureren. |
3 |
Voeg door komma's gescheiden Attributen toe U kunt nu starten met het gebruik van het Webex Contact Center-bureaublad in de ServiceNow-console. |
4 |
Ga in het veld Filternavigator naar . |
We bieden momenteel geen ondersteuning voor aanmelden bij Agent Desktop met de optie Desktop (WebRTC).
Agent Desktop in de ServiceNow-console
Voordat u out-outgesprekken ondert, moet u ervoor zorgen dat u het volgende doet:
-
Maak het outdial entry point en stel een strategie voor een outdial invoerpunt in.
-
Schakel outdial ANI in voor het agentprofiel.
-
Stel de kies-ANI in op het toewijzen van een nummer-naar-invoerpunt.
Zie het hoofdstuk Inrichten van de Installatie- en beheerhandleiding voor Cisco Webex Contact Center voor meer informatie.
Ga in het veld Filternavigator naar .
Zie het tabblad Agent in de Help van Webex Contact Center voor meer informatie over het gebruik van Desktop.
Overzicht
Dit artikel behandelt verschillende manieren om uw bedrijfsregels aan te passen voor de CRM-connector van ServiceNow. Hierin wordt beschreven hoe u de usecases kunt aanpassen op basis van bedrijfsregels die specifiek zijn voor ServiceNow.
De klant moet deze usecases zelf beheren op ServiceNow. De configuratie is specifiek voor ServiceNow en niet voor Webex Contact Center-software of -expertise.
Dit is een referentiedocumentatie ter ondersteuning van de aanpassing van bedrijfsregels. De ServiceNow-ontwikkelaars maken en beheren de bedrijfsregels en bieden ondersteuning.
Cisco levert alleen voorbeelddocumentatie.
In de volgende gedeelten vindt u informatie over het instellen, inschakelen en beheren van de widget Acties voor instanties van ontwikkelaars en ondernemingen.
Widget Updateset voor acties vastleggen
Voor de gelicentieerde bedrijfsinstanties installeert u de nieuwste Webex Contact Center-app in de ServiceNow Store.
Als u de widget Acties wilt instellen voor de instanties van de ontwikkelaar, downloadt u het nieuwste XML-bestand met de systeemupdateset 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. Als u de updateset voor de widget Acties wilt vastleggen, raadpleegt u stap 2 tot en met 9 in De updateset vastleggen.
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 zonder koptekst van de aangepaste bureaubladindeling. De eigenschap is altijd ingesteld op onwaar in het gedeelte zonder koptekst van de aangepaste bureaubladindeling. U moet de waarde van de eigenschap alleen bijwerken in het deelvenstergedeelte van de aangepaste bureaubladindeling.
Nadat u de widget Acties hebt ingeschakeld in de aangepaste bureaubladindeling, kunt u de volgende acties uitvoeren:
- Activiteitsrecords 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 activiteitsrecords om CRM-objecten zoals gesprekstype (inkomend of uitgaand), gespreksobject, gespreksnotities enzovoort toe te voegen aan de activiteitsrecord.
- Incidenten beheren: klik op Incident maken. Er wordt een nieuw incident gemaakt met de gegevens van de beller vooraf ingevuld. U kunt de vereiste updates van het incident aanbrengen. U kunt ervoor kiezen om het recordtype aan te passen van incident naar case, HR-module enzovoort op basis van uw vereisten. Als u het recordtype wilt wijzigen, wijzigt u de waarde van de eigenschap typeOfRecord in de configuratie van de widget Acties. 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 gespreksaantekeningen toevoegen: u kunt aanvullende informatie over het gesprek vastleggen in het tekstgedeelte en het gesprek afronden. U kunt deze aantekeningen zien die als gespreksaantekeningen zijn toegevoegd in de activiteitenrecord.
Codewijziging in ServiceNow
Het Script Bevat wijzigingen-
Ga naar de filternavigator en zoek naar
scriptbevat
.Selecteer het Script bevat onder Gebruikersinterface van systeem.
-
Filter de naam en zoek naar
propUtils
. -
Wijzig de methode
UserGetSysId
in het script.Curent:
UserGetSysId: functie () { var opened_for; var user = nieuw GlideRecord("sys_user"); user.addQuery(this.getParameter('field'), this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = nieuw 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: functie () { var opened_for; //Incidentgerelateerde wijzigingen var sysidlist = {}; var-gebruiker = nieuw GlideRecordSecure("sys_user"); user.addQuery (this.getParameter('veld'), this.getParameter('value')); user.query(); if(user.next()) { opened_for=gebruiker.sys_id;//retourgebruiker.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('status','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='telefoon'; inc.short_description='Oproep ontvangen van '+ 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 de
pagina van de gebruikersinterface
.Selecteer UI-pagina's onder Gebruikersinterface van systeem.
-
Filter de naam en zoek naar
agentdesktop
. -
Wijzig de functie
screenpop
in Clientscript.Huidige functie:
// screen pop functie screenpop(callerani, callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = nieuw GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interactie', query: 'sys_id='+sysid });
Voorbeeldcode voor het incident:
// screen pop functie screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = nieuw 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()); 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 bellerinformatie in CRM bestaat en er al een nieuw incident is geopend met deze contactpersoon, opent de toepassing het incident in behandeling
Als de bellerinformatie niet bestaat in CRM, opent de toepassing een nieuw incident
Als de bellergegevens in CRM aanwezig zijn, opent de toepassing een nieuw incident met vooraf ingevulde gegevens
Overzicht
In deze praktijkvoorbeeld wordt het proces beschreven om een extra kolom toe te voegen aan de ServiceNow-tabel - webexcc_imp_activity en te maken sn_openframe_phone_log bij de installatie van de Webex CC 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-stroomontwerper en de CAD-variabelen toevoegen in het activiteitenlogboek na gesprek van ServiceNow en deze toevoegen aan de gegevens van de tabel met activiteiten na gesprek.
Dit is alleen referentiedocumentatie en laat zien hoe u dit doet voor een voorbeeld van een CAD-variabele, de naam van de klant, die de naam van de klant in de IVR opslaat en deze plaatst in ServiceNow.
Verwacht wordt dat de ontwikkelaars van partner en customer ServiceNow deze configuratie zullen configureren en beheren, aangezien het om een aanpassing van de bestaande connector gaat.
Cisco biedt alleen de technieken voor het aanpassen en uitbreiden van de connector.
Vanaf dit artikel heeft het Cisco-team ondersteuning voor de toevoeging van CAD-variabele aan het activiteitenlogboek en de activiteitentabel gevalideerd 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.
Selecteer
Webex Contact Center
of
-
Selecteer de tabel
WebexCC IMP-activiteit
-
Voeg een nieuwe kolom toe, bijvoorbeeld
Klantnaam
Kolom toevoegen aan telefoonlogboek
-
Bewerk de tabel met het telefoonlogboek.
-
Voeg een nieuwe kolom toe, bijvoorbeeld
Klantnaam
.
Transformatiekaart WebexCC-activiteit
Voeg een nieuwe kolom toe, bijvoorbeeld veldtoewijzing Klantnaam
.
Lijstkolommen personaliseren
Zoals Service Now aanbeveelt, wijzigt u de actie Keuze van maken in negeren.
Lijst met telefoonlogboeken configureren
Ga naar script opnemen
Voeg slechts één regel toe webexcc.u_customername=actInfo.CustomerName
aan propUtils.
Voorbeeldscript
Zie de regel: webexcc.u_customername=actInfo.CustomerName; met een ondersteunende opmerking.
var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ 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'); retourneren JSON.stringify(webexccprop); }, UserGetSysId: functie () { var opened_for; var-gebruiker = nieuw 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 = nieuw GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; }, 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 lijn wordt Toegevoegd - om deze vast te leggen in het activiteitenlogboek webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); //Activiteiten op incidentrecord; 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', gebruiker.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(); } } } retourneren sys_id; }, type: 'propUtils' });
Een CAD-variabele maken in Flow Designer
De CAD-variabele toevoegen aan de bureaubladindeling
Voorbeeld
"CadName1:SnowField1,CadName2:SnowField2" CadName1 is CustomerName SnowField1 wordt ook gebruikt als CustomerName die deel uitmaakt van voorbeeld scirpt showen boven "actInfo.CustomerName".
Demo schermafbeeldingen
Bekijk de nieuw toegevoegde CAD-variabele in de WebexCC-activiteitstabel.
CAD-variabele voor Flow Designer maken
Urgentie van het incidentImpact van het incident
Update van script voor Service Now
Wijzigingen in het script omvatten
-
Ga naar de filternavigator en zoek naar
scriptbevat
Selecteer de optie Script bevat onder Gebruikersinterface van systeem.
-
Filter de Naam met
propUtils
. -
Wijzig de methode
UserGetSysId
in het veld Script .Huidig script:
UserGetSysId: functie () { var opened_for; var user = nieuw GlideRecord("sys_user"); user.addQuery(this.getParameter('field'), this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = nieuw 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: functie () { var opened_for; var-sysidlist = {}; var-gebruiker = nieuw GlideRecordSecure("sys_user"); user.addQuery (this.getParameter('veld'), this.getParameter('value')); user.query(); if(user.next()) { opened_for=gebruiker.sys_id;//retourgebruiker.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('status','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='Oproep ontvangen van '+ 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-pagina's
.Selecteer de optie UI-pagina's onder Gebruikersinterface van systeem.
-
Filter de gebruikersinterface-pagina's met naam en zoek naar
agentdesktop
. -
Wijzig de functie
screenpop
in het scriptveld.Huidige functie:
// screen pop functie screenpop(callerani, callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = nieuw GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interactie', 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 != 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 bellerinformatie in CRM bestaat en er geen nieuw of lopend incident is, opent de toepassing een nieuw incident
De code wijzigen op ServiceNow
Nieuwe kolommen toevoegen aan de tabel WebexCC IMP-activiteit
Open de tabel WebexCC IMP-activiteitEen nieuwe kolom toevoegen - InteractionsNumber Een nieuwe kolom toevoegen - Incidentnummer
Klik op Bijwerken.
Nieuwe kolommen toevoegen aan de tabel Telefoonlogboek
Open de tabel Telefoonlogboek
Transformatiekaart WebexCC-activiteit
Open transformatiekaart
vanuit de filternavigator
Klik op WebexCC-activiteit TransformMap
Klik op Bijwerken.
Wijzigingen in het script omvatten
-
Ga naar de filternavigator en zoek naar "script includes".
Selecteer het Script bevat onder Gebruikersinterface van systeem.
-
Filter de Naam met
propUtils
. -
Wijzig de methode
setWebexcctable
.Nieuwe voorbeeldcode voor incident:
setWebexTable: 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()) { //Activiteiten in incidentrecord; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; actInfo verwijderen['interaction_sys_id']; actInfo verwijderen['incident_sys_id']; if( interactionsysid!= null && interactionsysid!= niet gedefinieerd){ 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='Status bijwerken naar gesloten.'; inte.update(); } } if( incsysid!= null && incsysid != ongedefinieerd){ 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', gebruiker.sys_id); inc.addQuery('status','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; },
Methodewijzigingen op UI-pagina's
-
Ga naar de filternavigator en zoek naar
UI-pagina's
Selecteer de optie UI-pagina's onder Gebruikersinterface van systeem.
-
Filter de gebruikersinterface-pagina's met
naam
en zoek naar agentdesktop. -
Wijzig de functie
nowActivities en screenpop
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 != ongedefinieerd) { 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); } functie screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = nieuw GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('veld', 'telefoon'); 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 versie 1.0.5 en lager. Volg de bovenstaande stappen voor aanpassingen voor de nieuwere versies 1.0.7 en hoger.
Aanpassingsnummer 1 - Aangepaste bedrijfsregels toevoegen voor usecases van het gespreksverloop
Een nieuw incidentrecord maken voor elk gesprekMaak voor elk nieuw gesprek 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-telefoon = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; indien (fQuery == null) fQuery = ''; var-weergave = sysparm_view; indien (weergave == null || weergave == '') weergave = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && naam != null && naam != '') { 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; } als (url == nul) { url = "incident.do?sys_id=-1"; indien (fQuery != null) URL += "&sysparm_query=" + fQuery; } antwoord = url; retoururl; } functie UserGetSysId (veld, waarde) { var-gebruiker = new GlideRecord("sys_user"); user.addQuery (veld, waarde); user.query(); if (user.next()) gebruiker retourneert.sys_id; anders retourneert null; }
Voorbeeldconfiguratie van de bedrijfsregel
Clientopvraagbaar inschakelen
Verwerking van Computer Telephony Integration (CTI) voor incident is gemarkeerd als Waar.
Werk de URL van de screenpop bij met de aangepaste CTI-regel " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
De sysparm_cti_rule=name waarbij 'name' de naam van een functie is, moet worden aangeroepen voor CTI-verwerking in plaats van het standaardscript te gebruiken.
Definieer de functie in een sys_script met vermelding gemarkeerd client callable.
Als u een of meer GlideRecord(s) in de functie moet invoegen, bijwerken of verwijderen, moet u een afzonderlijke niet-clientcallable functie bellen om de updates uit te voeren.
Als u een script aan de client wilt toevoegen, moet u het selectievakje aan de client toevoegen inschakelen op het formulier dat wordt weergegeven wanneer de sys_script invoer wordt weergegeven.
Het selectievakje dat kan worden opgevraagd bij de client wordt standaard niet weergegeven. Om weer te geven, moet u de velden wijzigen die op het formulier worden weergegeven met behulp van het tandwielpictogram en het slush-bucketmechanisme.
Aanpassingsnummer 2 - CAD-variabele toevoegen in de tabel Webex Contact Center-activiteit
OverzichtIn dit artikel wordt het proces beschreven om een extra kolom toe te voegen aan de ServiceNow-tabel - webexcc_activity die wordt gemaakt bij de installatie van de CRM-connector van Webex CC voor ServiceNow.
Standaard bevat de tabel kant-en-klare systeemvelden en -waarden.
U kunt mogelijk meer bedrijfsspecifieke variabelen (CAD-variabelen) maken in de WebexCC-stroomontwerper en die CAD-variabelen toevoegen in het activiteitenlogboek na gesprek van ServiceNow en dit bijhouden in de gegevens van de activiteitstabel na gesprek .
-
Dit is alleen referentiedocumentatie en laat zien hoe u dit kunt doen voor een voorbeeld van een CAD-variabele, de naam van de klant, die de naam van de klant in de IVR opslaat en deze in ServiceNow plaatst.
-
De ontwikkelaars van partner en customer ServiceNow zullen deze configuratie configureren en beheren, aangezien het een aanpassing van de bestaande connector betreft.
-
Cisco biedt alleen de technieken voor het aanpassen en uitbreiden van de connector.
-
Vanaf dit artikel heeft het Cisco-team ondersteuning voor de toevoeging van CAD-variabele aan het activiteitenlogboek en de activiteitentabel gevalideerd met behulp van de hieronder beschreven techniek.
Bewerk de tabel in de ontwikkelaarsversie van ServiceNow.
Ga naar de
.Selecteer de tabel WebexCC-activiteit .
Bijvoorbeeld Klantnaam.
Selecteer de lijstindeling voor WebexCC-activiteit.
Deze stap is niet vereist als u de XML-updateset gebruikt - er hoeft slechts één regel te worden toegevoegd aan propUtils "webexcc.u_customername=actInfo.CustomerName".
Voorbeeldscript
Zie de lijn met:webexcc.u_customername=actInfo.CustomerName; met een ondersteunende opmerking.
var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ 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'); retourneren JSON.stringify(webexccprop); }, 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 lijn wordt Toegevoegd - om deze vast te leggen in het activiteitenlogboek webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // Activiteiten op incidentrecord; 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', gebruiker.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(werkende tekenreeks),null,2); inc.comments =jsonPretty; inc.update(); } } } retourneren sys_id; }, type: 'propUtils2' });
De gebruikersinterface-pagina bewerken met een nieuwe scriptnaamEen CAD-variabele maken in Flow Designer
De CAD-variabele toevoegen aan de bureaubladindeling
Demo schermafbeeldingen
Bekijk de nieuw toegevoegde CAD-variabele in de WebexCC-activiteitstabel.