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 :
Accédez à Utilisateur > Nouveau.
Renseignez les informations et sélectionnez "Web service access only" (Accès au service Web uniquement).
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.
Dans le menu, sélectionnez Configurer > Conception du formulaire pour ouvrir le concepteur de formulaire.
Dans la colonne de gauche, sélectionnez l'onglet Types de champs.
Faites glisser le type de champ personnalisé que vous souhaitez ajouter.
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.
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.
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
Accédez à Tous > Applications système > Toutes les applications disponibles > Toutes.
Recherchez OpenFrame.
Installez OpenFrame.
Une fois installé, accédez à Tous > OpenFrame > Configurations.
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.
Saisissez
sys_properties.listdans la barre de recherche.Modifier
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.Ajoutez la nouvelle URL à la liste des valeurs.
Modifier
sn_openframe.cross.origin.access.Ajoutez
autoplayà la liste des valeurs.
Activer la nouvelle expérience utilisateur pour les utilisateurs
Saisissez
sys_properties.listdans la barre de navigation, puis cliquez sur Entrée.Définissez la propriété système
glide.ui.polaris.experiencesur true.Définissez la préférence utilisateur
glide.ui.polaris.usesur false pour le système.Définissez la préférence utilisateur
glide.ui.polaris.usesur true pour un utilisateur. (Vous pouvez créer une ligne de préférences utilisateur.)
Mettre à jour les propriétés système
Saisissez
sys_properties.listdans la barre de navigation, puis cliquez sur Entrée.Modifier
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.Ajoutez l'URL à la liste des valeurs. Plusieurs valeurs doivent être séparées par une virgule.
Modifier
sn_openframe.cross.origin.access.Ajoutez la lecture automatique à la liste des valeurs.
Modifier
glide.ui.polaris.experience.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
Accédez à System UI > UI Actions.
Sélectionnez Créer une action.
Dans le formulaire illustré, sélectionnez la table à laquelle cette fonctionnalité "Cliquer pour appeler" appartiendra.

Pour les formulaires faisant référence à un contact ou à un utilisateur, utilisez l'API
g_form.getReferencepour 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); }); }Pour les formulaires comportant un numéro à appeler, utilisez l'API
g_form.getValuepour 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
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_phoneoushow_phone_customer_serviceà la valeurref_contributions.Dans les macros d'interface utilisateur, modifiez
show_phoneetshow_phone_customer_service.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.
Dans le portail CCAI Platform, accédez à Settings > Developer Settings > CRM (Paramètres > Paramètres pour les développeurs > CRM).
Dans la section "Plate-forme d'agent", sélectionnez ServiceNow.
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.Dans le champ ServiceNow Cloud Selection (Sélection du cloud ServiceNow), sélectionnez
Incidentpour un type de demande de base. Si vous sélectionnezCustom, 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.Dans les champs Identifiants d'authentification, saisissez votre nom d'utilisateur et votre mot de passe.
Si vous avez sélectionné
Incidentpour 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 fieldsetPhone number primary field.
- Rechercher l'objet Compte inclut trois champs de menu déroulant :
Si vous avez sélectionné
Custompour 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
taskouincident. - 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.
- Type d'objet d'enregistrement de base : sélectionnez un type de table
- Rechercher l'objet Compte inclut trois champs de menu déroulant :
Object Type,Phone Number lookup fieldsetPhone number primary field.
- Objet d'enregistrement de recherche :
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.
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.
Fichier de métadonnées de session : cochez cette case pour joindre les métadonnées de session aux fiches CRM.
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
Dans votre compte ServiceNow, accédez à All > System OAuth > Application Registry (Tous > OAuth système > Registre des applications).
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).
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_callbackAppliquer 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.
Cliquez sur Envoyer.
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
Accédez à Paramètres pour les développeurs > CRM.
Assurez-vous que les paramètres sont saisis et configurés conformément aux étapes précédentes.
Sous "Méthode d'authentification", cliquez sur OAuth.
Saisissez l'ID client OAuth et le code secret du client OAuth. (voir l'étape 5 ci-dessus).
Cliquez sur Enregistrer.
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.
- Langues et messages
- Utilisateurs et équipes
- Agent virtuel
- Campaigns
- Enquêtes
- Files d'attente
- Appels
- Chat
- SMS
- Gestion des clients
- Paramètres pour les développeurs
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.