Intégrez le centre de contact Webex à ServiceNow (version 1 — Legacy)

list-menuUn commentaire ?
Lorsque vous intégrez Webex Contact Center à la console CRM de ServiceNow, vous pouvez lancer Webex Contact Center Desktop depuis ServiceNow.

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 :

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.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

Sur votre instance de développeur, dans le champ Filtrer en haut à gauche de la fenêtre, accédez à Plugins.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Recherchez le plugin Openframe intitulé Openframe. Vous devrez peut-être faire défiler la liste.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Cliquez sur Installer pour installer le plugin Openframe.

6

Dans la boîte de dialogue Activer le plugin, cliquez sur Activer.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

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.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

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.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

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.

Nom de fichier : WebExcc-ServiceNow-Update-Setv (X) .xml

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

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

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

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

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

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.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

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.

ServiceNow developer portal retrieved update sets list for an updated file.

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.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

Cliquez sur Fermer dans la boîte de dialogue Update Set Preview une fois l'aperçu terminé.

ServiceNow developer portal with the update set preview success notification.

8

Cliquez sur Commit Update Set.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

Cliquez sur Fermer dans la boîte de dialogue Update Set Commit une fois la validation de Update Set terminée.

ServiceNow developer portal with the update set commit success notification.

1

Dans le champ Filtrer le navigateur en haut à gauche de la fenêtre, tapez sys_properties.listet appuyez sur Entrée.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

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 :

ServiceNow developer instance system properties page.

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.

ServiceNow developer instance system property details for agentdesktop_url.

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.

ServiceNow developer instance system property details for webexactivitytable.

7

(Facultatif) Ajoutez des groupes d'utilisateurs de la manière suivante :

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

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Créez un nouveau groupe d'utilisateurs ou utilisez un groupe existant.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Cliquez sur Modifier.

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

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

  5. Cliquez sur Enregistrer.

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

    ServiceNow developer instance group page with user roles assigned.

1

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

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Cliquez sur Nouveau.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

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

  • Nom : Webex Contact Center Desktop

  • Titre : Webex Contact Center

  • Largeur : 550 (recommandé)

  • Taille : 600 (recommandée)

4

À droite du champ URL, cliquez sur le bouton Verrouiller et ajoutez-le agentdesktop.docomme URL. (Suivez cette étape pour diriger la configuration vers la page d'interface utilisateur)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

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

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

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

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

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

Téléchargez la mise en page de bureau pour ServiceNow sur https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

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 Provisioning > Desktop Layout.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

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 à Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

Sur votre instance de développeur, dans le champ Filtrer en haut à gauche de la fenêtre, accédez à Plugins.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Recherchez le plugin Openframe intitulé Openframe. Vous devrez peut-être faire défiler la liste.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Cliquez sur Installer pour installer le plugin Openframe.

6

Dans la boîte de dialogue Activer le plugin, cliquez sur Activer.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

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.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

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.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

Dans le champ Filtrer le navigateur en haut à gauche de la fenêtre, entrez sys_properties.list.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

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 :

ServiceNow developer instance system properties page results.

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.

ServiceNow developer instance system property details page for agentdesktop_url.

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.

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

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

  2. Modifiez le champ Valeur comme il se doit.

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(Facultatif) Ajoutez des groupes d'utilisateurs de la manière suivante :

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

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  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

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

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

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Cliquez sur Nouveau.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

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

  • Nom : Webex Contact Center Desktop

  • Titre : Webex Contact Center

  • Largeur : 550 (recommandé)

  • Taille : 600 (recommandée)

4

À droite du champ URL, cliquez sur le bouton Verrouiller et ajoutez-le x_caci_webexcc_agentdesktop.docomme URL. (Suivez cette étape pour diriger la configuration vers la page d'interface utilisateur)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

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

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

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

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

Dans le champ Filtrer le navigateur, accédez à Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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

Téléchargez la mise en page de bureau pour ServiceNow sur https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

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 Provisioning > Desktop Layout.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

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 à Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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.

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

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

ServiceNow developer instance call incident window for a Directory Entry.

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 à Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • 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 à Service Operations Workspace.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

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
  1. Accédez au navigateur de filtres et recherchez les scripts inclus.

    Sélectionnez le script inclus dans l'interface utilisateur du système.

  2. Filtrez le nom et recherchez PropUtils.

  3. 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);
            },

Changement de méthode sur les pages de l'interface utilisateur
  1. 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.

  2. Filtrez le nom et recherchez agentdesktop.

  3. 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

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

    ServiceNow developer instance WebexCC IMP activity table.

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

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    Sélectionnez le centre d'appels Webex

    Studio app for ServiceNow with the Select Application window open.

    ou

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. Sélectionnez le tableau d'activité WebEXCC IMP

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. Ajouter une nouvelle colonne, par exemple CustomerName

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

Ajouter une colonne au journal téléphonique

  1. Modifiez le journal téléphonique.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. Ajoutez une nouvelle colonne, par exemple CustomerName.

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

Carte de transformation des activités WebEXCC

Studio app for ServiceNow WebexCC Activity Transform Map.

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

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

Personnalisez les colonnes des listes

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

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

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

Configurer la liste des journaux téléphoniques

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

Accéder à Script Include

Ajoutez une seule ligne webexcc. u_customername=ActInfo.CustomerName vers PropUtils.

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

Exemple de script

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

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

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".

Example source code for adding the CAD variable to the Desktop Layout.

Captures d'écran de démonstration

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

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

Créer une variable CAO pour Flow Designer

Urgence de l'incident

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Impact de l'incident

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Mise à jour du script Service Now

Les mises à jour du script incluent

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

    Sélectionnez l'option Inclusions de scripts dans l'interface utilisateur du système.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtrez le nom avec propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Modifiez la méthode UserGetSysID dans le champ Script.

    ServiceNow developer instance Script Includes – propUtils details page.

    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;
            },

Un changement de méthode sur les pages de l'interface utilisateur
  1. 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.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtrez les pages de l'interface utilisateur par nom et recherchez agentdesktop.

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. Modifiez la fonction Screenpop dans le champ de script.

    ServiceNow developer instance UI Page – agentdesktop details page.

    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

ServiceNow example of an incident.

ServiceNow example of an interaction.

Modifier le code sur ServiceNow

Ajouter de nouvelles colonnes au tableau d'activité WebEXCC IMP

Ouvrez le tableau d'activité WebEXCC IMP

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Ajouter une nouvelle colonne : InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

Ajouter une nouvelle colonne : IncidentNumber

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

Cliquez sur Mettre à jour.

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

Ajouter de nouvelles colonnes au tableau Phone Log

Ouvrez le tableau du journal téléphonique

ServiceNow developer instance Phone Log table.

Ajouter une nouvelle colonne : InteractionsNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

Ajouter une nouvelle colonne : IncidentNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

Carte de transformation des activités WebEXCC

Ouvrez la carte de transformation depuis le navigateur de filtres

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

Cliquez sur WebEXCC Activity TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Ajouter un nouveau - pour Interaction Number Map

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

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

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

Cliquez sur Mettre à jour.

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

Les modifications apportées au script incluent

  1. Accédez au navigateur de filtrage et recherchez « le script inclut ».

    Sélectionnez le script inclus dans l'interface utilisateur du système.

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. Filtrez le nom avec PropUtils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. Changez la méthode SetWebExccTable.

    ServiceNow developer instance Script includes - propUtils page

    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

  1. 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.

    ServiceNow developer instance filter navigator with search for ‘Ui page’

  2. Filtrez les pages de l'interface utilisateur par nom et recherchez agentdesktop.

    ServiceNow developer instance UI Pages with Name filter applied to search.

  3. Modifiez les fonctions NowActivities et Screenpop dans le script.

    ServiceNow developer instance UI Page – agentdesktop.

    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

ServiceNow developer instance Phone Logs page.

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 appel

Pour chaque nouvel appel vers le connecteur WebExcc CRM de ServiceNow, créez un nouvel enregistrement d'incident.

  1. Recherchez les règles commerciales dans le navigateur de filtres

    ServiceNow developer instance Business Rules page header.
  2. Cliquez sur Nouveau.

    ServiceNow developer instance Business Rule – New Record.

    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

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. Activer l'appelabilité du client

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

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

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Mettez à jour l'URL de la fenêtre d'écran avec la règle CTI personnalisée « cti.do ? sysparm_cti_rule=CreateIncident& = sysparm_caller_phone «

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
Exemple

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.

Références

Personnalisation n° 2 - Ajouter une variable CAO dans le tableau des activités du Webex Contact Center

Vue d'ensemble

Cet 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.

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

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Accédez au Studio > Webex Contact Center.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. Sélectionnez le tableau d'activité WebEXCC.

    App Engine Studio WebexCC Activity table.
  4. Par exemple, CustomerName.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

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

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Créer un nouveau script inclut

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.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

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 scriptApp Engine Studio agentdesktop UI page with new script name.

Créer une variable CAO dans Flow DesignerWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Ajouter la variable CAO à la mise en page du bureauWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Captures d'écran de démonstration

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

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

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

Cet article était-il utile ?
Cet article était-il utile ?