Intégrez le centre de contact Webex à ServiceNow (version 1 — Legacy)
Prérequis
La taille minimale prise en charge pour l'interface du softphone est de 500 pixels. Toute valeur inférieure à 500 pixels peut entraîner des problèmes d'affichage ou de fonctionnalité.
Avant d'intégrer Webex Contact Center à la console CRM de ServiceNow, assurez-vous de disposer des éléments suivants :
-
Accès au centre d'appels Webex.
-
Accès administrateur au Control Hub sur https://admin.webex.com et au Webex Contact CenterManagement Portal. Les URL du Management Portal sont spécifiques à votre région.
-
Un agent ayant accès au Desktop. L'URL de l'ordinateur de bureau est spécifique à votre région.
-
Accès des agents au domaine suivant, ajouté à la liste des règles de sécurité du contenu autorisées :
-
*.service-now.com
Pour plus d'informations sur la façon de définir la liste autorisée, consultez l'article Paramètres de sécurité pour Webex Contact Center.
-
-
Un compte sur le portail des développeurs ServiceNow. Pour créer un compte, rendez-vous sur le portail des développeurs de ServiceNow à l'adresse https://developer.servicenow.com/dev.do et cliquez sur S'inscrire et commencer à créer.
-
Accès aux fichiers suivants sur https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow :
-
Kit de mises à jour ServiceNow (XML)
-
Disposition du bureau du centre d'appels ServiceNow (JSON)
-
- Les éditions ServiceNow prises en charge par Webex Contact Center sont Vancouver, Utah, Tokyo, Washington et Xanadu. Pour plus d'informations, voir Intégration du centre d'appels Webex à ServiceNow.
Suivez l'une des deux méthodes ci-dessous :
- Pour les instances pour développeurs, nous vous recommandons de suivre les étapes décrites dans le guide des instances pour développeurs.
- Si vous possédez une instance sous licence d'entreprise, suivez les instructions relatives aux instances sous licence d'entreprise.
Nous ne recommandons pas de mélanger l'application sous licence d'entreprise avec des instances sandbox pour développeurs.
Les canaux numériques tels que le chat et les e-mails ne sont pas pris en charge par les connecteurs CRM. Cela s'applique à toutes les intégrations CRM utilisant ces connecteurs. Planifiez vos flux de déploiement et d'engagement client en conséquence.
Les sections suivantes décrivent les étapes à suivre pour installer le connecteur ServiceNow pour les instances de développement.
| 1 |
Connectez-vous à votre compte du portail des développeurs ServiceNow et ouvrez la console d' administration. |
| 2 |
Dans la zone Mon instance du menu Compte, cliquez sur Commencer à créer.
|
| 3 |
Sur votre instance de développeur, dans le champ Filtrer en haut à gauche de la fenêtre, accédez à Plugins.
|
| 4 |
Recherchez le plugin Openframe intitulé Openframe. Vous devrez peut-être faire défiler la liste.
|
| 5 |
Cliquez sur Installer pour installer le plugin Openframe. |
| 6 |
Dans la boîte de dialogue Activer le plugin, cliquez sur Activer.
|
| 7 |
Une fois l'activation du plugin terminée, cliquez sur Fermer et recharger le formulaire dans la boîte de dialogue d'activation du plugin.
|
| 8 |
Pour vérifier l'activation du plugin, dans le champ Filter browser en haut à gauche de la fenêtre, accédez à OpenFrame. |
| 9 |
Cliquez sur Configurations et assurez-vous que le plugin OpenFrame figure dans la liste des configurations OpenFrame.
|
| 1 |
Nom de fichier : WebExcc-ServiceNow-Update-Setv (X) .xml
|
| 2 |
Sur votre instance ServiceNow, dans le champ du navigateur de filtres en haut à gauche de la fenêtre, accédez à Ensembles de .
|
| 3 |
Cliquez sur le lien Importer un ensemble de mises à jour depuis XML.
|
| 4 |
Cliquez sur Choisir un fichier, sélectionnez le fichier XML du jeu de mises à jour du système, puis cliquez sur Télécharger.
Le set de mises à jour apparaît dans la liste des sets de mises à jour récupérés et est à l'état Chargé.
|
| 5 |
Dans la liste des sets de mises à jour récupérés, cliquez sur le nom du fichier du set de mises à jour (lien) pour ouvrir le set de mises à jour.
|
| 6 |
En haut à droite de la fenêtre, cliquez sur Aperçu du jeu de mises à jour pour vérifier s'il n'y a pas de problèmes.
|
| 7 |
Cliquez sur Fermer dans la boîte de dialogue Update Set Preview une fois l'aperçu terminé.
|
| 8 |
Cliquez sur Commit Update Set.
|
| 9 |
Cliquez sur Fermer dans la boîte de dialogue Update Set Commit une fois la validation de Update Set terminée.
|
| 1 |
Dans le champ Filtrer le navigateur en haut à gauche de la fenêtre, tapez
|
| 2 |
Sur la page Propriétés du système, triez les propriétés par date de mise à jour. Assurez-vous de voir les propriétés suivantes du centre d'appels Webex :
|
| 3 |
Cliquez agentdesktop_urlpour ouvrir la agentdesktop_url page des propriétés du système. |
| 4 |
Dans le champ Valeur, saisissez l'URL du bureau du centre d'appels Webex en fonction de la région d'exploitation.
|
| 5 |
Cliquez sur Mettre à jour pour enregistrer les modifications. |
| 6 |
(Facultatif) Pour changer le nom de la table d'activités, modifiez les propriétés de la table webexccactivitytable selon les besoins. Sur la page Propriétés du système, cliquez sur webexccactivitytable. Modifiez le champ Valeur comme il se doit.
|
| 7 |
(Facultatif) Ajoutez des groupes d'utilisateurs de la manière suivante :
|
| 1 |
Dans le champ du navigateur de filtres, accédez à .
|
| 2 |
Cliquez sur Nouveau.
|
| 3 |
Entrez les propriétés suivantes pour l'URL :
|
| 4 |
À droite du champ URL, cliquez sur le bouton Verrouiller et ajoutez-le
|
| 5 |
(Facultatif) Sélectionnez le ou les groupes d'utilisateurs/d'agents auxquels attribuer la configuration.
|
| 6 |
Cliquez sur Soumettre. L'URL apparaît sous forme de lien.
|
| 7 |
Avant d'essayer d'utiliser le téléphone OpenFrame, assurez-vous de télécharger le fichier JSON personnalisé Desktop Layout de ServiceNow sur le centre d'appels Webex. Management Portal Pour plus d'informations, voir Configuration de la mise en page du bureau ServiceNow sur Webex Contact Center. |
| 1 |
|
| 2 |
Mettez à jour les propriétés du fichier Desktop Layout, si nécessaire. |
| 3 |
Accédez au centre Management Portal d'appels Webex. |
| 4 |
Dans la barre de Management Portal navigation, choisissez .
|
| 5 |
Cliquez sur Nouvelle mise en page et saisissez les informations relatives à la mise en page du bureau. |
| 6 |
Téléchargez le fichier JSON ServiceNow Desktop Layout. |
| 7 |
Cliquez sur Enregistrer pour enregistrer la configuration. Vous pouvez maintenant démarrer le bureau du centre d'appels Webex sur la console ServiceNow. |
| 8 |
Dans le champ Filtrer le navigateur, accédez à .
|
Les sections suivantes décrivent les étapes à suivre pour installer le connecteur ServiceNow pour les instances d'entreprise agréées.
| 1 |
Connectez-vous à votre compte du portail des développeurs ServiceNow et ouvrez la console d' administration. |
| 2 |
Dans la zone Mon instance du menu Compte, cliquez sur Commencer à créer.
|
| 3 |
Sur votre instance de développeur, dans le champ Filtrer en haut à gauche de la fenêtre, accédez à Plugins.
|
| 4 |
Recherchez le plugin Openframe intitulé Openframe. Vous devrez peut-être faire défiler la liste.
|
| 5 |
Cliquez sur Installer pour installer le plugin Openframe. |
| 6 |
Dans la boîte de dialogue Activer le plugin, cliquez sur Activer.
|
| 7 |
Une fois l'activation du plugin terminée, cliquez sur Fermer et recharger le formulaire dans la boîte de dialogue d'activation du plugin.
|
| 8 |
Pour vérifier l'activation du plugin, dans le champ Filter browser en haut à gauche de la fenêtre, accédez à OpenFrame. |
| 9 |
Cliquez sur Configurations et assurez-vous que le plugin OpenFrame figure dans la liste des configurations OpenFrame.
|
Les instances dotées de licences d'entreprise peuvent installer l'application Webex Contact Center directement depuis le ServiceNow Store.
|
|
| 1 |
Dans le champ Filtrer le navigateur en haut à gauche de la fenêtre, entrez
|
| 2 |
Sur la page Propriétés du système, triez les propriétés par date de mise à jour. Assurez-vous de voir les propriétés suivantes du centre d'appels Webex :
|
| 3 |
Cliquez agentdesktop_urlpour ouvrir la agentdesktop_url page des propriétés du système. |
| 4 |
Dans le champ Valeur, saisissez l'URL du bureau du centre d'appels Webex en fonction de la région d'exploitation.
|
| 5 |
Cliquez sur Mettre à jour pour enregistrer les modifications. |
| 6 |
(Facultatif) Pour changer le nom de la table d'activités, modifiez les propriétés x_caci_webexcc.webexccactivitytable selon les besoins.
|
| 7 |
(Facultatif) Ajoutez des groupes d'utilisateurs de la manière suivante :
|
| 1 |
Dans le champ du navigateur de filtres, accédez à .
|
| 2 |
Cliquez sur Nouveau.
|
| 3 |
Entrez les propriétés suivantes pour l'URL :
|
| 4 |
À droite du champ URL, cliquez sur le bouton Verrouiller et ajoutez-le
|
| 5 |
(Facultatif) Sélectionnez le ou les groupes d'utilisateurs/d'agents auxquels attribuer la configuration.
|
| 6 |
Cliquez sur Soumettre. L'URL apparaît sous forme de lien.
|
| 7 |
Dans le champ Filtrer le navigateur, accédez à .
|
| 8 |
(Facultatif) Dans la liste des groupes d'utilisateurs, déplacez les groupes d'utilisateurs qui peuvent accéder au Webex Contact Center Desktop de Disponible à Sélectionné. |
| 9 |
Avant d'essayer d'utiliser le téléphone OpenFrame, assurez-vous de télécharger le fichier JSON personnalisé Desktop Layout de ServiceNow sur le centre d'appels Webex. Management Portal Pour plus d'informations, voir Configuration de la mise en page du bureau ServiceNow sur Webex Contact Center. |
| 1 |
|
| 2 |
Mettez à jour les propriétés du fichier Desktop Layout, si nécessaire. |
| 3 |
Accédez au centre Management Portal d'appels Webex. |
| 4 |
Dans la barre de Management Portal navigation, choisissez .
|
| 5 |
Cliquez sur Nouvelle mise en page et saisissez les informations relatives à la mise en page du bureau. |
| 6 |
Téléchargez le fichier JSON ServiceNow Desktop Layout. |
| 7 |
Cliquez sur Enregistrer pour enregistrer la configuration. Vous pouvez maintenant démarrer le bureau du centre d'appels Webex sur la console ServiceNow. |
| 8 |
Dans le champ Filtrer le navigateur, accédez à .
|
| 1 |
Dans le champ Filtrer le navigateur, accédez à Incidents > Ouvrir un incident. |
| 2 |
Cliquez avec le bouton droit sur le champ de l'appelant, puis cliquez sur Configurer le dictionnaire.
|
| 3 |
Ajoutez des attributs séparés par des virgules
Vous pouvez maintenant commencer à utiliser le bureau du centre d'appels Webex sur la console ServiceNow. |
| 4 |
Dans le champ Filtrer le navigateur, accédez à .
|
- Nous prenons en charge la connexion Agent Desktop à l'aide des connecteurs WebRTC pour Salesforce (SFDC) et Microsoft Dynamics (MS Dynamics) uniquement.
- Actuellement, cette fonctionnalité est réservée aux agents.
Agent Desktopdans la console ServiceNow
Avant de passer des appels extérieurs, assurez-vous de faire ce qui suit :
-
Créez le point d'entrée extérieur et mettez en place une stratégie de point d'entrée extérieur.
-
Activez l'ANI externe pour le profil de l'agent.
-
Réglez l'ANI de la numérotation extérieure sur un mappage entre le numéro de numérotation et le point d'entrée.
Pour plus d'informations, consultez le chapitre relatif à l'approvisionnement du Guide de Cisco Webex Contact Center configuration et d'administration.
Dans le champ Filtrer le navigateur, accédez à .
Pour plus d'informations sur l'utilisation de Desktop, consultez l'onglet Agent dans l'aide du Webex Contact Center.
Vue d'ensemble
Cet article explique plusieurs manières de personnaliser vos règles de gestion pour le connecteur CRM ServiceNow. Il explique comment vous pouvez personnaliser les cas d'utilisation en fonction des règles métier spécifiques à ServiceNow.
Le client doit gérer lui-même ces cas d'utilisation sur ServiceNow. La configuration est spécifique à ServiceNow et non au logiciel ou à l'expertise de Webex Contact Center.
Il s'agit d'un document de référence destiné à faciliter la modification des règles commerciales. Les développeurs de ServiceNow créeront et géreront les règles de gestion et fourniront une assistance.
Cisco ne fournit que des exemples de documentation.
Les sections suivantes expliquent comment configurer, activer et gérer le widget Actions pour les instances destinées aux développeurs et aux entreprises.
Validez le kit de mise à jour pour le widget Actions
Pour les instances d'entreprise agréées, installez la dernière application Webex Contact Center depuis la boutique ServiceNow.
Pour configurer le widget Actions pour les instances de développement, téléchargez le dernier fichier XML System Update Set disponible sur le dépôt GitHub à cette adresse : https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. Le nom du fichier est webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Pour valider le set de mises à jour pour le widget Actions, consultez les étapes 2 à 9 de la section Commit the Update Set.
Activer le widget Actions
Utilisez la propriété IsWidgetDisplayEnabled pour activer le widget Actions. Vous ne devez pas modifier la valeur de cette propriété dans la section sans tête de la mise en page personnalisée du bureau. La propriété est toujours définie sur False dans la section sans en-tête de la mise en page personnalisée du bureau. Vous ne devriez mettre à jour la valeur de la propriété que dans la section du panneau de la mise en page personnalisée du bureau.
Une fois que vous avez activé le widget Actions dans la mise en page personnalisée du bureau, vous pouvez effectuer les actions suivantes :
- Gérer les enregistrements d'activité : cliquez sur Afficher/Modifier l'enregistrement d'activité pour afficher la liste des enregistrements d'activité associés à l'appelant.
- Associer des objets CRM : cliquez sur Associer aux enregistrements d'activité pour ajouter des objets CRM tels que le type d'appel (entrant ou sortant), l'objet de l'appel, les notes d'appel, etc. à l'enregistrement d'activité.
- Gérez les incidents : cliquez sur Créer un incident. Un nouvel incident est créé avec les coordonnées de l'appelant préremplies. Vous pouvez apporter les mises à jour nécessaires à l'incident. Vous pouvez choisir de modifier le type d'enregistrement d'un incident à l'autre, dans le module RH, etc. en fonction de vos besoins. Pour changer le type d'enregistrement, modifiez la valeur de la propriété TypeOfRecord dans la configuration du widget Actions. Par exemple :
{ "comp": "md-tab-panel", "attributes": { "slot": "panel", "class": "widget-pane" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "Create Incident" }, "wrapper": { "title": "SNOW Actions !", "maximizeAreaName": "app-maximize-area" } } ] } - Ajoutez des notes d'appel en direct. Vous pouvez saisir des informations supplémentaires sur l'appel dans la zone de texte et terminer l'appel. Vous pouvez voir ces notes ajoutées sous forme de notes d'appel dans le relevé d'activité.
Changement de code sur ServiceNow
Le script inclut des modifications-
Accédez au navigateur de filtres et recherchez les
scripts inclus
.Sélectionnez le script inclus dans l'interface utilisateur du système.
-
Filtrez le nom et recherchez
PropUtils
. -
Modifiez la méthode
UserGetSysID dans le script
.Actuel :
UserGetSysId : function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },Nouvel exemple de code pour l'incident :
UserGetSysId : function () { var opened_for; //Incident related changes var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist); },
-
Accédez au navigateur de filtrage et recherchez
UI page.Sélectionnez les pages de l'interface utilisateur dans l'interface utilisateur du système.
-
Filtrez le nom et recherchez
agentdesktop
. -
Modifiez la fonction
Screenpop
dans le script Client.Fonction actuelle :
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });Exemple de code pour l'incident :
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // For Incident-related change var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }
Si les informations de l'appelant existent dans le CRM et qu'un nouvel incident a déjà été ouvert avec ce contact, l'application ouvre l'incident en cours
Si les informations de l'appelant n'existent pas dans le CRM, l'application ouvre un nouvel incident
Si les informations de l'appelant existent dans le CRM, l'application ouvre un nouvel incident avec des informations préremplies
Vue d'ensemble
Ce cas d'utilisation décrit la procédure à suivre pour ajouter une colonne supplémentaire au tableau ServiceNow, webexcc_imp_activity et pour la créer sn_openframe_phone_log lors de l'installation du connecteur CRM Webex CC pour ServiceNow.
Par défaut, le tableau contient certains champs et valeurs du système prêts à l'emploi.
Vous pouvez créer d'autres variables spécifiques à l'entreprise (variables CAO) dans le concepteur de flux WebExcc et les ajouter au journal des activités d'après-appel de ServiceNow, et les conserver dans les données du tableau d'activité après appel.
Il s'agit d'une documentation de référence uniquement. Elle montre comment procéder pour un exemple de variable CAO appelée Customer Name, qui stocke le nom du client dans l'IVR et le publie sur ServiceNow.
Les développeurs de ServiceNow, partenaires et clients, devraient configurer et gérer cette configuration, car il s'agit d'une personnalisation du connecteur existant.
Cisco fournit uniquement les techniques permettant de personnaliser et d'étendre le connecteur.
À la date de cet article, l'équipe Cisco a validé la prise en charge de l'ajout d'une variable CAO au journal des activités et au tableau des activités en utilisant la technique décrite ci-dessous :
Ajouter une colonne à l'activité WebEXCC IMP
-
Modifiez le tableau dans la version développeur de ServiceNow.

-
Accédez au navigateur de filtres et recherchez Studio.

Sélectionnez le
centre d'appels Webex

ou



-
Sélectionnez le tableau d'
activité WebEXCC IMP

-
Ajouter une nouvelle colonne, par exemple
CustomerName


Ajouter une colonne au journal téléphonique
-
Modifiez le journal téléphonique.


-
Ajoutez une nouvelle colonne, par exemple
CustomerName.


Carte de transformation des activités WebEXCC

Ajoutez une nouvelle colonne, par exemple, le mappage des champs CustomerName
.


Personnalisez les colonnes des listes

Comme le recommande Service Now, modifiez l'action Choice de Créer à Ignorer.


Configurer la liste des journaux téléphoniques

Accéder à Script Include
Ajoutez une seule ligne webexcc. u_customername=ActInfo.CustomerName
vers PropUtils.



Voir la ligne : webexcc. u_customername=ActInfo.CustomerName ; avec un commentaire à l'appui.
var propUtils = Class.create();
propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
getWebexccProp : function () {
var webexccprop = {};
webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
// webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
return JSON.stringify(webexccprop);
},
UserGetSysId : function () {
var opened_for;
var user = new GlideRecord("sys_user");
user.addQuery(this.getParameter('field'),this.getParameter('value'));
user.query();
if (user.next())
opened_for=user.sys_id;//return user.sys_id;
// else
// return null;
var grInt = new GlideRecord('interaction');
grInt.initialize();
grInt.assigned_to= gs.getUserID();
grInt.type= 'phone';
grInt.opened_for= opened_for;
var sysid=grInt.insert();
return sysid;
},
setWebexcctable : function () {
var sys_id=0;
var actInfo = JSON.parse(this.getParameter('actInfo'));
var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
webexcc.addQuery("callobject", actInfo.CallObject);
webexcc.query();
if(!webexcc.next()) {
webexcc.ani = actInfo.ani;
webexcc.dnis =actInfo.dnis;
webexcc.queuename =actInfo.queuename;
webexcc.wrapuptime =actInfo.wrapuptime;
webexcc.callduration =actInfo.CallDurationInSeconds;
webexcc.ringingtime =actInfo.ringingtime;
webexcc.activitydate =actInfo.ActivityDate;
webexcc.callobject =actInfo.CallObject;
webexcc.calltype =actInfo.CallType;
webexcc.calldisposition=actInfo.CallDisposition;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
//Activities on Incident record;
var actInfoString =this.getParameter('actInfo');
var suser = new GlideRecordSecure("sys_user");
suser.addQuery("phone", this.getParameter('ani'));
suser.query();
if(suser.next()) {
var inc = new GlideRecordSecure('incident');
inc.addQuery('caller_id', suser.sys_id);
inc.orderByDesc('sys_created_on');
inc.query();
if (inc.next()) {
var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2);
inc.comments =jsonPretty;
inc.update();
}
}
}
return sys_id;
},
type: 'propUtils'
});
Créer une variable CAO dans Flow Designer

Ajouter la variable CAO à la mise en page du bureau
Exemple
"CadName1:SnowField1,CadName2:SnowField2"
CadName1 is CustomerName
SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Captures d'écran de démonstration
Consultez la variable CAD récemment ajoutée dans le tableau d'activité WebExcc.



Créer une variable CAO pour Flow Designer
Urgence de l'incident
Impact de l'incident

Mise à jour du script Service Now
Les mises à jour du script incluent
-
Accédez au navigateur de filtres et recherchez
script includesSélectionnez l'option Inclusions de scripts dans l'interface utilisateur du système.

-
Filtrez le nom avec
propUtils.
-
Modifiez la méthode
UserGetSysID
dans le champ Script.
Script actuel :
UserGetSysId : function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },Nouvel exemple de code pour l'incident :
UserGetSysId : function () { var opened_for; var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='Call Received From '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },
-
Accédez au navigateur de filtres et recherchez
UI pages.Sélectionnez l'option Pages d'interface utilisateur dans l'interface utilisateur du système.

-
Filtrez les pages de l'interface utilisateur par nom et recherchez
agentdesktop.
-
Modifiez la fonction
Screenpop
dans le champ de script.
Fonction actuelle :
// screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }Exemple de code pour l'incident :
// screen pop function screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam('Impact', Impact); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Si les informations de l'appelant existent dans le CRM et qu'il n'y a aucun incident nouveau ou en cours, l'application ouvre un nouvel incident


Modifier le code sur ServiceNow
Ajouter de nouvelles colonnes au tableau d'activité WebEXCC IMP
Ouvrez le tableau d'activité WebEXCC IMP





Cliquez sur Mettre à jour.


Ajouter de nouvelles colonnes au tableau Phone Log
Ouvrez le tableau du journal téléphonique





Carte de transformation des activités WebEXCC
Ouvrez la carte de transformation
depuis le navigateur de filtres


Cliquez sur WebEXCC
Activity TransformMap




Cliquez sur Mettre à jour.

Les modifications apportées au script incluent
-
Accédez au navigateur de filtrage et recherchez « le script inclut ».
Sélectionnez le script inclus dans l'interface utilisateur du système.

-
Filtrez le nom avec
PropUtils
.
-
Changez la méthode
SetWebExccTable
.
Nouvel exemple de code pour Incident :
setWebexcctable : function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //Activities on Incident record; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; delete actInfo['interaction_sys_id']; delete actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes='Update State to closed.'; inte.update(); } } if( incsysid!= null && incsysid != undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = new GlideRecordSecure("sys_user"); suser.addQuery("phone", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=incnum; webexcc.u_interactionsnumber=intenum; sys_id=webexcc.insert(); } return sys_id; },
Changements de méthode sur les pages de l'interface utilisateur
-
Accédez au navigateur de filtres et recherchez les
pages de l'interface utilisateur
Sélectionnez l'option Pages d'interface utilisateur dans l'interface utilisateur du système.

-
Filtrez les pages de l'interface utilisateur par nom et recherchez
agentdesktop.
-
Modifiez les fonctions
NowActivities et Screenpop
dans le script.
Fonction actuelle :
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); }Exemple de code pour l'incident :
function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }
Résultats après la mise à jour

Les personnalisations suivantes s'appliquent aux versions 1.0.5 et antérieures. Pour les personnalisations pour les nouvelles versions 1.0.7 et supérieures, suivez les étapes ci-dessus.
Personnalisation n° 1 - Ajoutez des règles commerciales personnalisées pour les cas d'utilisation des flux d'appels
Créer un nouvel enregistrement d'incident pour chaque appelPour chaque nouvel appel vers le connecteur WebExcc CRM de ServiceNow, créez un nouvel enregistrement d'incident.
Recherchez les règles commerciales dans le navigateur de filtres

Cliquez sur Nouveau.

Exemple de code de référence :
function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null && name != '') { userID = UserGetSysId("name", name); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "^"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; return url; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }Exemple de configuration de la règle commerciale

Activer l'appelabilité du client

Le traitement des incidents par intégration de la téléphonie informatique (CTI) est marqué comme vrai.


Le sysparm_cti_rule=name où « name » est le nom d'une fonction doit être invoqué pour CTI Processing au lieu d'utiliser le script par défaut.
Définissez la fonction dans une sys_scriptentrée marquée par le client comme appelable.
Si vous devez insérer, mettre à jour ou supprimer un ou plusieurs GlideRecord dans la fonction, appelez une fonction distincte non appelable par le client pour effectuer les mises à jour.
Pour qu'un script soit appelable par le client, vous devez cocher la case appelable par le client sur le formulaire qui s'affiche lorsque l'entrée est affichée. sys_script
La case à cocher appelable par le client n'apparaît pas par défaut. Pour le voir, vous devez modifier les champs qui apparaissent sur le formulaire à l'aide de l'icône en forme d'engrenage et du mécanisme de la seau à neige fondante.
Personnalisation n° 2 - Ajouter une variable CAO dans le tableau des activités du Webex Contact Center
Vue d'ensembleCet article détaille la procédure à suivre pour ajouter une colonne supplémentaire au tableau ServiceNow, créé lors de l'installation du connecteur CRM Webex CC pour ServiceNow. webexcc_activity
Par défaut, le tableau contient des champs et des valeurs système prêts à l'emploi.
Vous pouvez potentiellement créer d'autres variables spécifiques à l'entreprise (variables CAO) dans le concepteur de flux WebExcc et les ajouter au journal des activités d'après-appel de ServiceNow, et les conserver dans les données du tableau des activités après-appel.
-
Il s'agit d'une documentation de référence uniquement. Elle montre comment procéder pour un exemple de variable CAO appelée Customer Name, qui stocke le nom du client dans l'IVR et le publie sur ServiceNow.
-
Les développeurs de ServiceNow, partenaires et clients, configureront et géreront cette configuration car il s'agit d'une personnalisation du connecteur existant.
-
Cisco ne fournira que les techniques permettant de personnaliser et d'étendre le connecteur.
-
À la date de cet article, l'équipe Cisco a validé la prise en charge de l'ajout d'une variable CAO au journal des activités et au tableau des activités en utilisant la technique décrite ci-dessous.
Modifiez le tableau dans la version développeur de ServiceNow.

Accédez au .



Sélectionnez le tableau d'activité WebEXCC.

Par exemple, CustomerName.


Sélectionnez la mise en page de la liste pour WebEXCC Activity.

Cette étape n'est pas obligatoire si vous utilisez le code XML de l'ensemble de mise à jour. Une seule ligne est requise pour ajouter « webexcc ». u_customername=ActInfo.CustomerName « vers PropUtils.



Exemple de script
Voir la ligne avec : webexcc. u_customername=ActInfo.CustomerName ; avec un commentaire à l'appui.
var propUtils2 = Class.create();
propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
getWebexccProp : function () {
var webexccprop = {};
webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
return JSON.stringify(webexccprop);
},
setWebexcctable : function () {
var sys_id=0;
var actInfo = JSON.parse(this.getParameter('actInfo'));
var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
webexcc.addQuery("callobject", actInfo.CallObject);
webexcc.query();
if(!webexcc.next()) {
webexcc.ani = actInfo.ani;
webexcc.dnis =actInfo.dnis;
webexcc.queuename =actInfo.queuename;
webexcc.wrapuptime =actInfo.wrapuptime;
webexcc.callduration =actInfo.CallDurationInSeconds;
webexcc.ringingtime =actInfo.ringingtime;
webexcc.activitydate =actInfo.ActivityDate;
webexcc.callobject =actInfo.CallObject;
webexcc.calltype =actInfo.CallType;
webexcc.calldisposition=actInfo.CallDisposition;
// This line is Added - to capture it in the Activity Log
webexcc.u_customername=actInfo.CustomerName;
sys_id=webexcc.insert();
// Activities on Incident record;
var actInfoString =this.getParameter('actInfo');
var suser = new GlideRecordSecure("sys_user");
suser.addQuery("phone", this.getParameter('ani'));
suser.query();
if(suser.next()) {
var inc = new GlideRecordSecure('incident');
inc.addQuery('caller_id', suser.sys_id);
inc.orderByDesc('sys_created_on');
inc.query();
if (inc.next()) {
var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2);
inc.comments =jsonPretty;
inc.update();
}
}
}
return sys_id;
},
type: 'propUtils2'
});
Modifier la page de l'interface utilisateur avec un nouveau nom de script
Créer une variable CAO dans Flow Designer
Ajouter la variable CAO à la mise en page du bureau
Captures d'écran de démonstration
Consultez la variable CAD récemment ajoutée dans le tableau d'activité WebExcc.

Le connecteur CRM fonctionne en fonction de la version du widget spécifiée dans la mise en page JSON du bureau. Il est extrêmement important de veiller à ce que la version du widget soit mise à jour dans la mise en page du bureau.
Les administrateurs sont tenus de s'assurer que toutes les mises en page de bureau de ce connecteur CRM utilisent cette version du widget. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.
- Dernière mise à jour de ServiceNow : .1.0_v5.0.3.json. ServiceNow_Desktop_0 En mars 2024, la version du package est la 1.0.9
- Dernière mise à jour XML : WebExcc-ServiceNow-Update-SetV7-1-Actionswidget.xml, juin 2024











































