CRM personnalisé

La solution CRM personnalisée permet aux entreprises de profiter du portail Contact Center AI Platform (CCAI Platform) lorsqu'elles utilisent un CRM qui n'est pas une intégration standard actuelle avec CCAI Platform. La configuration d'un CRM personnalisé fonctionne lorsque vous utilisez un CRM développé en interne ou tout autre CRM non standard.

Les agents gèrent les appels et les chats, et les superviseurs peuvent surveiller et générer des rapports à l'aide du portail CCAI Platform. Toutes les informations sur l'appel ou la session de chat sont stockées dans un fichier de métadonnées de session. Ce fichier peut contenir plus de 20 points de données, y compris des informations sur la session, les transferts, la durée de traitement, les participants, des informations de diagnostic et bien plus encore. Le fichier de métadonnées de session peut être analysé et utilisé pour l'analyse et le suivi post-session.

Les métadonnées de session et les fichiers multimédias importés par le consommateur sont envoyés à un service de stockage externe. Les agents peuvent voir les fichiers multimédias importés par le consommateur directement dans l'adaptateur d'agent pendant la session.

Une solution CRM personnalisée est implémentée à l'aide d'une combinaison des composants suivants. Certains composants peuvent s'appliquer ou non à votre configuration :

  • Générer le fichier de métadonnées de session pour chaque session d'appel et de chat

  • Transférer des métadonnées et des fichiers multimédias vers un service de stockage externe

  • Intégration d'API générique

  • URL de recherche personnalisée

  • Mise à jour d'un enregistrement CRM par e-mail

  • Recherche de compte ou de demande depuis l'adaptateur d'agent

Prérequis

Pour utiliser la fonctionnalité de CRM personnalisé, vous devez d'abord configurer un espace de stockage externe. Pour en savoir plus, consultez Stockage externe pour les solutions CRM personnalisées.

Métadonnées de session

Le fichier de métadonnées de session contient des informations détaillées sur la session. Il est envoyé 15 minutes après la fin de la session. Pour en savoir plus, consultez Fichier de métadonnées de session.

Méthodes d'interaction et d'intégration d'un CRM personnalisé

API générique URL personnalisée
Recherche de compte Oui Oui
Recherche de cas Oui
Mise à jour de la demande Oui Non

API générique

La méthode d'intégration d'API générique permet d'utiliser l'API de votre CRM personnalisé pour établir une connexion bidirectionnelle avec CCAI Platform. Cette méthode fluide est identique à l'expérience d'intégration de CRM prête à l'emploi. L'agent n'a pas besoin d'effectuer d'action pour créer un enregistrement CRM pour les sessions d'appel ou de chat, en fonction de la configuration unique de l'API. Il permet de rechercher et de mettre à jour des enregistrements de manière fluide.

URL personnalisée

L'option "Lien personnalisé" permet à vos agents d'interagir avec votre CRM en utilisant un lien personnalisé créé pour chaque session. Contrairement à l'intégration CRM standard et à l'expérience d'API générique, l'agent doit intervenir pour qu'un enregistrement CRM soit créé. Dans certains cas, il peut s'agir simplement d'ouvrir un onglet avec le lien personnalisé de la session. Dans d'autres cas, l'agent peut avoir besoin de créer manuellement l'enregistrement.

Détails et configuration de l'URL de recherche personnalisée

La fonctionnalité de base de l'URL consiste à effectuer une recherche CRM, mais selon votre CRM, des processus plus complexes peuvent être déclenchés en fonction du contenu de l'URL personnalisée. L'URL du CRM personnalisé peut être configurée avec des variables contenant des informations de session. Elle est accessible dans l'adaptateur d'agent pendant la session. Une fois l'URL consultée, elle déclenche une recherche dans le CRM personnalisé. Cette recherche CRM permet aux agents d'utiliser un "pop-up de demande" pour l'appel ou la session de chat actifs. Le processus de lien personnalisé repose uniquement sur la capacité du CRM personnalisé à traiter ce lien, et à le modifier ou le réécrire si nécessaire.

Les métadonnées de session, les enregistrements d'appels et les autres fichiers stockés en externe ne seront pas associés à l'enregistrement CRM, sauf si la méthode de mise à jour par e-mail indiquée est également utilisée.

Dans cette configuration, l'agent se connecte au portail de la plate-forme CCAI et à son CRM dans des onglets distincts. Les appels et les chats seront gérés dans l'onglet CCAI Platform, et les détails des demandes seront accessibles dans un onglet CRM.

Pour que cette configuration fonctionne :

  • L'agent doit être connecté à son CRM dans son navigateur.

  • L'agent doit être connecté au portail de la plate-forme CCAI dans son navigateur.

  • L'URL de recherche personnalisée doit être préconfigurée

  • Votre CRM doit gérer l'URL personnalisée pour afficher l'enregistrement CRM pertinent.

Comportement de l'URL de recherche personnalisée

  • La plate-forme CCAI n'inclura que les paramètres non vides dans l'URL.

  • CCAI Platform ne stocke pas l'URL générée contenant l'ANI/UID/adresse e-mail dans la base de données CCAI Platform une fois la session terminée.

Configuration de l'URL de recherche personnalisée

En raison des différences d'identifiants uniques, de fonctionnalités et de comportements CRM, vous devrez créer deux URL différentes : une pour les sessions IVR/PSTN/SMS et une pour les sessions SDK Web et mobile. Les sessions IVR/PSTN/SMS utiliseront l'ANI comme identifiant unique, tandis que les SDK Web et mobile utiliseront probablement le CUID et l'adresse e-mail.

Les variables suivantes peuvent être utilisées pour configurer une URL de recherche :

Variable Valeurs
{CUSTOMER_PHONE_NUMBER} Numéro de téléphone de l'utilisateur final.
{ANI} Numéro de téléphone de l'utilisateur final. Conservé pour assurer la rétrocompatibilité.
{CUID} ID utilisateur personnalisé
{EMAIL} Adresse e-mail de l'utilisateur final
{MENU_PATH} Chemin complet du menu de la file d'attente.
Par exemple, "Commandes/Confirmation de commande/Informations sur la commande".
{MENU_ID} ID du menu
{CHANNEL}

Canal de la session. Valeurs possibles :

  • chat
  • voice_call
{TYPE}

Type de session.

Valeurs possibles pour les appels :

  • Incoming_Call_(app)
  • Scheduled_Call_(app)
  • Incoming_Call_(web)
  • Scheduled_Call_(web)
  • Outbound_Call
  • Outbound_Call_(api)
  • Incoming_Call_(api)
  • IVR_Call
  • IVR_Call_(app)
  • Messagerie vocale

Valeurs possibles pour les discussions :

  • Mobile
  • Web
  • SMS
{SUPPORT_PHONE_NUMBER} Numéro de téléphone du centre d'assistance que l'utilisateur final appelle.
{OUTBOUND_NUMBER} Numéro de téléphone qu'un agent utilise pour un appel sortant.
{SESSION_ID}

ID de la session. Valeurs possibles :

  • ID de l'appel
  • ID de la discussion
  • ID d'adresse e-mail
{CUSTOM_AGENT_ID} Champ d'ID d'agent facultatif dans l'objet user. L'ID de l'agent ne peut pas être obtenu tant que la session n'est pas établie et qu'un agent n'est pas attribué. Pour cette raison, configurez votre instance de sorte qu'elle retarde la création de l'enregistrement d'appel ou de chat afin de laisser le temps de définir cette variable. Vous pouvez retarder la création d'enregistrements d'appels ou de discussions dans Paramètres > Gestion des opérations > Détails de la création d'enregistrements CRM. Pour en savoir plus, consultez Détails de la création d'enregistrements CRM.

Configuration du portail CCAI Platform

  1. Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.

  2. Accédez à Paramètres > Paramètres du développeur.

  3. Dans la section "CRM", sélectionnez CRM personnalisé.

  4. Sous Recherche CRM, saisissez vos URL personnalisées.

  5. Sélectionnez le format de numéro de téléphone à utiliser dans les requêtes CRM.

  6. Cliquez sur Enregistrer les modifications.

  7. Si vous ne l'avez pas déjà fait, configurez votre service de stockage externe. Pour en savoir plus, consultez "Stockage externe".

Mise à jour d'un enregistrement CRM par e-mail

Dans les configurations telles que l'URL de recherche personnalisée, une fois qu'une session est terminée, les métadonnées de session doivent être mises à jour dans le CRM. Grâce à cette fonctionnalité, CCAI Platform peut envoyer automatiquement les données de session par e-mail. Environ 15 minutes après la fin d'une session, un e-mail est envoyé à un emplacement configuré, et le contenu de l'e-mail est utilisé pour mettre à jour un enregistrement dans votre CRM. Cette fonctionnalité peut être configurée de manière globale et par file d'attente. Une fois l'e-mail reçu, votre CRM peut être configuré pour mettre à jour ou créer un enregistrement CRM pour la session.

Détails de l'adresse e-mail

  • Envoyé par no-reply@ccaiplatform.com

  • Contient :

    • Subject line

    • Corps avec les métadonnées de session dans la syntaxe JSON

    • Pièce jointe au format TXT avec la transcription du chat, le cas échéant

  • CCAI Platform attendra 15 minutes après la fin de la session, puis enverra l'e-mail.

  • Les e-mails ne sont envoyés que pour les sessions terminées avec succès. Il n'est pas envoyé pour les sessions ayant échoué ou abandonnées.

Configuration globale

  1. Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.

  2. Accédez à Paramètres > Paramètres du développeur.

  3. Dans la section "CRM", assurez-vous que l'option CRM personnalisé est sélectionnée.

  4. Activez l'option Envoyer le résultat de la session par e-mail.

  5. Saisissez l'adresse e-mail à laquelle vous souhaitez que l'e-mail soit envoyé.

  6. Cliquez sur Enregistrer les modifications.

Configuration par file d'attente

  1. Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.

  2. Accédez à Paramètres > File d'attente, puis sélectionnez une sous-file d'attente.

  3. Activez l'option Envoyer le résultat de la session par e-mail.

  4. Saisissez l'adresse e-mail à laquelle vous souhaitez que l'e-mail soit envoyé.

    Affichage de la configuration de l'e-mail

  5. Cliquez sur Enregistrer le paramètre CRM personnalisé.

Héritage et remplacement des paramètres

Paramètres Comportement
Global = NON activé
File d'attente = NON activée
Ne pas envoyer pour toutes les files d'attente.
Global = désactivé
File d'attente = activé
Le paramètre de file d'attente (c'est-à-dire l'état activé/désactivé) remplace le paramètre global.
L'e-mail est envoyé depuis une file d'attente donnée vers une adresse e-mail définie dans le paramètre de file d'attente.
Global = Activé
File d'attente = NON activé
Le paramètre de la file d'attente (adresse e-mail, état activé/désactivé) hérite du paramètre global.
L'e-mail est envoyé depuis une file d'attente donnée vers une adresse e-mail définie dans le paramètre global.
Global = Activé
File d'attente = Activé
Le paramètre de file d'attente (adresse e-mail) remplace le paramètre global.
L'e-mail est envoyé d'une file d'attente donnée à une adresse e-mail définie dans le paramètre de file d'attente.
Si l'adresse e-mail est vide, l'e-mail n'est pas envoyé.

Expérience avec l'agent

Recherche d'enregistrements CRM

  1. Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'agent est attribué.

  2. Ouvrez l'adaptateur pour les appels ou les chats.

  3. Utilisez le bouton Ouvrir dans une nouvelle fenêtre de navigateur pour lancer la recherche.

  4. Utilisez le bouton Copier le lien pour copier l'URL de recherche dans le presse-papiers.

Affichage de l'agent

Stockage externe pour les solutions CRM personnalisées

Le stockage externe pour les solutions personnalisées permet d'utiliser un service de stockage externe pour stocker et récupérer les métadonnées de session, les enregistrements d'appels, les transcriptions de chat et les fichiers multimédias importés par les clients de la plate-forme CCAI. Les fichiers sont stockés en dehors d'un CRM.

Pour configurer le stockage externe, vous devez disposer des éléments suivants :

  • Un compte CCAI Platform valide avec les rôles d'administrateur et d'agent attribués pour la configuration et les tests

  • Un service de stockage externe

Structure des dossiers

La structure de dossiers suivante sera organisée dans votre espace de stockage externe dans Chemin du dossier :

  • ujet-chat-transcripts

  • ujet-media

  • ujet-metadata

  • ujet-voice-recordings

  • ujet-voicemails

Formats de fichiers et conventions de nommage

Les types de fichiers suivants peuvent être transférés vers le service de stockage externe. Les fichiers sont chiffrés pendant le transit à l'aide du protocole HTTPS :

Fichier Nom
Enregistrements d'appels - call-{id}.mp3
- call-{id}.wav
Fichiers multimédias - call-{id}-photo-{photo-id}.jpg
- call-{id}-video-{video-id}.mp4
- chat-{id}-photo-{photo-id}.jpg
- chat-{id}-video-{video-id}.mp4
Transcriptions de chats - chat-{id}.txt
Métadonnées de session - call-{id}.json
- chat-{id}.json

Expérience des agents et des superviseurs

Pendant l'appel ou la session de chat, les photos et vidéos importées par le client à l'aide d'actions intelligentes s'affichent dans l'adaptateur de l'agent.

Si vous utilisez l'interaction CRM avec une URL personnalisée combinée à la méthode de mise à jour par e-mail du fichier de métadonnées de session, les agents et les superviseurs peuvent accéder aux informations de session à l'aide de votre serveur externe.

Configurer le service de stockage externe

Pour configurer votre stockage externe, procédez comme suit :

  1. Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.

  2. Accédez à Paramètres > Paramètres du développeur.

  3. Sur la page "Paramètres pour les développeurs", accédez à la section Stockage externe.

  4. Activez le stockage des informations en dehors des serveurs CRM en activant le bouton, puis sélectionnez les types de fichiers à stocker.

  5. Dans la section "Configuration du serveur", sélectionnez votre type de stockage et suivez les étapes de configuration : Serveur SFTP, bucketGoogle Cloud .

Serveur SFTP

  1. Saisissez l'hôte SFTP (URL ou adresse IP).

  2. Saisissez le numéro de port.

  3. Saisissez l'ID utilisateur de connexion SFTP.

  4. Si le serveur SFTP nécessite un mot de passe pour l'authentification, saisissez-le dans le champ Mot de passe.

  5. Si le serveur SFTP nécessite une clé privée pour l'authentification, cochez la case Clé privée SSH.

  6. Saisissez (copiez-collez) la clé privée SSH.

  7. Saisissez la phrase secrète de la clé privée. Si les informations de session doivent être stockées dans un dossier spécifique sur le serveur SFTP, cochez la case Chemin du dossier et saisissez le chemin du dossier SFTP.

  8. Cliquez sur Enregistrer les modifications.

Cloud Storage

  1. Saisissez le Google Cloud nom du bucket de destination.

  2. Saisissez l'ID client Google Cloud .

  3. Saisissez le code secret du client Google Cloud .

  4. Si les informations de session doivent être stockées dans un dossier spécifique du bucket Google Cloud , cochez la case Chemin du dossier et saisissez le Google Cloud chemin du dossier.

  5. Cliquez sur Associer et enregistrer.

Tester la configuration du stockage externe

Pour les CRM avec intégration standard existante :

  1. Connectez-vous à votre CRM.

  2. Connectez-vous à CCAI Platform dans le CRM à l'aide des identifiants CCAI Platform avec un rôle d'agent attribué.

  3. Passez un appel ou démarrez une discussion. L'enregistrement CRM associé à la session s'affiche.

  4. Une fois la session terminée, le fichier de transcription devrait être importé en quelques secondes.

  5. Accédez directement au dossier de stockage du serveur externe et vérifiez que le fichier est disponible.

Envoi des fichiers de session au CRM

Lorsque le stockage externe est activé, les paramètres de développement "Stockage CRM" et "URL de stockage externe" permettent d'envoyer des fichiers de session et de décider de la source à utiliser pour afficher les fichiers dans l'adaptateur d'agent.

Pour afficher ces paramètres, l'option "Stockage externe" doit être activée dans Paramètres > Paramètres du développeur > Stockage externe. Activez l'option Activer le stockage des informations en dehors des serveurs CRM.

Stockage CRM

  1. Accédez à Settings > Developer Settings > External Storage > CRM Storage (Paramètres > Paramètres du développeur > Stockage externe > Stockage CRM).

  2. Cochez la case Envoyer également les fichiers de session au CRM pour envoyer les fichiers de session, tels que les enregistrements d'appels ou les transcriptions de chat, à votre CRM et au stockage externe configuré.

  3. Cliquez sur Enregistrer les modifications.

Si la case est cochée, les enregistrements seront stockés à la fois dans le CRM et dans l'espace de stockage externe.

URL de stockage externe

L'URL de stockage externe est utilisée à deux endroits :

  • L'adaptateur d'agent.

  • Rapports : affiche l'URL du média dans le rapport ainsi que dans les menus tels que "Paramètres", "Appels" et "Terminé".

  1. Accédez à Settings > Developer Settings > External Storage > External Storage URLs (Paramètres > Paramètres pour les développeurs > Stockage externe > URL de stockage externe).

  2. Sélectionnez les URL du CRM ou les URL du stockage externe sources pour afficher les fichiers dans l'adaptateur de l'agent.

  3. Cliquez sur Enregistrer les modifications.

Stockage CRM

  • Si la case liée au stockage dans le CRM n'est pas cochée, les enregistrements ne seront stockés que dans le stockage externe, et un lien vers le CRM sera utilisé.

  • Si la case est cochée, les enregistrements seront stockés à la fois dans le CRM et dans l'espace de stockage externe.

URL de stockage externe

L'URL est utilisée à deux endroits :

  • La première consiste à afficher le contenu multimédia dans l'adaptateur CCAI Platform. Le stockage externe ou le CRM.

  • L'autre est dans le rapport. Nous affichons l'URL du média dans les rapports ainsi que dans les menus tels que "Paramètres", "Appels" et "Terminé".

Afficher un CRM personnalisé dans le portail CCAI Platform

Lorsque vous utilisez l'intégration CRM personnalisée avec votre propre CRM personnalisé, vous pouvez charger votre CRM sur une page dédiée du portail de la plate-forme CCAI. Une fois l'onglet CRM activé dans le portail de la plate-forme CCAI, il charge et affiche votre page CRM personnalisée. Vous pouvez configurer cette option dans Paramètres pour les développeurs > CRM.

Cette fonctionnalité permet aux agents de gérer des sessions d'assistance en direct à l'aide des adaptateurs d'appel et de chat de la plate-forme CCAI, tout en travaillant dans votre CRM personnalisé. Cela inclut l'examen des détails du compte et des enregistrements qui s'ouvrent automatiquement, ainsi que des fichiers et des données spécifiques à la session transmis par votre application mobile ou par les clients, le tout à l'aide du portail CCAI Platform.

Configurer une page CRM personnalisée

Pour configurer une page CRM personnalisée, procédez comme suit :

  1. Sur le portail de la plate-forme CCAI, cliquez sur Settings> Developer Settings (Paramètres > Paramètres du développeur). Si le menu Paramètres ne s'affiche pas, cliquez sur Menu.

  2. Dans le volet CRM, cliquez sur CRM personnalisé.

  3. Activez l'option Afficher le CRM sur le portail CCAI Platform.

  4. Sous URL à afficher, saisissez l'URL de votre page CRM personnalisée, puis cliquez sur Enregistrer.

Ouvrir l'écran contextuel d'URL personnalisée

Utilisez Ouvrir l'URL personnalisée pour afficher une fenêtre pop-up d'URL personnalisée lorsqu'un contact est introuvable dans le système. Créez un enregistrement CRM avec un ID de compte temporaire, puis déclenchez un lien personnalisé avec des paramètres basés sur la configuration au niveau de la file d'attente.

Activer l'affichage contextuel par file d'attente

  1. Accédez à Paramètres > File d'attente > IVR, puis cliquez sur une file d'attente pour la modifier.

  2. Accédez à Ouvrir une URL personnalisée dans le panneau.

  3. Saisissez une URL pour afficher un pop-up.

Incluez les paramètres de variable {ACCOUNT_ID} et {PHONE_NUMBER} dans l'URL.

Un exemple est fourni.

  1. Cliquez sur Enregistrer.

Intégration d'une API générique de CRM personnalisé

La méthode d'intégration d'API générique permet d'utiliser l'API de votre CRM pour établir une connexion bidirectionnelle avec CCAI Platform. Cette méthode fluide est similaire à l'expérience d'intégration de CRM prête à l'emploi.

L'agent n'a pas besoin d'effectuer d'action pour créer un enregistrement CRM pour les sessions d'appel ou de chat. Selon la configuration de l'API, elle peut permettre de rechercher et de mettre à jour des enregistrements de manière fluide.

Terminologie

Durée de validité

Description

Compte

Il est utilisé pour faire référence à l'entité Compte/Contact/Client/Prospect dans le CRM. Votre CRM peut utiliser un autre nom pour cette entité.

Les comptes contiennent des enregistrements.

Enregistrer

Il est utilisé pour désigner l'entité Demande/Ticket/Conversation/Incident dans le CRM. Votre CRM peut utiliser un autre nom pour cette entité.

Les enregistrements appartiennent à des comptes.

Commentaire

Il permet de faire référence à l'entité "Commentaire/Note" dans le CRM. Votre CRM peut utiliser un autre nom pour cette entité.

Les commentaires appartiennent aux enregistrements.

Paramètres de l'API

Cette section décrit les paramètres spécifiques à l'API CRM personnalisée.

Méthode d'authentification

CCAI Platform accepte trois méthodes d'authentification pour votre CRM :

  • Authentification de base : configurez les identifiants d'authentification, y compris le nom d'utilisateur et le mot de passe.

  • En-tête personnalisé : configurez les paires clé-valeur d'en-tête personnalisé : Clé de champ et Valeur de champ. Saisissez autant de paires que nécessaire.

  • OAuth : CCAI Platform est compatible avec le protocole d'autorisation standard OAuth 2.0. Spécifiez les informations OAuth si vous devez activer l'option Inclure l'URL de redirection dans l'URL d'autorisation et l'URL du jeton.

    Configurez les valeurs suivantes :

    • URL d'autorisation (obligatoire)

    • URL du jeton (obligatoire)

    • ID client (obligatoire)

    • Code secret du client (obligatoire)

    • Champ d'application

    • État

    • Type d'accès

Format du numéro de téléphone

Sélectionnez le format de numéro de téléphone à utiliser dans les requêtes CRM :

  • Automatique : Créer : +1 222 333 4444, Rechercher : *222*333*4444

  • E.164 : +12223334444

  • Numéro local aux États-Unis : 2223334444

  • Format standard local aux États-Unis : (111) 222-3333

  • International : +1 222 333 4444

Délai avant expiration de la requête API

Configurez le délai avant expiration de la requête API entre 1 et 10 secondes à l'aide du menu déroulant. Ce délai avant expiration sera appliqué à tous les points de terminaison que vous configurez.

URL de recherche CRM

Spécifiez les URL de recherche qui seront utilisées pour rediriger un agent vers le compte et l'enregistrement actuels.

Saisissez les URL de recherche telles qu'elles apparaissent dans votre CRM lorsque vous avez ouvert une page de compte ou d'enregistrement dans votre navigateur.

Vous pouvez également utiliser des URL de recherche CRM avec le SDK Web et les SDK mobiles. Vous pouvez configurer les SDK pour qu'ils recherchent les informations sur le compte et l'enregistrement CRM à afficher dans l'adaptateur de l'agent. Pour obtenir la liste complète des URL de recherche CRM, consultez Paramètres d'URL de requête.

URL de recherche de compte

Utilisez la variable {ACCOUNT_ID} pour insérer l'ID de compte réel.

Exemple :

https://www.example.com/contact/{ACCOUNT_ID}

URL de recherche d'enregistrement

Utilisez la variable {RECORD_ID} pour insérer l'ID d'enregistrement réel.

Exemple :

https://www.example.com/record/{RECORD_ID}

points de terminaison de l'API

Il s'agit de la configuration la plus importante pour l'API Generic.

  1. Pour que la recherche de compte soit disponible pour vos agents, vous devez configurer les points de terminaison Rechercher un compte et Créer un compte.

  2. Vous pouvez également configurer les points de terminaison Rechercher un enregistrement et Créer un enregistrement pour permettre à vos agents de rechercher ou de créer des enregistrements. Pour cela, vous devez avoir configuré votre compte à l'étape précédente.

  3. Enfin, si vous saisissez les points de terminaison Mettre à jour un enregistrement, Importer un fichier et Commenter, les mises à jour des enregistrements seront activées. Pour cela, vous devez avoir configuré l'enregistrement à l'étape précédente.

Configuration du point de terminaison

Configurez les paramètres suivants :

  1. URL de la requête : URL du point de terminaison de l'API.

  2. Choisissez la méthode de requête parmi POST, GET, PUT ou PATCH.

  3. Spécifiez les paramètres de la requête. Vous pouvez utiliser les variables définies par la plate-forme CCAI pour transmettre les informations requises (voir le tableau ci-dessous). Vous pouvez également saisir du texte brut ou des chiffres comme valeurs de paramètres. Vous pouvez ajouter autant de paramètres que nécessaire.

  4. Si le point de terminaison est POST/PUT/PATCH, la plate-forme CCAI offre des contrôles plus précis sur la façon dont la requête est créée. Sélectionnez Format de données de la requête dans Propriété ou Conteneur. Il spécifie le format du fichier JSON de la requête.

    • Property. Cela indique que l'objet de requête est un mappage de propriétés de base lorsque CCAI Platform crée le corps de la requête à partir de paramètres.

    • Cela indique que les données de l'objet de requête à envoyer doivent être imbriquées dans une structure. Choisissez un type de conteneur entre Mappage ou Tableau. Saisissez un nom de conteneur. Il est utilisé comme nom d'objet parent lors de la création du corps de la requête à partir des paramètres.

      • Exemple : Map : { container_name : { ...parameters } }

      • Exemple : Array: {container_name : [ { ...parameters } ] }

  5. Saisissez l'emplacement des données de réponse. Il permet de localiser l'objet de réponse cible dans la réponse JSON.

Paramètres d'URL de la requête

Paramètre Variable Commentaire
ID de l'agent {AGENT_ID} ID d'agent interne.
ID personnalisé de l'agent {AGENT_CUSTOM_ID} Champ facultatif du profil de l'utilisateur.
Adresse e-mail de l'agent {AGENT_EMAIL} L'adresse e-mail de l'agent qui répond, le cas échéant.
Nom de l'utilisateur final {NAME}
Prénom de l'utilisateur final {FIRST_NAME} Prise le Name
Nom de l'utilisateur final {LAST_NAME} Extrait de Name, la valeur par défaut est "--" si elle est manquante.
ID externe {UJET_ID} ID utilisateur final CCAI Platform
E-mail {EMAIL}
Type d'appel/Type de session {SESSION_TYPE}
Numéro de téléphone de l'utilisateur final {PHONE_NUMBER} Formaté à l'aide du choix de paramètre
ID de l'appel {Call_ID} ID d'appel CCAI Platform.
ID de la discussion {Chat_ID} ID de chat CCAI Platform.
Langue {LANG}
UID personnalisé {CUSTOM_USER_ID} Pour les mobiles : il s'agit de la partie gauche de l'e-mail. Par exemple, test.user3 de test.user3@test.co
ID de compte {ACCOUNT_ID} Trouvé en appelant le point de terminaison "Rechercher/Créer un contact".
ID d'enregistrement {RECORD_ID} Trouvé en appelant le point de terminaison "Rechercher/Créer un enregistrement".
ID de session {SESSION_ID} ID de session CCAI Platform
Chemin d'accès au menu {MENU_PATH}
Numéro de téléphone sortant {OUTBOUND_PHONE_NUMBER} Formaté à l'aide du choix de paramètre
Nom de la file d'attente {QUEUE_NAME}
ID de la file d'attente {QUEUE_ID} ID de file d'attente interne.
Nom du SDK {SDK_NAME} Nom d'utilisateur final, tel qu'indiqué dans le SDK Web ou le SDK mobile.
Adresse e-mail du SDK {SDK_EMAIL} Adresse e-mail de l'utilisateur final, telle qu'indiquée dans le SDK Web ou le SDK Mobile.
SDK Phone {SDK_PHONE} Numéro de téléphone de l'utilisateur final, tel qu'indiqué dans le SDK Web ou le SDK mobile.
Identifiant du SDK {SDK_IDENTIFIER} Identifie un utilisateur final ou un compte du SDK Web ou mobile. N'incluez pas d'informations permettant d'identifier personnellement l'utilisateur dans cette propriété. Lorsque vous créez un compte, cet identifiant est requis dans la requête.
ID de session SmartAction {SMART_ACTION_SESSION_ID}
SmartAction: verification (Bientôt disponible)
SmartAction : saisie de texte (Bientôt disponible)
Note {RATING} Disponible uniquement si un utilisateur l'a laissé
Message de commentaires {FEEDBACK} Disponible uniquement si un utilisateur l'a laissé
Durée des appels {CALL_DURATION} En mm:ss
Temps d'attente {HOLD_TIME} Au format mm:ss
Temps d'attente {WAIT_TIME} En mm:ss
Durée du travail après appel (Bientôt disponible)
Type d'appareil {DEVICE_TYPE}
Déconnecté par {DISCONNECTED_BY}
Canal {CHANNEL}
Objet de l'enregistrement {TICKET_SUBJECT} Utilisé comme titre de l'enregistrement
Description de l'enregistrement {TICKET_DESCRIPTION}
Description de l'enregistrement au format HTML {TICKET_DESCRIPTION_HTML} Identique à la description, mais au format HTML
Corps du commentaire {COMMENT_BODY} Uniquement disponible dans la situation d'ajout de commentaire (enregistrer la note, fin de l'appel/du chat, appel/chat démarré)
Données de fichiers {FILE_DATA} Disponible uniquement dans le point de terminaison d'importation de fichier, mais contient les données ou le format base64 pour le formulaire multipart.

Fonctions de paramètre d'URL de requête

Des fonctions sont fournies pour vous aider à utiliser les variables dynamiques de CCAI Platform. Ces fonctions ne sont disponibles que dans la section Paramètre de requête des paramètres du point de terminaison.

La valeur résultante créée à partir d'une fonction sera une chaîne. Si la fonction ne renvoie aucune valeur, le paramètre est supprimé de la liste des paramètres de la requête avant l'exécution.

Fonction Syntaxe de la fonction Description
Valeur par défaut =DEFAULT_VALUE(val1, val2) La valeur utilisera val1, sauf si elle est nulle ou vide, auquel cas elle reviendra à val2 par défaut.
Concaténation Or =CONCAT_OR(val1, val2, val3) Concaténation de plusieurs valeurs avec or. Exemple : "val1 ou val2 ou val3"
Concaténation And =CONCAT_AND(val1, val2, val3) Concaténation de plusieurs valeurs avec and. Exemple : 'val1 and val2 and val3'

Exemples

Voici quelques exemples d'utilisation de la fonction de paramètre d'URL de requête.

Par défaut

L'exemple suivant utilise DEFAULT_VALUE dans Create a Record Endpoint. La clé et la valeur de la configuration de l'agent utilisent la fonction par défaut pour disposer d'une solution de secours si l'adresse e-mail de l'agent est vide. L'adresse e-mail de l'agent peut être vide lors de la création de l'enregistrement pour plusieurs raisons : un client peut avoir mis fin à l'appel IVR avant qu'un agent attribué ne réponde à l'appel entrant, ou, dans le cas des chats, un enregistrement est créé avant qu'un agent ne réponde. De cette façon, les paramètres requis peuvent être définis par défaut sur des valeurs sûres jusqu'à des mises à jour ultérieures ou définis en cas d'appels abandonnés.

Modifier le champ

Concaténation

L'exemple suivant utilise CONCAT_OR dans le point de terminaison Find an Account by Query. Cet exemple est spécifique à Zoho CRM, mais montre comment utiliser CONCAT_OR. CONCAT_AND suit les mêmes règles, mais connecte les valeurs avec and au lieu de or. Reportez-vous aux cas suivants pour connaître les valeurs présentes dans le point de terminaison au moment de l'exécution et la valeur résultante transmise en tant que paramètre de requête.

Clés présentes Valeur obtenue
ACCOUNT_ID (Id:equals:<uuid>)
ACCOUNT_ID, EMAIL (Id:equals:<uuid>) ou (Email:equals:kim@example)
PHONE_NUMBER, EMAIL (Phone:equals:+12223334444) ou (Email:equals:kim@example)

Compte d'API

Les points de terminaison de compte de l'API permettent l'intégration avec les comptes du CRM.

Les appels aux points de terminaison qui renvoient une erreur 400 sont relancés. Les appels qui renvoient d'autres erreurs ne sont pas relancés. Les nouvelles tentatives se poursuivent pendant une semaine, en diminuant de manière exponentielle. Pour en savoir plus sur les flux d'API, consultez API générique de CRM personnalisé : flux.

Point de terminaison "Rechercher un compte par requête" (anciennement "Rechercher un point de terminaison de compte")

Ce point de terminaison permet de trouver un compte par numéro de téléphone, adresse e-mail ou ID CRM interne. Il s'agit du point de terminaison par défaut utilisé pour trouver un compte.

Exemple de réponse :

{
  "id": 123,
  "name": "Kim",
  "phone": "11234567890",
  "email": "Kim@agents.co"
}

Point de terminaison "Rechercher un compte par ID"

Ce point de terminaison permet de trouver un compte par ID. En général, cet ID fait partie de l'URL. La validation de l'URL tient également compte du fait que si l'URL n'est pas formée avec l'ID, ce point de terminaison ne sera pas utilisé. Cela respectera les normes REST. Si une erreur 404 est renvoyée en cas d'échec de la recherche, la recherche par requête sera effectuée ensuite.

Exemple de réponse :

{
  "id": 123,
  "name": "Kim",
  "phone": "11234567890",
  "email": "Kim@agents.co"
}

Créer un point de terminaison de compte

Ce point de terminaison permet de créer un compte si nous n'en avons pas trouvé. La plupart des CRM exigent que les enregistrements soient associés à des comptes. Pour créer un flux unifié, nous appliquons cette exigence à tous les CRM.

Enregistrement d'API

Les points de terminaison d'enregistrement de l'API permettent d'intégrer des enregistrements ou des demandes dans votre CRM.

Rechercher un enregistrement par requête (anciennement "Rechercher un point de terminaison d'enregistrement")

Ce point de terminaison permet de trouver un enregistrement en fonction d'un critère. En général, cela permet de trouver les enregistrements associés à un compte. Si CCAI Platform est configuré pour réutiliser les enregistrements existants, l'enregistrement trouvé sera utilisé. Il s'agit du point de terminaison par défaut utilisé pour rechercher un enregistrement.

Exemple de réponse :

{
  "id": 456,
  "subject": "Record title",
  "status": "open", // enumerated status open/closed, or 1,2,3
  "contactId": 123, // contact attached to ticket
  "phone": "11234567890", // contact phone
}

Créer un point de terminaison d'enregistrement

Ce point de terminaison permet de créer un enregistrement. Un enregistrement est créé s'il n'est pas trouvé à partir de la requête Rechercher un enregistrement ou si CCAI Platform est configuré pour ne pas réutiliser les enregistrements existants.

Exemple de requête :

{
  "id": 123,
  "subject": "Record title", 
  "description": "A longer description of the record, can be formatted in html",
  "phone": "11234567890", // can be saved in multiple formats
  "contactId": 123,
  "sourceType": "PHONE", // PHONE/CHAT
  "menu": "queue1",
  "direction": "outgoing",
  "rating": 5, // 1-5 scale
  "feedback": "the agent was great!" // description of rating
}

Mettre à jour un point de terminaison d'enregistrement

Ce point de terminaison permet de mettre à jour un enregistrement. Il met à jour le titre et la description de l'enregistrement. Ce point de terminaison permet également de mettre à jour l'enregistrement en fonction des événements de la plate-forme CCAI, tels que l'enregistrement de la note de satisfaction client, les événements de fin d'appel ou de chat, les files d'attente sélectionnées, la vérification des utilisateurs, etc.

Importer un point de terminaison de fichier

Ce point de terminaison permet d'importer une pièce jointe.

Choisissez le Type de votre point de terminaison d'importation.

  • Formulaire encodé en base64

  • Formulaire multipart

Sélectionner les fichiers à joindre

  • Enregistrements d'appels

  • Transcriptions de chat

  • Messages vocaux

  • Google Photos

  • Vidéos

  • Fichier de métadonnées de session

Choisissez Type de pièce jointe entre ID et URL de la pièce jointe. Il spécifie le format du fichier JSON de réponse.

  • ID

  • ID de la pièce jointe : Saisissez l'emplacement d'un paramètre dans la réponse JSON pour l'ID de la pièce jointe. Il sera disponible pour l'URL du compilateur de pièces jointes en tant que {ATTACHMENT_ID}.

  • URL de l'outil de création de pièces jointes. Saisissez l'URL pour télécharger la pièce jointe. RECORD_ID et ATTACHMENT_ID sont des variables disponibles.

    Exemple : https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}

  • URL de la pièce jointe

    Saisissez l'emplacement d'un paramètre dans la réponse JSON pour l'URL de téléchargement du fichier.

Cochez la case Ajouter un commentaire à l'enregistrement CRM si vous souhaitez que CCAI Platform laisse un commentaire sur un enregistrement lorsqu'un fichier a été importé. Le paramètre "Format de texte" du point de terminaison "Commentaire" sera respecté pour ces commentaires.

L'exemple suivant est un exemple de formulaire multipart utilisant POST/PUT/PATCH :

{
  "file": <file data>
  "id": 123, // optional, this can also just be part of the URL;
             // for example https://example-customer.com/upload/record/{RECORD_ID}
}

Exemple de réponse :

Exemple A : Une URL de téléchargement existe

{
  "id": 123,
  "url": "https://some-hosted-url.com"
}

Exemple B

Dans ce cas, il n'existe pas d'URL de téléchargement, mais il existe un point de terminaison de téléchargement de pièce jointe qui utilise cet ID. Par exemple, https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}.

{
  "id": 123
}
Point de terminaison de commentaire

Ce point de terminaison permet d'ajouter un commentaire à un enregistrement. Si le point de terminaison est configuré, la plate-forme CCAI Platform ajoutera des commentaires aux enregistrements avec les événements :

  • début de l'appel ou du chat

  • fin de l'appel ou du chat

  • Note et commentaire CSAT

  • package de données personnalisé

  • transférer des commentaires

  • code et notes de disposition

  • questions et réponses de l'enquête

Choisissez Format de texte pour les commentaires. Si la case Convertir le texte au format HTML est cochée, le texte sera au format HTML ou au format texte brut.

Exemple de requête, POST/PUT/PATCH :

{
  "comment": "Some text",
 // string can also be formatted on CCAI Platform side as HTML).
  "id": 123,
 // optional, this can also just be part of the URL;
 // for example https://example-customer.com/comment/record/{RECORD_ID}
}

API générique de CRM personnalisé : flux

L'intégration du CRM personnalisé (API générique) de CCAI Platform fonctionne comme un ensemble de flux. Au début d'un appel, d'un chat ou d'un message vocal, la plate-forme exécute les étapes de configuration du compte et de l'enregistrement, qui recherchent ou créent un compte et un enregistrement (comme un ticket ou une demande) dans votre CRM. Pendant et après l'interaction, il exécute également des actions telles que des commentaires, des mises à jour d'enregistrements et des importations de fichiers. Les organigrammes suivants indiquent quand chaque étape s'exécute et ce qui doit être configuré pour qu'elle s'exécute.

Quand les flux s'exécutent

Ces flux s'exécutent à différents moments d'une interaction. Les étapes de comptabilisation et d'enregistrement s'exécutent pendant l'interaction. Les enregistrements, les transcriptions et les messages vocaux sont importés une fois l'interaction terminée, ainsi que les commentaires, les enregistrements de mise à jour et les autres actions post-session. Les pièces jointes (photos, vidéos, documents et fichiers audio) sont importées au fur et à mesure qu'elles sont partagées pendant l'interaction. Avant l'exécution de l'un de ces flux :

  • Le déclencheur de l'action s'est produit (par exemple, un fichier est disponible pour l'importation, ou l'appel, le chat ou le message vocal est terminé).
  • L'action correspondante est activée dans les paramètres de votre CRM personnalisé. Par exemple, le type de fichier est activé pour l'importation, ou le point de terminaison de l'API Comment ou de l'API Update est configuré.
  • Pour tout ce qui écrit dans le CRM (importation dans un enregistrement, publication d'un commentaire ou mise à jour d'un enregistrement), les points de terminaison requis sont configurés et un enregistrement existe pour la session. Si l'enregistrement n'a pas encore été créé, la plate-forme suspend l'action et l'exécute automatiquement une fois que l'enregistrement existe.

L'importation d'un fichier dans un espace de stockage externe ne nécessite pas d'enregistrement. L'exigence d'enregistrement s'applique aux écritures CRM.

Dans certaines configurations, le compte fait office d'enregistrement de session : lorsque la création d'un enregistrement est ignorée et que les données de session sont transmises au compte CRM, les points de terminaison de commentaire, d'importation et de mise à jour au niveau du compte sont utilisés à la place des points de terminaison au niveau de l'enregistrement. Dans les diagrammes, "enregistrement" inclut un compte agissant en tant qu'enregistrement de session lorsque cette configuration est activée.

Pour en savoir plus sur la traçabilité, l'enregistrement et l'ordre des post-sessions, le délai avant une nouvelle tentative et le comportement en cas d'erreur, consultez Gestion des exceptions, nouvelles tentatives et ordre des appels dans un CRM personnalisé (API générique).

Organigrammes

Dans ces organigrammes, trois résultats apparaissent à plusieurs reprises :

Résultat Signification
Ignoré L'action est désactivée par configuration, donc rien n'est envoyé.
En attente L'action est configurée, mais elle attend que l'enregistrement existe, puis s'exécute automatiquement.
La configuration n'est pas complète Un point de terminaison obligatoire est manquant. L'action ne peut donc pas être exécutée.

Flux de base

Une interaction exécute l'étape de compte, puis l'étape d'enregistrement, puis toutes les actions post-session. Chaque étape ne s'exécute que lorsque ses propres paramètres et points de terminaison sont configurés. Les importations vers un espace de stockage externe s'exécutent sans enregistrement. Les autres actions post-session écrivent dans le CRM et attendent qu'un enregistrement existe. Cette présentation montre le parcours après la session. Les fichiers partagés pendant l'interaction suivent le flux d'importation de fichiers dès qu'ils sont disponibles.

Organigramme de base

Trouver ou créer un compte

La plate-forme recherche le compte à l'aide d'un ID, d'un numéro de téléphone, d'une adresse e-mail ou d'une méthode de mise en correspondance configurée. Si aucun compte n'est trouvé et que la création de compte est activée, il en crée un, ou un compte anonyme s'il n'y a pas d'informations d'identification. Un compte trouvé ou créé est ensuite associé à la session.

Parcours de recherche ou de création de compte

Rechercher ou créer un enregistrement

Lorsque le mode d'enregistrement est activé, la plate-forme réutilise un enregistrement existant pour la session s'il est toujours utilisable. Sinon, elle crée un enregistrement. L'ID d'enregistrement peut être fourni avec la requête ou provenir d'un enregistrement déjà associé à l'interaction. Lorsqu'un ID d'enregistrement est fourni avec la requête, la plate-forme ajoute également un commentaire indiquant si elle a réutilisé cet enregistrement ou si elle en a créé un autre.

Flux de recherche ou de création d'enregistrement

Mettre à jour l'enregistrement

Une fois qu'un enregistrement existe, la plate-forme envoie une requête de mise à jour créée à partir du modèle que vous avez configuré. Si le point de terminaison de mise à jour est défini sur une valeur d'espace réservé, la mise à jour est ignorée.

Mettre à jour le flux d'enregistrement

Actions après la session

Après une session, plusieurs actions indépendantes peuvent être exécutées, chacune déclenchée par son propre événement : un appel, un chat ou un e-mail terminé, une note envoyée, une réponse à une enquête, ou l'enregistrement, la transcription ou le message vocal d'après-session devenant disponible. Les importations de fichiers suivent le flux d'importation de fichiers. Les actions de commentaire et de mise à jour écrivent dans le CRM et attendent qu'un enregistrement existe.

Flux d'actions après la session

Commentaire

Un commentaire peut être publié par une action de fin, de notation, d'enquête ou d'importation de fichier. Il nécessite un point de terminaison d'API Comment et un enregistrement existant, et attend que l'enregistrement existe. Le commentaire est publié au format HTML ou texte brut, selon vos paramètres de commentaires.

Flux de commentaires

Processus d'importation de fichiers

Le stockage externe est activé par type de fichier. Lorsqu'elle est activée pour un type de fichier, le fichier est envoyé au stockage externe. Sinon, il est envoyé au CRM. Un paramètre distinct permet également d'importer le fichier dans le CRM après l'avoir envoyé au stockage externe. Les écritures dans le CRM (une pièce jointe ou un commentaire) ne sont exécutées qu'une fois qu'un enregistrement existe.

Flux d'importation de fichiers

Adaptateurs pour les agents

Un CRM personnalisé offre une méthode générique pour intégrer des adaptateurs (widgets d'interface utilisateur) dans les systèmes CRM. Le système CRM doit être capable de gérer la façon dont les adaptateurs sont activés et déclenchés en son sein.

Pour intégrer des adaptateurs d'interface utilisateur, un logiciel ou une application CRM sont généralement nécessaires. Nous proposons déjà cette fonctionnalité pour plusieurs logiciels CRM tels que Salesforce, Kustomer, Zendesk et d'autres.

iFrame

Les adaptateurs d'agent peuvent être intégrés de manière fluide dans un CRM ou tout autre outil à l'aide d'une balise iFrame. Pour en savoir plus sur la balise iframe HTML, consultez Balise iframe HTML.

Toutefois, le CRM doit gérer la façon dont les adaptateurs sont présentés à l'utilisateur. Par exemple, il peut comporter des boutons d'interface utilisateur permettant d'afficher et de masquer les adaptateurs. De plus, les adaptateurs peuvent être conçus pour être déplaçables, ce qui permet à l'agent de les repositionner sur l'écran à sa convenance. Les exemples suivants illustrent le format d'URL.

Adaptateur d'appel : https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom

Adaptateur pour les chats : https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom

Modèle iFrame

Adaptateur d'appel : html <iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>

Adaptateur pour les chats : html <iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>

Tenez compte des points suivants lorsque vous intégrez les adaptateurs :

  • L'attribut allow est obligatoire. L'adaptateur d'appel utilise WebRTC et nécessite microphone. camera et geolocation sont nécessaires pour le partage d'écran et les fonctionnalités de détection de la position. Si les autorisations ne sont pas déléguées à l'iframe, le navigateur les bloque silencieusement et l'agent ne peut pas prendre d'appels.

  • Intégrez un adaptateur par iFrame. Chaque adaptateur conserve sa propre connexion en temps réel. Les adaptateurs d'appel et de chat sont donc deux iFrames distincts et publient des événements indépendamment.

  • L'adaptateur détecte qu'il est intégré, car sa fenêtre parente se trouve sur une autre origine. Diffusez la page hôte à partir de votre propre domaine plutôt que de celui du locataire CCAI Platform.

Paramètres d'URL

Les paramètres d'URL peuvent être utilisés pour fournir des informations supplémentaires au logiciel, telles que le type d'interaction (appel ou chat), la source de l'interaction (personnalisée) et d'autres détails pertinents.

Si le paramètre CRM du locataire n'est pas disponible dans les listes, le paramètre From (De) doit toujours être défini sur Custom (Personnalisé).

Type

  • Appel
  • Chat

De

  • Personnalisé (doit correspondre au paramètre CRM du locataire). Elle doit toujours être définie sur custom pour tout CRM ne figurant pas dans les listes. Si aucun CRM n'est configuré, vous pouvez ignorer ce paramètre.

Événements dans les adaptateurs pour les agents

Les adaptateurs d'agent publient des événements qui peuvent être intégrés au système CRM, qui traite ensuite les mises à jour du CRM. Pour ce faire, le CRM doit écouter les posts de la fenêtre parente et lire les données des posts. En fonction des données, il peut déclencher des actions telles que l'ouverture d'un onglet de ticket pour un ID de session spécifique.

Les adaptateurs pour les appels et pour les chats disposent d'événements spécifiques qui peuvent être utilisés pour améliorer les fonctionnalités du CRM.

Adaptateur d'appel

  • Nouvel appel
  • Le consommateur a rejoint la discussion
  • Masquage de l'appel démarré
  • Masquage de l'appel terminé
  • Mettre fin à l'appel

Adaptateur pour les chats

  • Nouveau chat
  • Discussion active
  • Message entrant dans le chat
  • Message sortant de chat
  • Formulaire envoyé
  • Formulaire rempli
  • Arrêter le chat
  • Discussion ignorée

Les deux adaptateurs

  • Connexion de l'agent
  • Session de partage d'écran démarrée
  • La télécommande de la session de partage d'écran a été modifiée
  • Session de partage d'écran de l'appareil complet modifiée
  • Session de partage d'écran terminée
  • Transfert
  • Partie ajoutée
  • L'agent se connecte à la session
  • Déconnexion de l'agent
  • Agent Assist ajouté
  • L'Assistant de tâches virtuel a rejoint la réunion
  • Assistant de tâches virtuel à gauche
  • Variables de session de l'Assistant de tâches virtuel reçues
  • Pop-up d'enregistrement CRM
  • Ouvrir la page tierce

Format des messages

Chaque événement est envoyé avec l'API window.postMessage() du navigateur depuis l'iFrame de l'adaptateur vers sa fenêtre parente directe (window.parent). La fenêtre parente le reçoit en tant que MessageEvent.

Le message présente les caractéristiques suivantes :

  • event.data est une chaîne JSON, pas un objet. Appelez toujours JSON.parse(event.data) avant de le lire. Étant donné que d'autres scripts de la page peuvent également utiliser postMessage() avec des charges utiles non JSON, encapsulez l'analyse dans un try/catch.

  • L'objet analysé comporte exactement deux clés de premier niveau :

    {
      "type": "<event type>",
      "data": { ... }
    }
    

    type est l'une des chaînes répertoriées dans Types d'événements. data contient les champs d'événement décrits dans Données pour les événements. Tous les champs spécifiques à un événement se trouvent dans data, jamais au niveau supérieur.

  • Les champs vides sont omis. Avant la publication, l'adaptateur supprime tout champ de data dont la valeur est null, undefined ou une chaîne vide. Traitez chaque champ comme potentiellement absent et ne vous fiez pas à la présence d'une clé avec une valeur null.

  • L'adaptateur publie avec une origine cible de *. Le message est donc envoyé à la page qui intègre l'iFrame. L'adaptateur ne limite pas les personnes pouvant recevoir les événements. Votre écouteur doit comparer event.origin à l'hôte de votre locataire (par exemple, https://tenant.loc.ccaiplatform.com) et ignorer les messages provenant de toute autre origine, afin qu'un autre iframe sur la même page ne puisse pas usurper les événements de l'adaptateur.

  • Les valeurs type sont sensibles à la casse et ne sont pas uniformément mises en forme. La plupart sont en Title_Case (New_Call, End_Chat). Quelques-unes sont en minuscules (call_redaction_started, call_redaction_ended, agent_assist_added) ou en camelCase (openThirdPartyPage). Comparez-les aux chaînes exactes de ce document.

  • Les événements ne sont publiés que lorsque l'adaptateur est intégré (sa fenêtre parente est une fenêtre différente). Si l'adaptateur est ouvert en tant que page de premier niveau, rien n'est publié.

L'exemple suivant montre un écouteur minimal qui applique ces règles :

// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'

window.addEventListener('message', (event) => {
  if (event.origin !== ADAPTER_ORIGIN) {
    return
  }

  let message
  try {
    message = JSON.parse(event.data)
  } catch (e) {
    // Not an agent adapter event; another script on the page posted it.
    return
  }

  const { type, data = {} } = message
  switch (type) {
    case 'New_Call':
      // data.call_id, data.agent_id, data.queue_id, ...
      break
    case 'New_Chat':
      // data.chat_id, data.agent_id, data.queue_id, ...
      break
    case 'CRM_Record_Pop':
      // data.recordUrl
      break
    default:
      // Ignore event types you don't handle; new types may be added over time.
      break
  }
}, false)

Messages envoyés à l'adaptateur d'agent

La communication est principalement unidirectionnelle (de l'adaptateur vers l'hôte), mais la page hôte peut envoyer un petit ensemble de commandes à l'adaptateur d'appel avec postMessage(). Ces messages sont des objets simples (et non des chaînes JSON) avec le schéma suivant :

iframe.contentWindow.postMessage({
  channel: '<channel name>',
  eventType: '<event type>'
}, ADAPTER_ORIGIN)

Les commandes suivantes sont compatibles avec le canal api:redaction. Ils permettent de mettre en pause et de reprendre l'enregistrement pour la suppression des données d'appel depuis la page hôte.

eventType Description
start_call_redaction Mettez en pause l'enregistrement de l'appel actif pour commencer la suppression.
stop_call_redaction Reprenez l'enregistrement de l'appel actif pour arrêter la suppression.

Veuillez noter les points suivants :

  • Les commandes ne sont exécutées que lorsque la suppression des appels est activée pour le locataire et qu'un appel est en cours. Sinon, l'adaptateur consigne que le message a été ignoré et ne fait rien.

  • Lorsque l'adaptateur exécute la commande, il renvoie l'événement call_redaction_started ou call_redaction_ended correspondant à l'hôte, ce qui vous permet de confirmer que l'état d'enregistrement a bien changé.

  • Transmettez toujours l'origine de votre locataire en tant que deuxième argument à postMessage() au lieu de *, afin que la commande ne puisse pas être envoyée à une autre page si l'iframe est parcourue.

  • L'ancien canal crm:authority avec les types d'événements redact_call:start et redact_call:stop est toujours accepté par l'adaptateur CRM personnalisé pour assurer la rétrocompatibilité, mais les nouvelles intégrations doivent utiliser api:redaction.

Pour en savoir plus, consultez Masquer des appels.

Données pour les événements

  • call_id : identifiant d'un appel vocal entrant avec réponse vocale interactive.

  • chat_id : identifiant d'un appel entrant de messagerie (chat Web ou mobile).

  • cobrowse_session_id : identifiant d'une session de partage d'écran. Une session de partage d'écran peut être lancée lors d'un appel ou d'une session de chat.

  • session_type : type de session, par exemple voix, chat ou messagerie.

  • va_data_parameters : toutes les variables configurées dans la file d'attente à envoyer à l'agent virtuel. Cela n'est requis que pour les événements impliquant l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à CCAI Platform dans la charge utile. Facultatif.

  • custom_sip_headers : permet aux en-têtes SIP personnalisés des appels SIP entrants d'apparaître dans le journal des événements POST. Il n'est requis que si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées de chat. Facultatif.

ID d'agent

  • agent_id : identifiant d'un agent.
  • from_agent_id : utilisé lors du routage d'appels ou de chats d'un agent à un autre, pour indiquer l'agent d'origine.
  • to_agent_id : utilisé lors du routage d'appels ou de chats d'un agent à un autre, pour indiquer l'agent de destination.
  • agent_custom_id : ID d'agent du profil utilisateur, s'il a été saisi dans le profil. Facultatif.
  • from_agent_custom_id : utilisé lors du routage d'appels ou de chats d'un agent à un autre, pour indiquer l'agent d'origine.
  • to_agent_custom_id : utilisé lors du routage des appels ou des discussions d'un agent à un autre, pour indiquer l'agent de destination.
  • agent_email : adresse e-mail de l'agent.
  • from_agent_email : utilisé lors du routage d'appels ou de chats d'un agent à un autre, pour indiquer l'agent d'origine.
  • to_agent_email : utilisé lors du routage d'appels ou de chats d'un agent à un autre, pour indiquer l'agent de destination.

ID d'agent virtuel

  • virtual_agent_id : ID attribué à un agent virtuel spécifique.

ID de file d'attente

  • queue_id : identifiant d'une file d'attente CCAI Platform. Il n'existe que lorsque l'appel provient d'une file d'attente.
  • from_queue_id : utilisé lors du routage des appels ou des discussions d'une file d'attente à une autre, pour indiquer la file d'attente d'origine.
  • to_queue_id : utilisé pour acheminer les appels ou les chats d'une file d'attente vers une autre, afin d'indiquer la file d'attente de destination.
  • queue_path : chemin d'accès à une file d'attente CCAI Platform. Il n'existe que lorsque l'appel provient d'une file d'attente.
  • from_queue_path : utilisé lors du routage des appels ou des discussions d'une file d'attente à une autre, pour indiquer la file d'attente d'origine.
  • to_queue_path : utilisé pour acheminer les appels ou les chats d'une file d'attente vers une autre, afin d'indiquer la file d'attente de destination.

Campaign ID

  • campaign_id : ID de campagne CCAI Platform. Ils ne sont inclus que si le type d'appel est un appel de campagne.
  • campaign_name : nom d'une campagne CCAI Platform. Ils ne sont inclus que si le type d'appel est un appel de campagne.

Message

  • message : événement indiquant qu'un nouveau message client a été reçu, ainsi que le contenu du message.

Types de sessions

  • session_type : type de session CCAI Platform.
  • cobrowse_session_remote_control : indique l'état d'une session de partage d'écran demandée pour le contrôle à distance. Valeurs : off, requested, rejected, on.
  • cobrowse_session_full_device : indique l'état d'une session de partage d'écran complet de l'appareil. Valeurs : off, requested, rejected, on.

Participants

  • type : type de participant - end_user ; agent ; (à partir de participants.type de la réponse /api/v1/calls ou /api/v1/chats).

  • cobrowse_session_requested_by : indique qui a lancé une session de partage d'écran. Les valeurs possibles sont agent ou end_user.

  • cobrowse_session_ended_by : indique qui a mis fin à une session de partage d'écran. Les valeurs possibles sont agent, end_user ou api.

  • end_user_id : participants.end_user_id de la réponse /api/v1/calls ou /api/v1/chats. Ce champ n'est présent que si le type est end_user.

Types d'interactions/sessions

Types d'appels

  • Appels vocaux entrants : appels RTCP standards.
  • Appels vocaux entrants (RVI via mobile) : appels RTCP de remplacement passés depuis le SDK mobile.
  • Appels vocaux entrants (mobile) : passés par les consommateurs à l'aide d'un SDK mobile installé.
  • Rappel vocal (Web) : initié à partir du SDK Web.
  • Appel vocal entrant (API) : initié à l'aide de l'API.
  • Voice Scheduled (Mobile) : programmée à l'aide d'un SDK mobile installé.
  • Voice Scheduled (Web) : planifié à l'aide d'un SDK Web installé.
  • Appel vocal sortant : initié par un agent qui compose un numéro.
  • Appel vocal sortant (API) : initié à l'aide de l'API.
  • Campagne vocale : lancée à l'aide d'un numéroteur sortant (campagne).

Types de discussion

  • Messagerie (WhatsApp) : initiée à l'aide de WhatsApp.
  • Messagerie entrante (SMS)
  • Messagerie sortante (SMS)
  • Messagerie sortante (SMS via l'API)
  • Messagerie (Web) : initiée à l'aide d'un SDK Web installé.
  • Messagerie (mobile) : initiée à l'aide d'un SDK mobile installé.

Type d'appel ou de chat

  • Session de partage d'écran : lancée par un agent ou un utilisateur final pendant un appel ou un chat.

Types d'événement

Voici les types d'événements publiés par l'adaptateur d'agent. La colonne type est la chaîne exacte, sensible à la casse, qui apparaît dans le champ type du message.

Événement type Adaptateur
Connexion de l'agent Agent_Login Les deux
Nouvel appel New_Call Appel
Le client a rejoint la conversation Consumer_Joined Appel
Raccrocher End_Call Appel
Masquage de l'appel démarré call_redaction_started Appel
Masquage de l'appel terminé call_redaction_ended Appel
Nouvelle discussion New_Chat Chat
Arrêter le chat End_Chat Chat
Discussion active Active_Chat Chat
Message de chat entrant Chat_Inbound_Message Chat
Message sortant de chat Chat_Outbound_Message Chat
Formulaire envoyé Form_Sent Chat
Formulaire rempli Form_Completed Chat
Discussion ignorée Dismissed_Chat Chat
Session de partage d'écran démarrée Cobrowse_Session_Started Les deux
Contrôle à distance de la session de partage d'écran modifié Cobrowse_Session_Remote_Control_Changed Les deux
Screen Share session full device changed Cobrowse_Session_Full_Device_Changed Les deux
Session de partage d'écran terminée Cobrowse_Session_Ended Les deux
Transfert Transfer_Call, Transfer_Chat Les deux
Groupe ajouté Party_Added Les deux
L'agent se connecte à la session Agent_Joined_Call, Agent_Joined_Chat Les deux
Déconnexion de l'agent Agent_Logout Les deux
Agent Assist ajouté agent_assist_added Les deux
L'Assistant de tâches virtuel a rejoint la réunion Task_VA_Joined Les deux
Assistant de tâches virtuel restant Task_VA_Left Les deux
Variables de session de l'Assistant de tâches virtuel reçues Task_VA_Variables_Received Les deux
Pop-up d'enregistrement CRM CRM_Record_Pop Les deux
Ouvrir la page tierce openThirdPartyPage Appel

Votre écouteur doit ignorer les valeurs type qu'il ne reconnaît pas. De nouveaux types d'événements peuvent être ajoutés au fil du temps, et l'adaptateur publie également des messages destinés à d'autres surfaces de la plate-forme CCAI (par exemple, lorsqu'il est hébergé sur le bureau de l'agent de la plate-forme CCAI) qui ne font pas partie de ce contrat.

Connexion de l'agent

Un événement de connexion d'agent se produit lorsque l'agent se connecte à l'adaptateur.

Voici un exemple d'événement Agent_Login :

{
  "type": "Agent_Login",
    "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent

  • Facultatif : agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans son profil.

  • agent_email : adresse e-mail associée au compte de l'agent.

Nouvel appel

Un nouvel événement d'appel se produit lorsqu'un agent répond à un appel. Cet événement contient des informations telles que l'heure de début de l'appel, l'agent qui l'a traité et l'origine de l'appel.

Voici un exemple d'événement New_Call :

{
  "type": "New_Call",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "call_id": 103646,
    "session_type": "Voice Campaign (UJET)"
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans son profil. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • queue_id : identifiant de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • campaign_id : identifiant de la campagne. Ce champ est inclus pour un appel de campagne. Facultatif.

  • campaign_name : nom de la campagne. Ce champ est inclus pour un appel de campagne. Facultatif.

  • call_id : identifiant de l'appel

  • session_type : type de session

  • virtual_agent_id : identifiant de l'agent virtuel. Ce champ est inclus pour les événements impliquant l'agent virtuel. Facultatif.

  • va_data_parameters : variables configurées dans la file d'attente à envoyer à l'agent virtuel. Ce champ est inclus pour les événements impliquant l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à CCAI Platform. Facultatif.

  • custom_sip_headers : permet aux en-têtes SIP (Session Initiation Protocol) personnalisés des appels SIP entrants d'apparaître dans le journal des événements POST. Ce champ est inclus si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour le chat. Facultatif.

Le consommateur a rejoint la discussion

Un événement de participation d'un consommateur se produit lors d'un appel de campagne (numéroteur sortant) lorsque l'enregistrement du consommateur est résolu et qu'il comporte une clé LCM (List Campaign Manager). Elle permet à la page hôte de rechercher le contact composé dans son propre système avant l'arrivée du reste des données d'appel. Cet événement n'est publié que pour les appels de campagne dont le contact possède une clé LCM.

Voici un exemple d'événement Consumer_Joined :

{
  "type": "Consumer_Joined",
  "data": {
    "lcmKey": "acqueon:12345",
    "custom_sip_headers": {
      "X-Account-Id": "A-100"
    },
    "va_data_parameters": {
      "param1": "one"
    },
    "session_variable": {
      "key_one": "value"
    }
  }
}

Voici les descriptions des champs de données d'événement :

  • lcmKey : clé du gestionnaire de campagne de la liste du contact appelé

  • custom_sip_headers : en-têtes SIP personnalisés de l'appel. Ce champ est inclus si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • va_data_parameters : variables configurées dans la file d'attente à envoyer à l'agent virtuel. Facultatif.

  • session_variable : variables de l'agent virtuel envoyées à Contact Center AI Platform. Facultatif.

Masquage de l'appel démarré

Un événement de début de masquage d'appel se produit lorsqu'un masquage d'appel a commencé et n'est pas en cours d'enregistrement. Les données d'événement se composent de l'ID de l'agent qui a géré l'appel et de l'ID de l'appel.

Notez que le type de cet événement est en minuscules : call_redaction_started.

  • agent_id : ID de l'agent qui a traité l'appel
  • call_id : ID de l'appel

Voici un exemple d'événement "Masquage de l'appel démarré" :

{
  "type": "call_redaction_started",
  "data": {
    "agent_id": 2896,
    "call_id": 97939
  }
}

Masquage de l'appel arrêté

L'événement d'arrêt de masquage d'appel se produit lorsqu'un masquage d'appel est terminé et que l'enregistrement a repris. Cet événement se compose de l'ID de l'agent qui a géré l'appel et de l'call ID.

Notez que le type de cet événement est en minuscules : call_redaction_ended.

  • agent_id : ID de l'agent qui a traité l'appel
  • call_id : ID de l'appel

Voici un exemple de données d'événement d'arrêt de masquage d'appel :

{
  "type": "call_redaction_ended",
  "data": {
    "agent_id": 2896,
    "call_id": 97939
  }
}

Mettre fin à l'appel

Un événement de fin d'appel se produit lorsqu'un appel est terminé. Cet événement contient des informations telles que l'heure de fin de l'appel, l'agent qui l'a traité et l'origine de l'appel.

Voici un exemple d'événement End_Call :

{
  "type": "End_Call",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "call_id": 103646,
    "session_type": "Voice Campaign (UJET)"
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans son profil. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • queue_id : identifiant de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • campaign_id : identifiant de la campagne. Ce champ est inclus pour un appel de campagne. Facultatif.

  • campaign_name : nom de la campagne. Ce champ est inclus pour un appel de campagne. Facultatif.

  • call_id : identifiant de l'appel

  • session_type : type de session

  • virtual_agent_id : identifiant de l'agent virtuel. Ce champ est inclus pour les événements impliquant l'agent virtuel. Facultatif.

  • va_data_parameters : variables configurées dans la file d'attente à envoyer à l'agent virtuel. Ce champ est inclus pour les événements impliquant l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à Contact Center AI Platform. Facultatif.

  • custom_sip_headers : permet aux en-têtes SIP (Session Initiation Protocol) personnalisés des appels SIP entrants d'apparaître dans le journal des événements POST. Ce champ est inclus si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Nouveau chat

Un nouvel événement de chat se produit lorsqu'un agent prend en charge une session de chat. Cet événement indique quand le chat a commencé et contient des informations telles que l'agent qui a géré le chat et l'origine du chat.

Voici un exemple d'événement New_chat :

{
  "type": "New_Chat",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel"
  }
}

Voici les descriptions des champs de données d'événement :

  • chat_id : identifiant du chat

  • session_type : type de session

  • agent_id : identifiant de l'agent

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans son profil. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • queue_id : identifiant de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Arrêter le chat

Un événement de fin de chat se produit lorsqu'une session de chat se termine. Cet événement indique quand le chat s'est terminé et contient des informations telles que l'agent qui l'a traité et l'origine du chat.

Voici un exemple d'événement End_Chat :

{
  "type": "End_Chat",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": null,
    "queue_path": null,
    "agent_custom_id": null
  }
}

Voici les descriptions des champs de données d'événement :

  • chat_id : identifiant du chat.

  • session_type : type de session.

  • agent_id : identifiant de l'agent.

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans le profil de l'agent. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • queue_id : identifiant de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Chat actif

Un événement de chat actif se produit lorsque l'agent passe à un onglet de chat dans l'adaptateur de chat.

Voici un exemple d'événement Active_Chat :

{
  "type": "Active_Chat",
  "data": {
    "chat_id": 73521,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel"
  }
}

Voici les descriptions des champs de données d'événement :

  • chat_id : identifiant du chat

  • session_type : type de session

  • agent_id : identifiant de l'agent

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans le profil de l'agent. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • queue_id : identifiant de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Message de chat entrant

Un événement de message entrant de chat indique qu'un nouveau message client a été reçu. Il inclut le contenu du message.

Les données des champs suivants sont consignées pour un événement de message entrant de chat :

  • chat_id : identifie la session de chat

  • session_type : indique le type de session en cours de création, par exemple une messagerie entrante via un chat Web.

  • agent_id : identifie l'agent qui gère la session de chat

  • agent_custom_id : ce champ n'existe que si le profil de l'agent inclut un ID personnalisé. Facultatif.

  • agent_email : adresse e-mail de l'agent qui gère la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente. Facultatif.

  • queue_id : ID de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente.

  • queue_path : chemin d'accès de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente.

  • message : événement indiquant qu'un nouveau message client a été reçu, ainsi que le contenu du message

  • custom_data_secured : permet la transmission de données personnalisées sécurisées du SDK. Facultatif.

  • custom_data_not_secured : permet la transmission de données personnalisées du SDK non sécurisées. Facultatif.

Voici un exemple d'événement Chat_Inbound_Message :

{
  "type": "Chat_Inbound_Message",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel",
    "message" : "Can you help me with my order tracking number?"
  }
}

Message sortant de chat

Un événement de message sortant de chat se produit lorsqu'un nouveau message client est reçu. Il inclut le contenu du message.

Les données des champs suivants sont enregistrées pour un événement de message sortant de chat :

  • chat_id : identifie la session de chat

  • session_type : indique le type de session en cours de création, par exemple une messagerie entrante via un chat Web.

  • agent_id : identifie l'agent qui gère la session de chat

  • agent_custom_id : ce champ n'est inclus que si le profil de l'agent comporte un ID personnalisé. Facultatif.

  • agent_email : adresse e-mail de l'agent qui gère la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente. Facultatif.

  • queue_id : ID de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente.

  • queue_path : chemin d'accès de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente.

  • message : l'événement indique qu'un nouveau message de consommateur a été reçu, ainsi que le contenu du message.

  • custom_data_secured : permet la transmission de données personnalisées sécurisées du SDK. Facultatif.

  • custom_data_not_secured : permet la transmission de données personnalisées du SDK non sécurisées. Facultatif.

Voici un exemple d'événement Chat_Outbound_Message :

{
  "type": "Chat_Outbound_Message",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel",
    "message" : "Please give me a moment to look up your account information"
  }
}

Formulaire envoyé

Un événement d'envoi de formulaire se produit lorsqu'un formulaire est envoyé au client lors d'une session de chat. Les deux événements sont publiés par l'adaptateur de chat lorsque le chat reçoit le message système correspondant.

Voici un exemple d'événement Form_Sent :

{
  "type": "Form_Sent",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "end_user_id": 5512,
    "form_external_id": "payment-details",
    "form_name": "Payment details",
    "form_type": "secure",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Kim",
    "queue_language_id": "en",
    "timestamp": 1727853575000
  }
}

Voici les descriptions des champs de données d'événement :

  • chat_id : identifiant du chat

  • session_type : type de session

  • agent_id : identifiant de l'agent

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans le profil de l'agent. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • end_user_id : identifiant du client dans le chat. Facultatif.

  • form_external_id : identifiant externe du formulaire envoyé. Facultatif.

  • form_name : nom du formulaire envoyé. Facultatif.

  • form_type : type de formulaire envoyé. Facultatif.

  • queue_id : identifiant de la file d'attente d'où provient le chat. Ce champ est inclus lorsque le chat provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient le chat. Ce champ est inclus lorsque le chat provient d'une file d'attente. Facultatif.

  • queue_language_id : langue de la file d'attente. Facultatif.

  • timestamp : heure de publication de l'événement, en millisecondes depuis l'epoch Unix.

  • va_data_parameters : variables configurées dans la file d'attente à envoyer à l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à Contact Center AI Platform. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées de chat. Facultatif.

Formulaire rempli

Un événement de formulaire complété se produit lorsque le client envoie un formulaire qui lui a été envoyé pendant une session de chat. Les données d'événement comportent les mêmes champs que l'événement Formulaire envoyé.

Voici un exemple d'événement Form_Completed :

{
  "type": "Form_Completed",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "end_user_id": 5512,
    "form_external_id": "payment-details",
    "form_name": "Payment details",
    "form_type": "secure",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Kim",
    "queue_language_id": "en",
    "timestamp": 1727853601000
  }
}

Discussion fermée

Un événement de chat ignoré se produit lorsque l'agent ferme l'onglet de chat dans l'adaptateur de chat.

Voici un exemple d'événement Dismissed_Chat :

{
  "type":"Dismissed_Chat",
  "data":{"chat_id":73522,
    "session_type":"Messaging Inbound (Web Chat)",
    "agent_id":1,
    "agent_email":"ariel@example.com"
  }
}

Voici les descriptions des champs de données d'événement :

  • chat_id : identifiant du chat

  • session_type : type de session

  • agent_id : identifiant de l'agent

  • agent_custom_id : identifiant personnalisé de l'agent, s'il a été saisi dans le profil de l'agent. Facultatif.

  • agent_email : adresse e-mail associée au compte de l'agent.

  • queue_id : identifiant de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient l'appel. Ce champ est inclus lorsque l'appel provient d'une file d'attente. Facultatif.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Session de partage d'écran démarrée

Un événement Session de partage d'écran démarrée se produit lorsqu'une session de partage d'écran est démarrée par un agent ou un utilisateur final. Une session de partage d'écran peut être lancée pendant un appel ou une discussion. Pour en savoir plus, consultez Partage d'écran.

Voici un exemple d'objet JSON pour un événement de début de session de partage d'écran :

{
  "type": "Cobrowse_Session_Started",
  "data": {
    "agent_id": 5,
    "chat_id": 791,
    "cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
    "cobrowse_session_requested_by": "agent",
    "cobrowse_session_remote_control": "off",
    "cobrowse_session_full_device": "off"
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent.

  • call_id : identifiant d'un appel entrant sur le canal de réponse vocale interactive (RVI). Ce champ est inclus si la session de partage d'écran a été lancée pendant un appel.

  • chat_id : identifiant d'un chat entrant sur le canal Web ou mobile. Ce champ est inclus si la session de partage d'écran a été démarrée pendant une discussion.

  • cobrowse_session_id : identifiant d'une session de partage d'écran.

  • cobrowse_session_requested_by : indique qui a démarré une session de partage d'écran. Les valeurs sont agent et end-user.

  • cobrowse_session_remote_control : indique l'état d'une session de partage d'écran à distance. Les valeurs sont on, rejected, requested et off.

  • cobrowse_session_full_device : indique l'état d'une session de partage d'écran complet de l'appareil. Les valeurs sont on, rejected, requested et off.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

La télécommande de la session de partage d'écran a été modifiée

Un événement de modification du contrôle à distance d'une session de partage d'écran se produit lorsque l'état du contrôle à distance d'une session de partage d'écran change. Cet événement indique l'état de la session de partage d'écran de la télécommande. Pour en savoir plus, consultez Partage d'écran.

Voici un exemple d'objet JSON pour un événement Cobrowse_Session_Remote_Control_Changed :

{
  "type": "Cobrowse_Session_Remote_Control_Changed",
  "data": {
    "agent_id": 5,
    "chat_id": 791,
    "cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
    "cobrowse_session_remote_control": "requested"
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent.

  • call_id : identifiant d'un appel entrant sur le canal de réponse vocale interactive (RVI). Ce champ est inclus si la session de partage d'écran a été lancée pendant un appel.

  • chat_id : identifiant d'un chat entrant sur le canal Web ou mobile. Ce champ est inclus si la session de partage d'écran a été lancée pendant un chat.

  • cobrowse_session_id : identifiant d'une session de partage d'écran.

  • cobrowse_session_remote_control : indique l'état d'une session de partage d'écran à distance. Les valeurs sont on, rejected, requested et off.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Session de partage d'écran de l'appareil complet modifiée

Un événement de modification de session de partage d'écran de l'appareil complet se produit lorsque l'état d'une session de partage d'écran de l'appareil complet change. Cet événement indique l'état de la session de partage d'écran de l'appareil complet. Pour en savoir plus, consultez Partage d'écran.

Voici un exemple d'événement Cobrowse_Session_Full_Device_Changed :

{
  "type": "Cobrowse_Session_Full_Device_Changed",
  "data": {
    "agent_id": 5,
    "cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
    "cobrowse_session_full_device": "rejected"
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent.

  • call_id : identifiant d'un appel entrant sur le canal de réponse vocale interactive (RVI). Ce champ est inclus si la session de partage d'écran a été lancée pendant un appel.

  • chat_id : identifiant d'un chat entrant sur le canal Web ou mobile. Ce champ est inclus si la session de partage d'écran a été démarrée pendant une discussion.

  • Cobrowse_session_id : identifiant d'une session de partage d'écran.

  • Cobrowse_session_full_device : indique l'état d'une session de partage d'écran complet de l'appareil. Les valeurs sont on, rejected, requested et off.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Session de partage d'écran terminée

Un événement de démarrage de session de partage d'écran se produit lorsqu'une session de partage d'écran est terminée par un agent, un utilisateur final ou l'API. Pour en savoir plus, consultez Configurer le partage d'écran.

Voici un exemple d'événement Cobrowse_Session_Ended :

{
  "type": "Cobrowse_Session_Ended",
  "data": {
    "agent_id": 5,
    "cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
    "cobrowse_session_requested_by": "end_user",
    "cobrowse_session_ended_by": "agent",
    "cobrowse_session_remote_control": "on",
    "cobrowse_session_full_device": "rejected"
  }
}

Voici les descriptions des champs de données d'événement :

  • agent_id : identifiant de l'agent.

  • call_id : identifiant d'un appel entrant sur le canal de réponse vocale interactive (RVI). Ce champ est inclus si la session de partage d'écran a été lancée pendant un appel.

  • chat_id : identifiant d'un chat entrant sur le canal Web ou mobile. Ce champ est inclus si la session de partage d'écran a été démarrée pendant une discussion.

  • cobrowse_session_id : identifiant d'une session de partage d'écran.

  • cobrowse_session_ended_by : indique qui a mis fin à la session de partage d'écran. Les valeurs sont : agent, end-user et api.

  • cobrowse_session_remote_control : indique l'état d'une session de partage d'écran à distance. Les valeurs sont on, rejected, requested et off.

  • cobrowse_session_full_device : indique l'état d'une session de partage d'écran complet de l'appareil. Les valeurs sont on, rejected, requested et off.

  • custom_data_secured : contient des données personnalisées signées provenant de votre serveur. Facultatif.

  • custom_data_not_secured : contient des données personnalisées non signées provenant de votre page Web. Pour en savoir plus, consultez Données personnalisées non signées pour Chat (facultatif). Facultatif.

Transfert

Un événement de transfert se produit lorsqu'un appel ou un chat est transféré. Il peut s'agir d'un transfert annoncé ou non annoncé.

Les champs d'événement suivants font partie d'un événement de transfert.

  • chat_id ou call_id : identifie l'appel ou la session de chat

  • session_type : indique le type de session en cours de création, par exemple une session de messagerie entrante via un chat Web.

  • campaign_id : ID de la campagne. Ce champ n'est présent que si le type d'appel est un appel de campagne. Facultatif.

  • campaign_name : nom de la campagne. Ce champ n'est présent que si le type d'appel est un appel de campagne. Facultatif.

  • from_agent_id : utilisé lors du routage d'appels ou de chats d'un agent à un autre, pour indiquer l'agent d'origine

  • from_agent_custom_id : utilisé lors du routage des appels ou des chats d'un agent à un autre, pour indiquer l'agent d'origine. Facultatif.

  • from_agent_email : utilisé lors du routage des appels ou des discussions d'un agent à un autre, pour indiquer l'agent d'origine

  • to_agent_id : utilisé lors du routage des appels ou des chats d'un agent à un autre, pour indiquer l'agent de destination.

  • to_agent_custom_id : utilisé lors du routage des appels ou des chats d'un agent à un autre, pour indiquer l'agent de destination. Facultatif.

  • to_agent_email : utilisé lors du routage d'appels ou de discussions d'un agent à un autre, pour indiquer l'agent de destination

  • from_queue_id : utilisé lors du routage d'appels ou de discussions d'une file d'attente vers une autre, pour indiquer la file d'attente d'origine

  • from_queue_path : utilisé lors du routage des appels ou des discussions d'une file d'attente vers une autre, pour indiquer la file d'attente d'origine

  • to_queue_id : utilisé lors du routage d'appels ou de chats d'une file d'attente vers une autre pour indiquer la file d'attente de destination

  • to_queue_path : utilisé lors du routage des appels ou des chats d'une file d'attente vers une autre pour indiquer la file d'attente de destination

  • virtual_agent_id : ID attribué à un agent virtuel. Facultatif.

  • va_data_parameters : toutes les variables configurées dans la file d'attente à envoyer à l'agent virtuel. Cela n'est requis que pour les événements impliquant l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à CCAI Platform dans la charge utile. Facultatif.

  • custom_sip_headers : permet aux en-têtes SIP personnalisés des appels SIP entrants d'apparaître dans le journal des événements POST. Il n'est requis que si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • custom_data_secured : permet la transmission de données personnalisées sécurisées du SDK. Facultatif.

  • custom_data_not_secured : permet la transmission de données personnalisées du SDK non sécurisées. Facultatif.

Voici un exemple d'événement de transfert :

{
  "type": "Transfer_Chat",
  "data": {
    "chat_id": 103646,
    "session_type": "Messaging Inbound (SMS)",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "from_agent_id": 1,
    "from_agent_custom_id": "007",
    "from_agent_email": "Ira@example.com",
    "to_agent_id" : 5
    "to_agent_custom_id": "100"
    "to_agent_email" : "ariel@example.com"
    "from_queue_id": 8469,
    "from_queue_path": "Developers / Ariel",
    "to_queue_id" : 1234,
    "to_queue_path" : "Schemes / Auric"
  }
}

Partie ajoutée

Un événement d'ajout de partie fait référence à tout transfert. Il peut s'agir d'un transfert d'appel ou de chat.

Un événement d'ajout de partie contient les données suivantes :

  • chat_id ou call_id : identifie l'appel ou la session de chat

  • session_type : indique le type de session en cours de création, par exemple une session de messagerie entrante via un chat Web.

  • agent_custom_id : ce champ n'existe que si le profil de l'agent inclut un ID personnalisé. Facultatif.

  • agent_email : adresse e-mail de l'agent qui gère l'appel ou la session de chat.

  • queue_id : ID de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente. Facultatif.

  • campaign_id : ID de la campagne. Ce champ n'est inclus que lorsque le type d'appel est un appel de campagne. Facultatif.

  • campaign_name : nom de la campagne. Ce champ n'est inclus que lorsque le type d'appel est un appel de campagne. Facultatif.

  • type : type de participant, par exemple un utilisateur final (end_user) ou un agent. Ce champ est renvoyé dans le champ participants.type de la réponse /api/v1/calls ou /api/v1/chats.

  • end_user_id : ID de l'utilisateur final. Ce champ est renvoyé dans la réponse /api/v1/calls ou /api/v1/chats. Ce champ n'est présent que pour les appels ou les chats d'utilisateurs finaux qui sont redirigés d'un agent à un autre, afin d'indiquer l'agent de destination. Facultatif.

  • virtual_agent_id : identifiant attribué à un agent virtuel. Facultatif.

  • va_data_parameters : toutes les variables configurées dans la file d'attente à envoyer à l'agent virtuel. Cela n'est requis que pour les événements impliquant l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à CCAI Platform dans la charge utile. Facultatif.

  • custom_sip_headers : permet aux en-têtes SIP personnalisés des appels SIP entrants d'apparaître dans le journal des événements POST. Il n'est requis que si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • custom_data_secured : permet la transmission de données personnalisées sécurisées du SDK. Facultatif.

  • custom_data_not_secured : permet la transmission de données personnalisées du SDK non sécurisées. Facultatif.

Voici un exemple d'événement Party_Added.

{
  "type": "Party_Added",
  "data": {
    "chat_id": 103646,
    "session_type": "Messaging Inbound (SMS)",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Ariel",
    "type" : "agent"
  }
}

L'agent se connecte à la session

Un événement "Un agent se connecte à la session" se produit lorsqu'un agent se connecte à une session. Il existe deux types d'événements. Le type est déterminé par le fait qu'il s'agit d'un appel ou d'un chat.

Les champs d'événement suivants font partie d'un événement de connexion d'un agent à une session.

  • agent_id : identifie l'agent qui gère l'appel ou la session de chat.

  • agent_email : adresse e-mail de l'agent qui gère l'appel ou la session de chat.

  • agent_custom_id : ce champ n'existe que si le profil de l'agent inclut un ID personnalisé. Facultatif.

  • chat_id ou call_id : identifie la session d'appel ou de chat.

  • virtual_agent_id : ID attribué à un agent virtuel spécifique. Facultatif.

  • campaign_id : ID de la campagne. Ce champ n'est inclus que lorsque le type d'appel est un appel de campagne. Facultatif.

  • campaign_name : nom de la campagne. Ce champ n'est inclus que lorsque le type d'appel est un appel de campagne. Facultatif.

  • queue_id : ID de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient la session de chat. Ce champ n'est inclus que lorsque le chat provient d'une file d'attente. Facultatif.

  • session_type : indique le type de session en cours de création, par exemple une session de messagerie entrante via un chat Web.

  • virtual_agent_id : ID attribué à un agent virtuel. Facultatif.

  • va_data_parameters : toutes les variables configurées dans la file d'attente à envoyer à l'agent virtuel. Cela n'est requis que pour les événements impliquant l'agent virtuel. Facultatif.

  • session_variable : toutes les variables de l'agent virtuel qui sont envoyées à CCAI Platform dans la charge utile. Facultatif.

  • custom_sip_headers : permet aux en-têtes SIP personnalisés des appels SIP entrants d'apparaître dans le journal des événements POST. Il n'est requis que si des en-têtes SIP personnalisés sont utilisés. Facultatif.

  • custom_data_secured : permet la transmission de données personnalisées sécurisées du SDK. Facultatif.

  • custom_data_not_secured : permet la transmission de données personnalisées du SDK non sécurisées. Facultatif.

Voici un exemple de données d'événement Agent_Joined_Chat :

{
  "type": "Agent_Joined_Chat",
  "data": {
    "chat_id": 103646,
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Ariel",
    "session_type": "Messaging Inbound (SMS)",
  }
}

Déconnexion de l'agent

Un événement de déconnexion d'agent se produit lorsqu'un agent se déconnecte de l'adaptateur d'agent.

Les champs d'événement suivants font partie d'un événement Agent_Logout.

  • agent_id : identifiant de l'agent qui s'est connecté

  • agent_email : adresse e-mail associée au compte d'agent

  • agent_custom_id : ID personnalisé de l'agent, s'il a été saisi dans son profil. Facultatif.

Voici un exemple d'événement Agent_Logout :

{
  "type": "Agent_Logout",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
  }
}

Agent Assist ajouté

Un événement d'ajout d'Agent Assist se produit lorsqu'un agent active Agent Assist pendant un appel ou une session de chat.

Notez les points suivants concernant cet événement :

  • Le type de cet événement est en minuscules : agent_assist_added.

  • Le champ de code temporel est nommé Timestamp (T majuscule) et correspond au nombre de millisecondes écoulées depuis l'epoch Unix.

Voici un exemple d'événement agent_assist_added :

{
  "type": "agent_assist_added",
  "data": {
    "conversation_id": "12345",
    "queue_id": 65,
    "agent_id": 1,
    "session_id": "78534G4RT4284",
    "queue_language_id": "en",
    "Timestamp": 1727853575000
  }
}

Voici les champs d'événement :

  • conversation_id : identifiant de la conversation. Ce champ est inclus lorsque la session utilise un profil de conversation. Facultatif.

  • queue_id : identifiant de la file d'attente. Facultatif.

  • agent_id : identifiant de l'agent

  • session_id : identifiant de la session. Facultatif.

  • queue_language_id : langue de la file d'attente. Facultatif.

  • Timestamp : heure de publication de l'événement, en millisecondes depuis l'epoch Unix.

L'Assistant de tâches virtuel a rejoint la réunion

Un événement d'ajout d'un Assistant de tâches virtuel se produit lorsqu'un Assistant de tâches virtuel (ATV) rejoint un appel ou une session de chat.

Voici un exemple d'événement Task_VA_Joined :

{
  "type": "Task_VA_Joined",
  "data": {
    "chat_id": 103646,
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853575000,
    "data_parameters": {
      "param1": "one",
      "param2": "two"
    }
  }
}

Voici les champs d'événement :

  • call_id ou chat_id : identifiant de l'appel ou du chat

  • campaign_id : identifiant de la campagne. Ce champ est inclus pour un appel de campagne. Facultatif.

  • campaign_name : nom de la campagne. Ce champ est inclus pour un appel de campagne. Facultatif.

  • virtual_agent_id : identifiant de l'association de tunnel VPN.

  • virtual_agent_name : nom du VTA tel qu'il est configuré sur le portail CCAI Platform.

  • participant_id : identifiant du participant de l'agent de test virtuel dans la session

  • queue_id : identifiant de la file d'attente d'où provient la session. Facultatif.

  • queue_path : chemin d'accès de la file d'attente d'où provient la session. Facultatif.

  • queue_language_id : langue de la file d'attente. Facultatif.

  • session_type : type de session

  • conversation_id : identifiant de la conversation. Ce champ est inclus lorsque la session utilise un profil de conversation. Facultatif.

  • session_id : identifiant de la session. Facultatif.

  • timestamp : heure de publication de l'événement, en millisecondes depuis l'epoch Unix.

  • data_parameters : variables configurées dans le portail CCAI Platform et envoyées au VTA. Facultatif.

Assistant de tâches virtuel à gauche

Un événement "Assistant de tâches virtuel parti" se produit lorsque l'ATV quitte la session. En plus des champs de l'événement Assistant de tâches virtuel rejoint, il inclut la raison pour laquelle la session de l'ATV s'est terminée et les variables de session capturées par l'ATV.

Voici un exemple d'événement Task_VA_Left :

{
  "type": "Task_VA_Left",
  "data": {
    "chat_id": 103646,
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853600000,
    "finish_reason": "Task VA completed",
    "data_parameters": {
      "param1": "one"
    },
    "captured_variables": [
      {
        "intent_name": null,
        "variables": {
          "order_number": "A-100"
        },
        "captured_at": "2024-11-15 16:46:31 UTC",
        "timestamp": 1727853590000
      }
    ]
  }
}

Voici les champs d'événement supplémentaires :

  • finish_reason : raison pour laquelle la session VTA s'est terminée

  • captured_variables : variables de session capturées par l'ATV, chacune avec l'intent qui les a capturées et le moment où elles ont été capturées. Facultatif.

Variables de session de l'Assistant de tâches virtuel reçues

Un événement de réception de variables de session de l'Assistant de tâches virtuel se produit chaque fois que l'ATV envoie une charge utile de variable de session personnalisée pendant la session. L'événement comporte les mêmes champs que l'événement Virtual Task Assistant left, à l'exception de finish_reason, et captured_variables contient les variables reçues jusqu'à présent.

Voici un exemple d'événement Task_VA_Variables_Received :

{
  "type": "Task_VA_Variables_Received",
  "data": {
    "chat_id": 103646,
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853590000,
    "data_parameters": {
      "param1": "one"
    },
    "captured_variables": [
      {
        "intent_name": null,
        "variables": {
          "order_number": "A-100"
        },
        "captured_at": "2024-11-15 16:46:31 UTC",
        "timestamp": 1727853590000
      }
    ]
  }
}

Seules les variables dont le capture_type inclut event dans la charge utile de la variable de session personnalisée de l'agent virtuel sont incluses, et les clés listées dans invisible_to_adapter_events sont exclues.

Pop-up d'écran en arrière-plan

La fonctionnalité de pop-up d'écran permet aux agents d'afficher un pop-up d'écran CRM en arrière-plan, ce qui signifie que les informations sur le client s'affichent sur l'écran de l'agent sans qu'aucune action ne soit requise de sa part. Cela permet d'offrir une expérience plus fluide aux clients et de réduire le temps de traitement pour les agents.

Pop-up d'enregistrement CRM

L'événement CRM_Record_Pop est un événement côté serveur qui se déclenche lorsqu'un ticket doit être affiché. Cet événement inclut un paramètre appelé recordUrl qui contient l'URL de l'enregistrement CRM. Cela vous permet d'effectuer une ouverture de fiche en vous abonnant aux événements POST si vous utilisez des adaptateurs intégrés.

Voici un exemple d'événement CRM_Record_Pop :

{
  "type": "CRM_Record_Pop",
  "data": {
    "recordUrl": "https://crm.example.com/tickets/4711"
  }
}

L'événement ne comporte qu'un seul champ :

  • recordUrl : URL de l'enregistrement CRM à afficher

Pour ce faire, l'exemple suivant montre comment ajouter un écouteur d'événements qui écoute les messages envoyés depuis un autre frame ou une autre fenêtre. Cet extrait de code est conçu pour permettre la communication entre différents cadres ou fenêtres, et pour permettre des mises à jour dynamiques du contenu affiché dans l'iFrame en fonction des messages reçus.

// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'

// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')

// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
  // Only accept events posted by the agent adapter.
  if (e.origin !== ADAPTER_ORIGIN) {
    return
  }

  let message
  try {
    message = JSON.parse(e.data)
  } catch (err) {
    // Not an agent adapter event.
    return
  }

  const { type, data = {} } = message
  console.log('EventListener: ', type)

  switch (type) {
    case 'CRM_Record_Pop': {
      const recordUrl = data.recordUrl
      if (!recordUrl) {
        return
      }
      console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)

      // changing an iframe target to the record URL pop
      iframeTarget.src = recordUrl
      break
    }
    case 'New_Chat':
      console.log('Chat started...')
      // handling here for New_Chat events
      break
    case 'End_Chat':
      console.log('Chat ended...')
      // handling here for End_Chat events
      break
    default:
      // code handling for other types
      break
  }
}, false)

Ouvrir la page tierce

L'événement openThirdPartyPage est publié par l'adaptateur d'appel lorsqu'un appel comporte une clé tierce (par exemple, une clé de gestionnaire de campagne de liste sur un appel de campagne) et que l'adaptateur est sur le point d'ouvrir la page tierce correspondante. Si vous utilisez des adaptateurs intégrés, vous pouvez vous abonner à cet événement pour ouvrir la page dans votre propre UI.

Voici un exemple d'événement openThirdPartyPage :

{
  "type": "openThirdPartyPage",
  "data": {
    "thirdPartyKey": "acqueon:12345",
    "callId": 103646
  }
}

Voici les champs d'événement :

  • thirdPartyKey : clé tierce associée à l'appel

  • callId : identifiant de l'appel