Conditions préalablement requises

Avant d'intégrer Webex Contact Center à la console ServiceNow CRM, assurez-vous de disposer des éléments suivants :


 

Suivez l'une des deux méthodes ci-dessous :

Pour les instances de développeur, nous vous recommandons de suivre les étapes décrites dans le guide des instances de développeur.

Si vous possédez une instance sous licence entreprise, suivez les instructions pour les instances sous licence entreprise.

Nous ne recommandons pas de mélanger l'application sous licence d'entreprise avec des instances sandbox de développeur.

Les sections suivantes décrivent les étapes d'installation du connecteur ServiceNow pour les instances de développeur.

1

connectez-vous à votre compte du portail de développeur ServiceNow et ouvrez la console 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 Navigateur de filtres en haut à gauche de la fenêtre, accédez à Plugins.

4

Recherchez le plug-in Openframe portant le titre Openframe. Vous devrez peut-être faire défiler la liste.

5

Cliquez sur Installer pour installer le plug-in Openframe.

6

Dans la boîte de dialogue Activer le plug-in , cliquez sur Activer.

7

Lorsque l'activation du plugin est terminée, cliquez sur Fermer et Rechargez le formulaire dans la boîte de dialogue Activation du plug-in .

8

Pour vérifier l'activation du plugin, depuis le champ Navigateur de filtres en haut à gauche de la fenêtre, accédez à OpenFrame.

9

Cliquez sur Configurations et assurez-vous que le plug-in OpenFrame apparaît dans la liste Configurations OpenFrame .

1

Téléchargez le dernier fichier de l'ensemble de mises à jour système XML disponible sur le dépôt github à cet emplacement : https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nom du fichier : webexcc-servicenow-update-setV(X).xml

2

Sur votre instance ServiceNow, dans le champ Navigateur de filtres en haut à gauche de la fenêtre, accédez à Ensembles de mises à jour système > Mettre à jour les ensembles pour valider.

3

Cliquez sur le lien Importer l'ensemble de mises à jour depuis XML .

4

Cliquez sur Choisir un fichier, sélectionnez le fichier du jeu de mises à jour système XML, puis cliquez sur Télécharger.

L'ensemble de mises à jour apparaît dans la liste Ensembles de mises à jour récupérés et est dans l'état Chargé .
5

Dans la liste Ensembles de mises à jour récupérés , cliquez sur le nom du fichier de l'ensemble de mises à jour (lien) pour ouvrir l'ensemble de mises à jour.

6

Dans l'angle supérieur droit de la fenêtre, cliquez sur Aperçu de l'ensemble de mises à jour pour rechercher des problèmes dans l'ensemble de mises à jour.

7

Cliquez sur Fermer dans la boîte de dialogue Aperçu de l'ensemble de mises à jour une fois l'aperçu terminé.

8

Cliquez sur Valider l'ensemble de mises à jour.

9

Cliquez sur Fermer dans la boîte de dialogue Validation de l'ensemble de mises à jour une fois la validation de l'ensemble de mises à jour terminée.

1

Dans le champ Navigateur de filtres en haut à gauche de la fenêtre, saisissez sys_properties.list et appuyez sur Entrée.

2

Sur la page Propriétés système , triez les propriétés par date de mise à jour. Assurez-vous que vous pouvez voir les propriétés suivantes du centre de contact Webex :

3

Cliquez sur agentdesktop_url pour ouvrir la page Propriété système agentdesktop_url .

4

Dans le champ Valeur , saisissez l'URL du Webex Contact Center Desktop en fonction de la région d'exploitation.

5

Cliquez sur Mettre à jour pour enregistrer les modifications.

6

(Facultatif) Pour modifier le nom de la table d'activité, modifiez les propriétés webexccactivitytable selon vos besoins.

Sur la page Propriétés système , cliquez sur webexccactivitytable.

Modifiez le champ Valeur selon vos besoins.

7

(Facultatif) Ajoutez des groupes d'utilisateurs des manières suivantes :

  1. Dans le champ Navigateur de filtres en haut à gauche de la fenêtre, accédez à Groupes sous Sécurité du système.

  2. Créez un nouveau groupe d'utilisateurs ou utilisez-en un existant.

  3. Cliquez sur Modifier.

  4. Recherchez sn_openframe_user sous Collection et déplacez-le vers votre groupe d'utilisateurs.

  5. Cliquez sur Enregistrer.

  6. Ajoutez l'utilisateur en tant que membre du groupe.

1

Dans le champ Navigateur de filtres , accédez à OpenFrame > Configurations.

2

Cliquez sur Nouveau.

3

Entrez les propriétés suivantes pour l'URL :

  • Nom : Webex Contact Center Desktop

  • Titre : Webex Centre de contact

  • Largeur : 550 (recommandé)

  • Hauteur : 600 (recommandé)

4

À droite du champ URL , cliquez sur le bouton Verrouiller et ajoutez agentdesktop.do comme URL. (Faites cette étape pour pointer la configuration vers la page de l'interface utilisateur)

5

(Facultatif) Sélectionnez les groupes d'utilisateurs/d'agents pour 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 de configuration de bureau personnalisé ServiceNow sur le portail de gestion du centre de contact Webex. Pour plus d'informations, consultez Configurer la présentation du bureau ServiceNow sur le centre de contact Webex.

1

Téléchargez la présentation du bureau pour ServiceNow à partir de https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Mettez à jour les propriétés dans le fichier de présentation du bureau, si nécessaire.

3

Accédez au portail de gestion du centre de contact Webex.

4

Dans la barre de navigation du portail de gestion, choisissez Provisionnement > Disposition du bureau.

5

Cliquez sur Nouvelle présentation et saisissez les détails de la présentation du bureau.

6

Téléchargez le fichier JSON de mise en page du bureau ServiceNow.

7

Cliquez sur Enregistrer pour enregistrer la configuration.

Vous pouvez maintenant démarrer le Webex Contact Center Desktop dans la console ServiceNow.

8

Dans le champ Navigateur de filtres , accédez à Agent Workspace > Accueil de l'espace de travail de l'agent.

Cliquez sur l'icône du téléphone en bas à gauche.

Les sections suivantes décrivent les étapes d'installation du connecteur ServiceNow pour les instances d'entreprise sous licence.

1

connectez-vous à votre compte du portail de développeur ServiceNow et ouvrez la console 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 Navigateur de filtres en haut à gauche de la fenêtre, accédez à Plugins.

4

Recherchez le plug-in Openframe portant le titre Openframe. Vous devrez peut-être faire défiler la liste.

5

Cliquez sur Installer pour installer le plug-in Openframe.

6

Dans la boîte de dialogue Activer le plug-in , cliquez sur Activer.

7

Une fois l'activation du plugin terminée, cliquez sur Fermer et amp ; rechargez le formulaire dans la boîte de dialogue Activation du plug-in .

8

Pour vérifier l'activation du plugin, depuis le champ Navigateur de filtres en haut à gauche de la fenêtre, accédez à OpenFrame.

9

Cliquez sur Configurations et assurez-vous que le plug-in OpenFrame apparaît dans la liste Configurations OpenFrame .

1

Dans le champ Navigateur de filtres en haut à gauche de la fenêtre, saisissez sys_properties.list.

2

Sur la page Propriétés système , triez les propriétés par date de mise à jour. Assurez-vous que vous pouvez voir les propriétés suivantes du centre de contact Webex :

3

Cliquez sur agentdesktop_url pour ouvrir la page Propriétés système agentdesktop_url .

4

Dans le champ Valeur , saisissez l'URL du bureau du centre de contacts Webex en fonction de la région d'exploitation.

5

Cliquez sur Mettre à jour pour enregistrer les modifications.

6

(Facultatif) Pour modifier le nom de la table d'activité, modifiez les propriétés x_caci_webexcc.webexccactivitytable selon vos besoins.

  1. Sur la page Propriétés système , cliquez sur x_caci_webexcc.webexccactivitytable.

  2. Modifiez le champ Valeur selon vos besoins.

7

(Facultatif) Ajoutez des groupes d'utilisateurs des manières suivantes :

  1. Dans le champ Navigateur de filtres en haut à gauche de la fenêtre, accédez à Groupes sous Sécurité du système.

  2. Cliquez sur Modifier et ajoutez les rôles suivants :

    • sn_openframe_user

    • x_caci_webexcc.agent

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

1

Dans le champ Navigateur de filtres , accédez à OpenFrame > Configurations.

2

Cliquez sur Nouveau.

3

Entrez les propriétés suivantes pour l'URL :

  • Nom : Webex Contact Center Desktop

  • Titre : Webex Centre de contact

  • Largeur : 550 (recommandé)

  • Hauteur : 600 (recommandé)

4

À droite du champ URL , cliquez sur le bouton Verrouiller et ajoutez x_caci_webexcc_agentdesktop .do comme URL. (Faites cette étape pour pointer la configuration vers la page de l'interface utilisateur)

5

(Facultatif) Sélectionnez les groupes d'utilisateurs/d'agents pour attribuer la configuration.

6

Cliquez sur Soumettre. L'URL apparaît sous forme de lien.

7

Dans le champ Navigateur de filtres , accédez à Agent Workspace > Accueil de l'espace de travail de l'agent.

Cliquez sur l'icône du téléphone en bas à gauche.

8

(Facultatif) Dans la liste des Groupes d'utilisateurs , déplacez les groupes d'utilisateurs qui peuvent accéder au bureau du centre de contacts Webex de Disponible à Sélectionné.

9

Avant d'essayer d'utiliser le téléphone OpenFrame, assurez-vous de télécharger le fichier JSON de configuration de bureau personnalisé ServiceNow sur le portail de gestion du centre de contact Webex. Pour plus d'informations, consultez Configurer la présentation du bureau ServiceNow sur Webex Contact Center.

1

Téléchargez la présentation du bureau pour ServiceNow à partir de https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Mettez à jour les propriétés dans le fichier de présentation du bureau, si nécessaire.

3

Accédez au portail de gestion du centre de contact Webex.

4

Dans la barre de navigation du portail de gestion, choisissez Provisioning > Disposition du bureau.

5

Cliquez sur Nouvelle présentation et saisissez les détails de la présentation du bureau.

6

Téléchargez le fichier JSON de mise en page du bureau ServiceNow.

7

Cliquez sur Enregistrer pour enregistrer la configuration.

Vous pouvez maintenant démarrer le Webex Contact Center Desktop dans la console ServiceNow.

8

Dans le champ Navigateur de filtres , accédez à Agent Workspace > Accueil de l'espace de travail de l'agent.

Cliquez sur l'icône du téléphone en bas à gauche.

1

Dans le champ Navigateur de filtres , accédez à Incidents > ouvrir un incident.

2

Faites un clic droit sur le champ de l'appelant et cliquez sur Configurer le dictionnaire.

3

Ajoutez des attributs séparés par des virgules "ref_contributions=show_phone,.

Vous pouvez maintenant commencer à utiliser Webex Contact Center Desktop dans la console ServiceNow.

4

Dans le champ Navigateur de filtre , accédez à Agent Workspace > Agent Workspace Home..

Cliquez sur l'icône du téléphone en bas à gauche.

Agent Desktop dans la console ServiceNow

Avant de passer des appels externes, assurez-vous d'effectuer les opérations suivantes :

  • Créez le point d'entrée de numérotation externe et configurez une stratégie de point d'entrée de numérotation externe.

  • Activez l'ANI de numérotation externe pour le profil d'agent.

  • Définissez l'ANI de numérotation externe sur un mappage numéro de composition-point d'entrée.

Pour plus d'informations, consultez le chapitre Provisionnement du Guide de configuration et d'administrationCisco Webex Contact Center.

Dans le champ Navigateur de filtres , accédez à Agent Workspace > Accueil de l'Agent Workspace..

Cliquez sur l'icône du téléphone en bas à gauche.

Pour plus d'informations sur l'utilisation de Desktop, consultez le Cisco Webex Contact Center Agent Desktop Guide de l'utilisateur.

Partitionnement du stockage tiers

Un problème possible avec la récente mise à jour de Google Chrome et Edge 116 ou version ultérieure pourrait perturber votre expérience de connexion aux connecteurs CRM dans Webex Contact Center. Ce problème affecte la connexion au bureau sur la console ServiceNow CRM.

Pour résoudre ce problème sur le navigateur Google Chrome :

  1. Ouvrez le navigateur Google Chrome et saisissez chrome://flags/#third-party-storage-partitioning dans la barre d'adresse.

  2. Désactivez l'option Partitionnement expérimental du stockage tiers .

  3. Fermez et redémarrez Chrome.

  4. reconnectez-vous au bureau dans la console ServiceNow CRM.

Pour résoudre ce problème sur le navigateur Edge :

  1. Ouvrez le navigateur et saisissez edge://flags/#third-party-storage-partitioning dans la barre d'adresse.

  2. Désactivez l'option Partitionnement expérimental du stockage tiers .

  3. Enregistrez les modifications et redémarrez le navigateur.

  4. reconnectez-vous au bureau dans la console ServiceNow CRM.

Pour résoudre ce problème sur le navigateur Firefox :

  1. Ouvrez le navigateur et saisissez about:config dans la barre d'adresse.

    Une page d'avertissement peut apparaître. Cliquez sur Accepter le risque et continuer pour accéder à la page about:config .

  2. Saisissez network.cookie.cookieBehavior dans la zone Nom de la préférence de recherche en haut de la zone about:config page pour trouver la préférence.

  3. Double-cliquez sur la préférence ou cliquez sur l'icône Modifier pour modifier la préférence.

  4. Remplacez la valeur par 0.

  5. Enregistrez les modifications et redémarrez le navigateur.

  6. reconnectez-vous au bureau dans la console ServiceNow CRM.

Vue d'ensemble

Cet article couvre plusieurs façons de personnaliser vos règles métier pour le connecteur ServiceNow CRM. Il explique comment vous pouvez personnaliser les cas d'utilisation en fonction de 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 Webex Contact Center.


 

Il s'agit d'une documentation de référence pour faciliter la modification des règles métier. Les développeurs de ServiceNow créeront et géreront les règles métier et fourniront une assistance.

Cisco fournit uniquement des exemples de documentation.

Changement de code sur ServiceNow

Le script inclut des modifications
  1. Accédez au navigateur de filtres et recherchez Le script comprend.

    Sélectionnez le Script inclus sous Interface utilisateur système.

  2. Filtrez le Nom et recherchez propUtils.

  3. Changer la méthode UtilisateurGetSysId Dans le Script.

    Actuel :

    UserGetSysId : function () { var open_for ; var utilisateur = new GlideRecord("sys_user") ; user.addQuery(this.getParameter('field'),this.getParameter('value')) ; utilisateur.query() ; if (user.next()) open_for=user.sys_id ; var grInt = new GlideRecord('interaction') ; grInt.initialize() ; grInt.assigned_to= gs.getUserID() ; grInt.type= 'téléphone' ; grInt.opened_for=opened_for ; var sysid=grInt.insert() ; renvoyer l'ID système ; },

    Nouvel exemple de code pour l'incident :

    UserGetSysId : function () { var open_for ; //Modifications liées à l'incident var sysidlist = {} ; var utilisateur = new GlideRecordSecure("sys_user") ; user.addQuery(this.getParameter('field'),this.getParameter('value')) ; utilisateur.query() ; if(user.next()) {open_for=user.sys_id;//return user.sys_id ; var inc = new GlideRecordSecure('incident') ; inc.addQuery('caller_id', open_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='téléphone' ; inc.short_description='Appel reçu de '+ this.getParameter('value') ; sysidlist.incsysid=inc.insert() ; } } var grInt = new GlideRecordSecure('interaction') ; grInt.initialize() ; grInt.assigned_to= gs.getUserID() ; grInt.type= 'téléphone' ; grInt.opened_for=opened_for ; var sysid=grInt.insert() ; sysidlist.sysid=sysid ; return JSON.stringify(sysidlist) ; },

Changement de méthode sur les pages de l'interface utilisateur
  1. Accédez au navigateur de filtres et recherchez la page d'interface utilisateur.

    Sélectionnez pages de l'interface utilisateur sous interface utilisateur du système.

  2. Filtrez le Nom et recherchez agentdesktop.

  3. Changer Capture d'écran Fonction dans Script client.

    Fonction actuelle :

    // Fonction d'affichage d'écran screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani) ; } var gaout = new GlideAjax('propUtils') ; gaout.addParam('sysparm_name', 'UserGetSysId') ; gaout.addParam('champ', 'téléphone') ; gaout.addParam('value', appelant) ; gaout.getXMLWait() ; var sysid = gaout.getAnswer() ; openFrameAPI.openServiceNowForm({entité : 'interaction', requête : 'sys_id='+sysid });

    Exemple de code pour l'incident :

    // Fonction d'affichage d'écran screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani) ; } var gaout = new GlideAjax('propUtils') ; gaout.addParam('sysparm_name', 'UserGetSysId') ; gaout.addParam('champ', 'téléphone') ; gaout.addParam('value', appelant) ; gaout.getXMLWait() ; // Pour les modifications liées à l'incident var sysObj = JSON.parse(gaout.getAnswer()) ; if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({entité : 'incident', requête : 'sys_id='+sysObj.incsysid, 'interaction_sys_id' : sysObj.sysid }) ; }else{ openFrameAPI.openServiceNowForm({entité : 'incident', requête : 'sys_id=-1', 'interaction_sys_id' : sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }) ; } }

Si les informations sur l'appelant existent dans CRM et qu'un nouvel incident est déjà ouvert avec ce contact, l'application ouvre l'incident en cours.

Si les informations de l'appelant n'existent pas dans CRM, l'application ouvre un nouvel incident

Si les informations sur l'appelant existent dans CRM, l'application ouvre un nouvel incident avec des détails pré-remplis

Vue d'ensemble

Ce cas d'utilisation détaille le processus pour ajouter une colonne supplémentaire à la table ServiceNow - webexcc_imp_activity et créer sn_openframe_phone_log lors de l'installation du Webex CC pour ServiceNow CRM Connector.

Par défaut, la table contient certains champs et valeurs système prêts à l'emploi.

Vous pouvez créer des variables plus spécifiques à l'entreprise (variables CAO) dans le concepteur WebexCC Flow et ajouter les variables CAO dans le journal d'activité post-appel de ServiceNow, ainsi que les conserver dans les données du tableau d'activité post-appel.


 

Il s'agit uniquement d'une documentation de référence - et montre comment procéder pour un exemple de variable CAO appelée Nom du client qui stocke le nom du client dans le IVR et le publie sur ServiceNow.

Il est prévu que les développeurs de ServiceNow partenaire+client configurent et gèrent 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.

À partir de cet article, l'équipe Cisco a validé la prise en charge de l'ajout d'une variable CAO au journal d'activité et au tableau d'activité à l'aide de la technique décrite ci-dessous :

Ajouter une colonne à l'activité WebexCC IMP

  1. Modifiez le tableau dans la version développeur de ServiceNow.

  2. Accédez au navigateur de filtres et recherchez studio.

    Sélection Webex Contact Center

    ou

  3. Sélectionnez Activité WebexCC IMP tableau

  4. Ajoutez une nouvelle colonne, par exemple, Nom du client

Ajouter une colonne au journal du téléphone

  1. Modifiez le tableau du journal téléphonique.

  2. Ajoutez une nouvelle colonne, par exemple, Nom du client.

Carte de transformation d'activité WebexCC

Ajoutez une nouvelle colonne, par exemple, Nom du client Cartographie du terrain.

Personnaliser les colonnes de la liste

Comme Service Now le recommande, modifiez l'action Choix de créer à ignorer.

Configurer la liste des journaux téléphoniques

Aller à Inclure le script


 

Ajouter une seule ligne webexcc.u_customername=actInfo.CustomerName à propUtils.

Exemple de script

Consultez la ligne : webexcc.u_customername=actInfo.CustomerName; avec un commentaire à l'appui.

var propUtils = Classe.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 opens_for ; var user = new GlideRecord("sys_user") ; user.addQuery( this.getParameter('field'),this.getParameter('value')) ; user.query() ; if (user.next()) opens_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= open_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 ; // Cette ligne est ajoutée - pour la capturer dans le journal d'activité webexcc.u_customername=actInfo.CustomerName ; sys_id=webexcc.insert() ; //Activités sur l'enregistrement d'incident ; var actInfoString =this.getParameter('actInfo') ; var suser = new GlideRecordSecure("sys_user") ; suser.addQuery("télé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() ; } } } renvoie sys_id ; }, tapez : 'propUtils' });

Créer une variable CAO dans Flow Designer

Ajouter la variable CAO à la disposition du bureau

Exemple

"CadName1:SnowField1,CadName2:SnowField2" CadName1 est CustomerName SnowField1 est également utilisé comme CustomerName qui fait partie de l'exemple de extrait présenté ci-dessus "actInfo.CustomerName".

Captures d'écran de démonstration

Affichez la variable CAO nouvellement ajoutée dans le tableau Activité WebexCC.

Créer une variable CAO pour Flow Designer

Urgence des incidents

Impact des incidents

Mise à jour du script Service Now

Mises à jour du script inclus

  1. Accédez au navigateur de filtres et recherchez le script inclut

    Sélectionnez l'option Script inclus sous Interface utilisateur système.

  2. Filtrez le Nom avec propUtils.

  3. Changer la méthode UtilisateurGetSysId Dans le champ Script .

    Scénario actuel :

    UserGetSysId : function () { var open_for ; var utilisateur = new GlideRecord("sys_user") ; user.addQuery(this.getParameter('field'),this.getParameter('value')) ; utilisateur.query() ; if (user.next()) open_for=user.sys_id ; var grInt = new GlideRecord('interaction') ; grInt.initialize() ; grInt.assigned_to= gs.getUserID() ; grInt.type= 'téléphone' ; grInt.opened_for=opened_for ; var sysid=grInt.insert() ; renvoyer l'ID système ; },

    Nouvel exemple de code pour l'incident :

    UserGetSysId : function () { var open_for ; var listesysid = {} ; var utilisateur = new GlideRecordSecure("sys_user") ; user.addQuery(this.getParameter('field'),this.getParameter('value')) ; utilisateur.query() ; if(user.next()) {open_for=user.sys_id;//return user.sys_id ; var inc = new GlideRecordSecure('incident') ; inc.addQuery('caller_id', open_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='téléphone' ; inc.urgency=this.getParameter('IncUrgency') ; inc.impact=this.getParameter('Impact') ; inc.short_description='Appel reçu de '+ this.getParameter('value') ; sysidlist.incsysid=inc.insert() ; } } var grInt = new GlideRecordSecure('interaction') ; grInt.initialize() ; grInt.assigned_to= gs.getUserID() ; grInt.type= 'téléphone' ; grInt.opened_for=opened_for ; var sysid=grInt.insert() ; sysidlist.sysid=sysid ; return JSON.stringify(sysidlist);//sysid ; },

Un changement de méthode sur les pages UI
  1. Accédez au navigateur de filtres et recherchez Pages d'interface utilisateur.

    Sélectionnez le Pages d'interface utilisateur option sous Interface utilisateur du système.

  2. Filtrer le Pages d'interface utilisateur avec Nom et rechercher agentdesktop.

  3. Changer Capture d'écran Fonction dans le champ script.

    Fonction actuelle :

    // Fonction d'affichage d'écran screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani) ; } var gaout = new GlideAjax('propUtils') ; gaout.addParam('sysparm_name', 'UserGetSysId') ; gaout.addParam('champ', 'téléphone') ; gaout.addParam('value', appelant) ; gaout.getXMLWait() ; var sysid = gaout.getAnswer() ; openFrameAPI.openServiceNowForm({entité : 'interaction', requête : 'sys_id='+sysid }) ; }

    Exemple de code pour l'incident :

    // Fonction d'affichage d'écran screenpop(callerani,callSessionInfo) { var Impact=3 ; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != non défini) { Impact=callSessionInfo.callAssociatedData.Impact.value ; } var IncUrgence=3 ; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != non défini) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value ; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani) ; } var gaout = new GlideAjax('propUtils') ; gaout.addParam('sysparm_name', 'UserGetSysId') ; gaout.addParam('champ', 'téléphone') ; gaout.addParam('value', appelant) ; gaout.addParam('IncUrgence', IncUrgence) ; gaout.addParam('Impact', Impact) ; gaout.getXMLWait() ; // var idsys = gaout.getAnswer() ; var sysObj = JSON.parse(gaout.getAnswer()) ; if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({entité : 'incident', requête : 'sys_id='+sysObj.incsysid, 'interaction_sys_id' : sysObj.sysid }) ; }else{ openFrameAPI.openServiceNowForm({entité : 'incident', requête : 'sys_id=-1', 'interaction_sys_id' : sysObj.sysid }) ; } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)) ; }

Si les informations sur l'appelant existent dans CRM et qu'il n'y a aucun incident nouveau ou en cours, l'application ouvre un nouvel incident.

Changer le code sur ServiceNow

Ajouter de nouvelles colonnes Activité WebexCC IMP tableau

Ouvrez Activité WebexCC IMP tableau

Ajouter une nouvelle colonne - InteractionsNumber

Ajouter une nouvelle colonne - IncidentNumber

Cliquez sur Mettre à jour.

Ajouter de nouvelles colonnes Journal téléphonique tableau

Ouvrez Journal téléphonique tableau

Ajouter une nouvelle colonne - InteractionsNumber

Ajouter une nouvelle colonne - IncidentNumber

Carte de transformation d'activité WebexCC

Ouverte Transformer la carte Depuis le navigateur de filtres

Cliquer sur TransformMap d'activité WebexCC

Ajouter nouveau - pour la carte des numéros d'interaction

Ajouter nouveau - pour la carte des numéros d'incident

Cliquez sur Mettre à jour.

Modifications apportées aux inclusions de script

  1. Accédez au navigateur de filtres et recherchez "le script inclut".

    Sélectionnez le Script inclus sous interface utilisateur système.

  2. Filtrer le Nom avec propUtils.

  3. Changer la méthode setWebexcctable.

    Nouvel exemple de code pour l'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()) { //Activités sur l'enregistrement d'incident ; //var actInfoString =this.getParameter('actInfo') ; var incsysid=actInfo.incident_sys_id ; var interactionsysid=actInfo.interaction_sys_id ; var incnum="" ; var intenum="" ; supprimer actInfo['interaction_sys_id'] ; supprimer 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='Mettre à jour l'état sur fermé.' ; 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("télé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() ; } renvoie sys_id ; },

Modifications de méthode sur les pages de l'interface utilisateur

  1. Accédez au navigateur de filtres et recherchez Pages d'interface utilisateur

    Sélectionnez l'option Pages de l'interface utilisateur sous Interface utilisateur du système.

  2. Filtrez les pages de l'interface utilisateur avec Nom et recherchez agentdesktop.

  3. Changer nowActivities et screenpop Fonction 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 != non défini) { 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('champ', 'téléphone') ; gaout.addParam('value', appelant) ; gaout.getXMLWait() ; // var idsys = gaout.getAnswer() ; var sysObj = JSON.parse(gaout.getAnswer()) ; if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({entité : 'incident', requête : 'sys_id='+sysObj.incsysid, 'interaction_sys_id' : sysObj.sysid }) ; }else{ openFrameAPI.openServiceNowForm({entité : 'incident', requête : '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 inférieures. Pour les personnalisations pour les versions plus récentes 1.0.7 et supérieures, suivez les étapes ci-dessus.

Personnalisation n°1 – Ajouter des règles métier personnalisées pour les cas d'utilisation du flux d'appels

Créez un nouvel enregistrement d'incident pour chaque appel

Pour chaque nouvel appel dans le connecteur WebexCC CRM dans ServiceNow, créez un nouvel enregistrement d'incident.

  1. Rechercher des règles métier dans le navigateur Filtrer

  2. Cliquez sur Nouveau.

    Exemple de code pour référence :

    function customcti() { var url = null ; var nom = sysparm_caller_name ; eid = sysparm_caller_id ; var téléphone = sysparm_caller_phone ; var ID de tâche = sysparm_task_id ; var fQuery = sysparm_query ; si (fQuery == null) fQuery = '' ; var vue = sysparm_view ; if (view == null || view == '') view = "itil" ; var ID utilisateur = nul ; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid) ; } if (userID == null && nom != null && nom != '') { userID = UserGetSysId("name", nom) ; } 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 ; } réponse = URL ; URL de retour ; } function UserGetSysId(champ, valeur) { var user = new GlideRecord("sys_user") ; user.addQuery(champ, valeur) ; utilisateur.query() ; if (user.next()) renvoie user.sys_id ; sinon, renvoie null ; }

    Exemple de configuration de la règle métier

  3. Activer l'appel client

    Intégration Téléphonie Informatique (CTI) Traitement des incidents est marqué comme Vrai.

  4. Mettez à jour l'URL de la capture d'écran avec la règle CTI personnalisée " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone= "

Exemple

Le sysparm_cti_rule=nom où ' nom ' est le nom d'un fonction doit être invoqué pour CTI Traitement plutôt que d'utiliser le script par défaut.

Définir la fonction dans un sys_script entrée marquée appelable par le client.

Si vous devez insérer, mettre à jour ou supprimer des GlideRecords dans la fonction, appelez une fonction appelable non client distincte pour effectuer les mises à jour.


 

Pour rendre un script appelable par le client, vous devez cocher la case appelable par le client sur le formulaire qui s'affiche lorsque l'entrée sys_script est affichée.

La case à cocher appelable par le client n'apparaît pas par défaut. Pour afficher, vous devez modifier les champs qui s'affichent sur le formulaire à l'aide de l'icône d'engrenage et du mécanisme du seau à neige fondante.

Les références

Personnalisation n°2 - Ajouter une variable CAO dans la table d'activité Webex Contact Center

Présentation

Cet article détaille le processus d'ajout d'une colonne supplémentaire à la table ServiceNow - webexcc_activity créée lors de l'installation du Webex CC pour le connecteur ServiceNow CRM.

Par défaut, la table contient des champs et des valeurs système prêts à l'emploi.

Vous pouvez potentiellement créer des variables plus spécifiques à l'entreprise (variables CAO) dans le concepteur WebexCC Flow et ajouter ces variables CAO dans le journal d'activité post-appel de ServiceNow , et les conserver dans le données du tableau d'activité post-appel .


 
  • Il s'agit uniquement d'une documentation de référence - et montre comment procéder pour un exemple de variable CAO appelée Nom du client qui stocke le nom du client dans le IVR et le publie sur ServiceNow.

  • Les développeurs partenaire+client de ServiceNow configureront et géreront cette configuration car il s'agit d'une personnalisation du connecteur existant.

  • Cisco fournira uniquement les techniques permettant de personnaliser et d'étendre le connecteur.

  • À partir de cet article, l'équipe Cisco a validé la prise en charge de l'ajout d'une variable CAO au journal d'activité et au tableau d'activité à l'aide de la technique décrite ci-dessous.

Ajouter une colonne à l'activité WebexCC
  1. Modifiez le tableau dans la version développeur de ServiceNow.

  2. Accédez au centre de contact Studio > Webex.

  3. Sélectionnez le tableau Activité WebexCC .

  4. Par exemple, CustomerName.

  5. Sélectionnez la présentation de la liste pour Activité WebexCC.

Créer un nouveau script inclut

 

Cette étape n'est pas requise si vous utilisez l'ensemble de mises à jour XML - Une seule ligne doit être ajoutée "webexcc.u_customername=actInfo.CustomerName" à propUtils.

Exemple de script

Consultez la ligne :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 ; // Cette ligne est ajoutée - pour la capturer dans le journal d'activité webexcc.u_customername=actInfo.CustomerName ; sys_id=webexcc.insert() ; // Activités sur l'enregistrement d'incident ; var actInfoString =this.getParameter('actInfo') ; var suser = new GlideRecordSecure("sys_user") ; suser.addQuery("télé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() ; } } } renvoie sys_id ; }, tapez : 'propUtils2' });
Modifiez 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 disposition du bureau

Captures d'écran de démonstration

Affichez la variable CAO nouvellement ajoutée dans le tableau Activité WebexCC.