ServiceNow

Contact Center AI Platform (CCAI Platform) s'intègre à ServiceNow CRM.

Paramètres pour les développeurs ServiceNow

Version minimale recommandée de ServiceNow : Tokyo patch 1

Configurer un utilisateur d'authentification de base

Il est probable que la validation en deux étapes soit activée pour le compte administrateur ServiceNow et associée à cet utilisateur. Par conséquent, il ne peut pas être utilisé pour obtenir un accès administrateur dans CCAI Platform. Pour ce faire, vous devez créer un compte utilisateur dans ServiceNow.

Créez un utilisateur de base avec des identifiants :

  1. Accédez à Utilisateur > Nouveau.

  2. Renseignez les informations et sélectionnez "Web service access only" (Accès au service Web uniquement).

  3. Notez l'ID utilisateur et le mot de passe.

Rôles requis dans ServiceNow

Les rôles par défaut dans ServiceNow sont préconfigurés pour fournir des accès et des autorisations spécifiques au sein de la plate-forme. Les administrateurs peuvent créer et configurer des rôles qui accordent des autorisations spécifiques, lesquelles régissent ce que les utilisateurs et les groupes disposant de ce rôle peuvent faire.

Pour effectuer cette intégration, vous devez disposer des rôles suivants dans ServiceNow :

  • user_admin : ce rôle est conçu pour les administrateurs qui doivent gérer les utilisateurs, les groupes, les établissements et les entreprises dans l'instance ServiceNow.

  • sn_incident_read : ce rôle permet d'accéder en lecture seule à l'application Incident Management et à ses fonctions associées. Il permet aux utilisateurs de consulter les enregistrements d'incidents.

  • sn_incident_write : ce rôle accorde un accès en écriture à l'application Incident Management et à ses fonctions associées, ce qui permet aux utilisateurs de créer et de modifier des enregistrements d'incidents.

  • personalize_dictionary : ce rôle permet de personnaliser les entrées et les libellés du dictionnaire pour répondre à des exigences commerciales spécifiques.

  • function_field_admin : ce rôle est destiné aux utilisateurs qui doivent créer, modifier et afficher des champs de fonction spécifiquement dans le concepteur de rapports. Elle ne permet pas de créer ni de supprimer des champs de fonction dans la liste ou le formulaire de la plate-forme.

Configurer les vues d'instance

Les sections suivantes décrivent les modifications de configuration nécessaires pour les vues d'instance.

(Facultatif) Ajouter des favoris

Les favoris vous permettent de trouver rapidement les liens les plus utilisés dans l'instance ServiceNow. Pour ajouter un favori, sélectionnez l'icône en forme d'étoile à côté d'un champ dans le panneau "Navigateur". Si vous souhaitez filtrer ultérieurement le panneau du navigateur pour n'afficher que vos favoris, vous pouvez sélectionner l'icône en forme d'étoile directement sous le champ de filtre du navigateur dans le panneau "Navigateur".

Voici quelques exemples de favoris utiles :

  • Incidents : associations aux enregistrements pour le CRM personnalisé.
  • Utilisateurs : associations aux comptes pour le CRM personnalisé.
  • Explorateur d'API REST : un bon moyen de tester l'API.

Ajouter des champs personnalisés manuellement

Sélectionnez l'icône Développer (trois lignes horizontales) en haut à gauche de la vue d'objet que vous souhaitez modifier. Vous pouvez le faire dans la vue en libre-service ou la vue par défaut.

  1. Dans le menu, sélectionnez Configurer > Conception du formulaire pour ouvrir le concepteur de formulaire.

  2. Dans la colonne de gauche, sélectionnez l'onglet Types de champs.

  3. Faites glisser le type de champ personnalisé que vous souhaitez ajouter.

  4. Une fois que vous avez déposé le type de champ dans la section souhaitée, sélectionnez l'icône en forme de roue dentée pour afficher les paramètres.

  5. Dans la fenêtre, modifiez le libellé et notez le nom. Ce nom est celui que vous utilisez dans les paramètres de l'application CCAI Platform.

  6. Sélectionnez Enregistrer en haut à droite de l'écran.

Mapper les données de session au CRM

Vous devez mapper les données de session appropriées à partir de CCAIP à l'aide de Dialogflow et utiliser les paramètres suivants :

Données des agents virtuels

{
  "ujet": {
    "session_variable": {
      "capture_target": "payload",
      "payload": {
        "value_one": "$session.params.payload_value_one"
      };
      "capture_type": [ "comment", "field" ] // optional, default of ["comment"]
    }
  }
}

Métadonnées

https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dsys_user https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dincident

Libellé : column_label

Clé API : element

Les champs personnalisés sont au même niveau que les champs standards dans la réponse de sys_user ou incident.

Importer un fichier de CCAI Platform vers le CRM

https://INSTANCE_URL.service-now.com/api/now/attachment/upload

Méthode : POST

Format des données de la demande : property

Emplacement des données de réponse : data.result

Type : Multi-part form

Type de pièce jointe : Attachment Url

URL de la pièce jointe : download_link

Paramètres : table below

Exemple de requête :

{
    file: FILE_DATA,
    table_name: incident,
    table_sys_id: RECORD_ID
}

Intégrer des adaptateurs d'agent (formulaires personnalisés)

Les étapes suivantes vous guident dans l'activation des adaptateurs d'agent et de la fonction Click to Call dans l'instance ServiceNow.

Installer et configurer OpenFrame

  1. Accédez à Tous > Applications système > Toutes les applications disponibles > Toutes.

  2. Recherchez OpenFrame.

  3. Installez OpenFrame.

  4. Une fois installé, accédez à Tous > OpenFrame > Configurations.

  5. Créez une configuration avec une URL. Si vous avez plusieurs configurations dans une instance ServiceNow, il est possible que votre utilisateur n'ait pas accès à une configuration nouvellement créée. Vérifiez vos groupes et la liste des ordres de configuration OpenFrame pour déterminer la configuration utilisée par votre utilisateur.

  6. Saisissez sys_properties.list dans la barre de recherche.

  7. Modifier glide.ui.concourse.onmessage_enforce_same_origin_whitelist.

  8. Ajoutez la nouvelle URL à la liste des valeurs.

  9. Modifier sn_openframe.cross.origin.access.

  10. Ajoutez autoplay à la liste des valeurs.

Activer la nouvelle expérience utilisateur pour les utilisateurs

  1. Saisissez sys_properties.list dans la barre de navigation, puis cliquez sur Entrée.

  2. Définissez la propriété système glide.ui.polaris.experience sur true.

  3. Définissez la préférence utilisateur glide.ui.polaris.use sur false pour le système.

  4. Définissez la préférence utilisateur glide.ui.polaris.use sur true pour un utilisateur. (Vous pouvez créer une ligne de préférences utilisateur.)

Mettre à jour les propriétés système

  1. Saisissez sys_properties.list dans la barre de navigation, puis cliquez sur Entrée.

  2. Modifier glide.ui.concourse.onmessage_enforce_same_origin_whitelist.

  3. Ajoutez l'URL à la liste des valeurs. Plusieurs valeurs doivent être séparées par une virgule.

  4. Modifier sn_openframe.cross.origin.access.

  5. Ajoutez la lecture automatique à la liste des valeurs.

  6. Modifier glide.ui.polaris.experience.

  7. Remplacez la valeur par false, car certaines fonctionnalités ne fonctionnent pas si elles sont activées.

Ajouter la fonctionnalité Click to Call en haut du formulaire

  1. Accédez à System UI > UI Actions.

  2. Sélectionnez Créer une action.

  3. Dans le formulaire illustré, sélectionnez la table à laquelle cette fonctionnalité "Cliquer pour appeler" appartiendra.

  4. Pour les formulaires faisant référence à un contact ou à un utilisateur, utilisez l'API g_form.getReference pour accéder au numéro de téléphone de l'utilisateur. Pour les tableaux personnalisés, l'ID de référence et les attributs obtenus peuvent être différents. La communication avec la plate-forme CCAI sera la même. Par conséquent, la charge utile et la structure de données doivent rester identiques à ce qui suit :

    function clickToDial() {
      var user = g_form.getReference('caller_id',function(res) {
        var phone = res.phone || res.mobile_phone;
        var payload = {"name": "clicktodial", "number": phone}; 
        var data = {"payload": payload, "method": "openframe_communication" }; 
        CustomEvent.fireAll("openframe_request", data);
      });
    }
    
  5. Pour les formulaires comportant un numéro à appeler, utilisez l'API g_form.getValue pour récupérer les valeurs correspondantes. Voici un exemple d'action d'UI pour la table "Utilisateurs". Pour les tables personnalisées, les noms des champs du formulaire peuvent être différents. La communication avec la plate-forme CCAI sera la même. Par conséquent, la charge utile et la structure de données doivent rester identiques à ce qui suit :

    function clickToDial() {
      var phone = g_form.getValue('phone') || g_form.getValue('mobile_phone');
      var payload = {"name": "clicktodial", "number": phone}; 
      var context = {"payload": payload, "method" : "openframe_communication" }; 
      CustomEvent.fireAll("openframe_request", context);
    }
    

Ajouter "Appel direct" à côté des références

  1. Le bouton d'appel à côté des références aux contacts doit être modifié dans le formulaire. Effectuez un clic droit sur le champ, puis accédez à Configurer le dictionnaire. Pour les attributs, ajoutez la valeur show_phone ou show_phone_customer_service à la valeur ref_contributions.

  2. Dans les macros d'interface utilisateur, modifiez show_phone et show_phone_customer_service.

  3. Remplacez les éléments suivants :

Précédent :

var task =    {"entity": p.attr('data-task-table'), "query" :"sys_id="+p.attr('data-task-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-task-value'),"label":p.attr('data-task-label')};
                                        var company = {"entity": p.attr('data-company-table'),"query":"sys_id="+p.attr('data-company-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-company-value'),"label":p.attr('data-company-label')};
                                        var caller = {"entity": p.attr('data-caller-table'),"query": "sys_id="+p.attr('data-caller-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-caller-value'),"label":p.attr('data-caller-label')};
                                        
                                        var callContext = [];
                                        callContext.push(task);
                                        callContext.push(company);
                                        callContext.push(caller);
                
                                        var metaData = {"phoneNumber":p.attr('data-caller-phone'),"taskId":p.attr('data-task-id')};
                                        
                                        var data =    {"metaData":metaData , "data": callContext};
                                        var payload = {"type": "OUTGOING_CALL", "data" : data};
                                        var createInteractionData ={};
                                        createInteractionData.interactionSysId = -1;
                                        createInteractionData.direction = 'outbound';
                                        createInteractionData.context_document = p.attr('data-task-id');
                                        createInteractionData.context_table = p.attr('data-task-table');
                                        createInteractionData.account = p.attr('data-company-id');
                                        if(p.attr('data-caller-table') === 'customer_contact')
                                                createInteractionData.contact = p.attr('data-caller-id');
                                        createInteractionData.opened_for = p.attr('data-caller-id');
        
                                        var ga = new GlideAjax('sn_openframe.OpenFrameAjaxUtility');
                                        ga.addParam('sysparm_name', 'createInteractionWithPropertyCheck');
                                        ga.addParam('context', JSON.stringify(createInteractionData));
                                        ga.getXML(function(serverResponse) {
                                                var result = serverResponse.responseXML.getElementsByTagName("result");
                                                var output = JSON.parse(result[0].getAttribute("data"));
                                                if(output.status == "success"){
                                                        var interaction = {"entity": "interaction", "query" :"sys_id="+output.fields.interactionSysId, "value":output.fields.number, "label":"Interaction", "display":false};
                                                        payload.data.data.push(interaction);
                                                }
                                                var context = {"payload": payload, "method" : "openframe_communication" };
                                                jslog("context with interaction : "+ JSON.stringify(context));
                                                CustomEvent.fireAll("openframe_request", context);
                                        });

Nouveau :

var phone = p.attr('data-caller-phone')
                   var payload = {"name": "clicktodial", "number": phone}; 
                   var data = {"payload": payload, "method": "openframe_communication" }; 
                   CustomEvent.fireAll("openframe_request", data);

Paramètres CRM

Les étapes suivantes expliquent comment connecter l'API à ServiceNow à l'aide du portail de la plate-forme CCAI.

  1. Dans le portail CCAI Platform, accédez à Settings > Developer Settings > CRM (Paramètres > Paramètres pour les développeurs > CRM).

  2. Dans la section "Plate-forme d'agent", sélectionnez ServiceNow.

  3. Saisissez les informations sur votre domaine ServiceNow dans le champ Domaine ServiceNow. Il peut s'agir d'une instance de développeur ou d'une instance de fournisseur, selon les besoins, mais il s'agit d'une corrélation directe avec l'instance et de la première partie de l'URL dans l'adresse Web du portail ServiceNow : https://{your instance}.servicenow.com.

  4. Dans le champ ServiceNow Cloud Selection (Sélection du cloud ServiceNow), sélectionnez Incident pour un type de demande de base. Si vous sélectionnez Custom, d'autres options s'affichent. Les incidents sont des extensions de la table des tâches. Les objets personnalisés doivent être des extensions des incidents.

  5. Dans les champs Identifiants d'authentification, saisissez votre nom d'utilisateur et votre mot de passe.

  6. Si vous avez sélectionné Incident pour le type de champ de sélection du cloud, les champs suivants s'affichent :

    • Rechercher l'objet Compte inclut trois champs de menu déroulant : Object Type, Phone Number lookup fields et Phone number primary field.
  7. Si vous avez sélectionné Custom pour le type de champ de sélection du cloud, les champs suivants s'affichent :

    • Objet d'enregistrement de recherche :
      • Type d'objet d'enregistrement de base : sélectionnez un type de table task ou incident.
      • Type d'objet d'enregistrement : ce champ sera renseigné si une table d'incidents a été étendue. Vous pouvez le sélectionner si nécessaire.
    • Rechercher l'objet Compte inclut trois champs de menu déroulant : Object Type, Phone Number lookup fields et Phone number primary field.
  8. Champs d'ID utilisateur personnalisés : cochez cette case si vous souhaitez activer les champs de recherche d'utilisateur personnalisés pour les sessions SDK Web ou mobile.

  9. Format du numéro de téléphone : vous permet de sélectionner le format que vous souhaitez utiliser pour afficher les numéros de téléphone.

  10. Fichier de métadonnées de session : cochez cette case pour joindre les métadonnées de session aux fiches CRM.

  11. Cliquez sur Enregistrer pour enregistrer vos sélections. Si vous avez coché la case Champs d'ID utilisateur personnalisés, vous pourrez créer des champs personnalisés pour les enregistrements. Des onglets de champs personnalisés seront ajoutés en bas de chaque incident ServiceNow, sous les sections "Code de résolution" et "Notes de résolution" de la page.

Champs personnalisés pour les enregistrements

Il s'agit de champs personnalisés qui ont déjà été créés pour l'instance ServiceNow dans le concepteur de formulaires. Pour savoir comment créer d'autres champs personnalisés, consultez la documentation ServiceNow sous Configuration de ServiceNow CRM, section Ajouter des champs personnalisés manuellement.

Champ Type Définition
u_ujet_custom_field_after_call_work Chaîne Durée du travail après appel
u_ujet_custom_field_call_duration Chaîne Durée de l'appel
u_ujet_custom_field_comm_id Integer ID d'appel ou de chat selon le type de contact
u_ujet_custom_field_rating Integer Score CSAT
u_ujet_custom_field_email_via_web Chaîne E-mail envoyé depuis le Web
u_ujet_custom_field_feedback Chaîne Commentaires
u_ujet_custom_field_from_phone_number Chaîne Numéro de téléphone de l'appelant
u_ujet_custom_field_hold_duration Chaîne Durée totale de retenue
u_ujet_custom_field_menu_path Chaîne Sélection du menu
u_ujet_custom_field_queue_name Chaîne Nom de la file
u_ujet_custom_field_session_type Chaîne Type de session
u_ujet_custom_field_verification Vrai/Faux Confirmer que la validation est terminée
u_ujet_custom_field_wait_time Chaîne Temps d'attente total

Configurer OAuth

Pour configurer OAuth, créez une application OAuth dans ServiceNow. Ensuite, saisissez les identifiants (ID client OAuth et code secret du client OAuth) sous Paramètres du développeur > CRM > Méthode d'authentification.

Créer une application OAuth dans ServiceNow

  1. Dans votre compte ServiceNow, accédez à All > System OAuth > Application Registry (Tous > OAuth système > Registre des applications).

  2. Créez une application OAuth et sélectionnez Create an OAuth API endpoint for external clients (Créer un point de terminaison d'API OAuth pour les clients externes).

  3. Configurez les champs suivants :

    • Name (Nom) : saisissez un nom unique.

    • ID client : l'ID client est généré automatiquement par le serveur ServiceNow OAuth.

    • Code secret du client : code secret du client pour l'application OAuth. Laissez ce champ vide pour une génération automatique.

    • Durée de vie du jeton d'actualisation : durée de validité du jeton d'actualisation, en secondes.

    • Durée de vie du jeton d'accès : durée de validité du jeton d'accès, en secondes.

    • URL de redirection : saisissez l'URL de votre environnement, ainsi que le sous-répertoire. Exemple : https://servicenow.yourcompany.co/v1/servicenow/oauth_callback

    • Appliquer la restriction de jeton : limite l'utilisation du jeton d'accès aux API définies dans les règles d'accès à l'API REST de la documentation ServiceNow. Si vous désélectionnez cette option, vous pourrez utiliser le jeton d'accès dans d'autres API REST.

  4. Cliquez sur Envoyer.

  5. Après avoir créé l'application, revenez à l'enregistrement et récupérez l'ID client et le code secret du client que vous venez de créer.

Modifier les paramètres dans les paramètres développeur

  1. Accédez à Paramètres pour les développeurs > CRM.

  2. Assurez-vous que les paramètres sont saisis et configurés conformément aux étapes précédentes.

  3. Sous "Méthode d'authentification", cliquez sur OAuth.

  4. Saisissez l'ID client OAuth et le code secret du client OAuth. (voir l'étape 5 ci-dessus).

  5. Cliquez sur Enregistrer.

  6. Cliquez sur Associer les identifiants.

Mappage de champs personnalisés pour l'agent virtuel

Si vous utilisez l'agent virtuel, configurez ce champ sur l'écran Mappages de champs personnalisés. Cela permet de transférer les variables de l'agent virtuel de la charge utile de la session de l'agent virtuel vers ServiceNow. Les noms de variables peuvent être n'importe quelle chaîne. Les libellés de champs listés ici sont un exemple.

Sur l'écran Mappages de champs personnalisés, configurez la connexion entre les variables créées par les définitions de charge utile que vous avez utilisées dans la configuration initiale de l'agent virtuel et la variable correspondante dans ServiceNow.

Titre du mappage de champ Libellé du champ CRM Libellé de champ de données personnalisé
Commentaires sur l'agent virtuel ccaip_custom_field_incident_feedback va_feedback

Configurer d'autres paramètres

Vous trouverez les autres paramètres qui vous permettront d'intégrer correctement la plate-forme CCAI à votre instance ServiceNow dans le menu déroulant Settings (Paramètres). Consultez les liens de la liste suivante pour en savoir plus sur la configuration de chaque section.

Tester les sorties

Vous pouvez désormais vérifier le bon fonctionnement de vos flux d'appels et de chat en cliquant sur les boutons correspondants en haut de l'écran du portail CCAI Platform. Il est important de vous assurer que votre bloqueur de pop-up est désactivé lorsque vous effectuez ce test.

Un incident doit être créé dans ServiceNow, avec le contact de l'appel ou du chat listé dans la section Activities (Activités) de l'incident. Cela doit apparaître sous la forme d'une note de travail plutôt que d'un commentaire sur l'incident, afin que cette activité de backend ne soit pas visible par les clients.

La description de la demande sera préremplie avec "Appel via CCAI Platform" ou "Chat via CCAI Platform". Les agents devront peut-être la modifier.

Une fois que vous êtes satisfait des résultats de votre appel ou de votre discussion, vous pouvez saisir un code et une note de résolution (si les champs de code et de note de résolution ServiceNow ont été configurés), puis clôturer la demande.

Pour vérifier que la demande a été clôturée, vous devrez peut-être cliquer sur le bouton de navigation back de votre navigateur. Dans l'instance ServiceNow, il est normal qu'une fois la demande résolue, elle soit automatiquement fermée et que vous soyez redirigé vers la page d'un client.