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 de CRM personnalisés fonctionne lorsque vous utilisez un CRM maison ou tout 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. Tous les détails de la session d'appel ou de chat sont stockés 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 du 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 après la session.
Les métadonnées de session et les fichiers multimédias importés par les consommateurs sont transférés vers un service de stockage externe. Les agents peuvent voir les fichiers multimédias importés par les consommateurs directement dans l'adaptateur d'agent pendant la session.
Une solution CRM personnalisée est implémentée avec 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 d'utilisation | 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, et dans d'autres, 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éclenchera le CRM personnalisé pour effectuer une recherche. 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 personnalisé de l'URL de recherche
La plate-forme CCAI n'inclura dans l'URL que les paramètres non vides.
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 d'une 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 le SDK Web et mobile utilisera 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 la rétrocompatibilité. |
{CUID} |
ID utilisateur personnalisé |
{EMAIL} |
Adresse e-mail de l'utilisateur final |
{MENU_PATH} |
Chemin d'accès complet au 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 :
|
{TYPE} |
Type de session. Valeurs possibles pour les appels :
Valeurs possibles pour les discussions :
|
{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 :
|
{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 chats 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
Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.
Accédez à Paramètres > Paramètres du développeur.
Dans la section "CRM", sélectionnez CRM personnalisé.
Sous Recherche CRM, saisissez vos URL personnalisées.
Sélectionnez le format de numéro de téléphone à utiliser dans les requêtes CRM.
Cliquez sur Enregistrer les modifications.
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'une fiche CRM par e-mail
Dans les configurations telles que l'URL de recherche personnalisée, une fois la session 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 en syntaxe JSON
Pièce jointe au format TXT contenant la transcription du chat, le cas échéant
La 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
Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.
Accédez à Paramètres > Paramètres du développeur.
Dans la section "CRM", assurez-vous que l'option CRM personnalisé est sélectionnée.
Activez l'option Envoyer le résultat de la session par e-mail.
Saisissez l'adresse e-mail à laquelle vous souhaitez envoyer l'e-mail.
Cliquez sur Enregistrer les modifications.
Configuration par file d'attente
Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur est attribué.
Accédez à Paramètres > File d'attente, puis sélectionnez une sous-file d'attente.
Activez l'option Envoyer le résultat de la session par e-mail.
Saisissez l'adresse e-mail à laquelle vous souhaitez que l'e-mail soit envoyé.

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 |
N'envoyez pas de message pour toutes les files d'attente. |
| Global = NON activé File d'attente = Activé |
Le paramètre de la 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 la file d'attente. |
| Global = Activé File d'attente = NON activée |
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 de l'agent
Recherche d'enregistrements CRM
Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'agent est attribué.
Ouvrez l'adaptateur pour les appels ou les chats.
Utilisez le bouton Ouvrir dans une nouvelle fenêtre de navigateur pour lancer la recherche.
Utilisez le bouton Copier le lien pour copier l'URL de recherche dans le presse-papiers.

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 CCAI Platform, les enregistrements d'appels, les transcriptions de chat et les fichiers multimédias importés par les consommateurs. 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 sous Chemin d'accès au 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 :
Connectez-vous au portail de la plate-forme CCAI à l'aide d'un compte auquel le rôle d'administrateur a été attribué.
Accédez à Paramètres > Paramètres du développeur.
Sur la page "Paramètres pour les développeurs", accédez à la section Stockage externe.
Activez le stockage des informations en dehors des serveurs CRM en activant le bouton, puis sélectionnez les types de fichiers à stocker.
Dans la section "Configuration du serveur", sélectionnez votre type de stockage et suivez les étapes de configuration : serveur SFTP, Google Cloud bucket.
Serveur SFTP
Saisissez l'hôte SFTP (URL ou adresse IP).
Saisissez le numéro de port.
Saisissez l'ID de connexion SFTP.
Si le serveur SFTP nécessite un mot de passe pour l'authentification, saisissez-le dans le champ Mot de passe.
Si le serveur SFTP nécessite une clé privée pour l'authentification, cochez la case Clé privée SSH.
Saisissez (copiez et collez) la clé privée SSH.
Saisissez la phrase secrète de la clé privée. Si les informations de session doivent être stockées dans un dossier spécifique du serveur SFTP, cochez la case Chemin d'accès au dossier et saisissez le chemin d'accès au dossier SFTP.
Cliquez sur Enregistrer les modifications.
Cloud Storage
Saisissez le nom du bucket de destination Google Cloud .
Saisissez l'ID client Google Cloud .
Saisissez le Google Cloud code secret du client.
Si les informations de session doivent être stockées dans un dossier spécifique du bucket Google Cloud , cochez la case Chemin d'accès au dossier et saisissez le chemin d'accès au dossierGoogle Cloud .
Cliquez sur Associer et enregistrer.
Tester la configuration du stockage externe
Pour les CRM avec intégration standard existante :
Connectez-vous à votre CRM.
Connectez-vous à CCAI Platform dans le CRM à l'aide d'identifiants CCAI Platform auxquels un rôle d'agent est attribué.
Passez un appel ou lancez une discussion. L'enregistrement CRM associé à la session s'affiche.
Une fois la session terminée, le fichier de transcription devrait être importé en quelques secondes.
Accédez directement au dossier de stockage du serveur externe et vérifiez que le fichier est disponible.
Envoyer des fichiers de session au CRM
Lorsque le stockage externe est activé, les paramètres de développement "URL de stockage CRM" et "URL de stockage externe" permettent d'envoyer des fichiers de session et de choisir la source à utiliser pour afficher les fichiers dans l'adaptateur d'agent.
Pour afficher ces paramètres, le stockage externe doit être activé dans Paramètres > Paramètres pour les développeurs > Stockage externe. Activez l'option Activer le stockage des informations en dehors des serveurs CRM.
Stockage CRM
Accédez à Settings > Developer Settings > External Storage > CRM Storage (Paramètres > Paramètres du développeur > Stockage externe > Stockage CRM).
Cochez la case Envoyer également les fichiers de session au CRM pour envoyer les fichiers de session (enregistrements d'appels ou transcriptions de chat, par exemple) à votre CRM et au stockage externe configuré.
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é".
Accédez à Paramètres > Paramètres du développeur > Stockage externe > URL de stockage externe.
Sélectionnez les URL du CRM ou les URL de stockage externe sources pour afficher les fichiers dans l'adaptateur d'agent.
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 l'espace de 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 le 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 CCAI Platform. 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 le configurer 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 :
Dans le portail CCAI Platform, cliquez sur Settings > Developer Settings (Paramètres > Paramètres pour les développeurs). Si le menu Paramètres ne s'affiche pas, cliquez sur Menu.
Dans le volet CRM, cliquez sur CRM personnalisé.
Activez l'option Afficher le CRM sur le portail CCAI Platform.
Sous URL à afficher, saisissez l'URL de votre page CRM personnalisée, puis cliquez sur Enregistrer.
Ouvrir un écran pop-up avec une URL personnalisée
Utilisez Ouvrir une 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 et 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
Accédez à Paramètres > File d'attente > IVR, puis cliquez sur une file d'attente pour la modifier.
Accédez à Ouvrir l'URL personnalisée dans le panneau.
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.
- Cliquez sur Enregistrer.
Intégration d'une API générique pour un 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 la plate-forme CCAI. Cette méthode fluide est similaire à l'expérience d'intégration de CRM prête à l'emploi.
L'agent n'a aucune action à effectuer 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 est utilisé pour 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 aux paramètres de l'API CRM personnalisée.
Méthode d'authentification
CCAI Platform est compatible avec 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 de CRM avec le SDK Web et les SDK mobiles. Vous pouvez configurer les SDK pour qu'ils recherchent des informations sur les comptes et les enregistrements CRM à afficher dans l'adaptateur d'agent. Pour obtenir la liste complète des URL de recherche CRM, consultez Paramètres d'URL de la 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 de l'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.
Pour que vos agents puissent rechercher des comptes, vous devez configurer les points de terminaison Find an account (Trouver un compte) et Create an account (Créer un compte).
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.
Enfin, si vous saisissez les points de terminaison Update a record (Mettre à jour un enregistrement), Upload a file (Importer un fichier) et Comment (Commentaire), 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 :
URL de la requête : URL du point de terminaison de l'API.
Choisissez la méthode de requête parmi POST, GET, PUT ou PATCH.
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 nombres comme valeurs de paramètres. Vous pouvez ajouter autant de paramètres que nécessaire.
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 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 } ] }
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} |
Extrait de 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 |
{EMAIL} |
||
| Type d'appel/Type de session | {SESSION_TYPE} |
|
| Numéro de téléphone de l'utilisateur final | {PHONE_NUMBER} |
Mise en forme selon le paramètre choisi |
| 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 à partir 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 Find/Create record. |
| 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} |
Mise en forme selon le paramètre choisi |
| 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. |
| 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é. Lors de la création d'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} |
Au format mm:ss |
| Temps d'attente | {HOLD_TIME} |
Au format mm:ss |
| Temps d'attente | {WAIT_TIME} |
Au format 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} |
|
| HTML de la description de l'enregistrement | {TICKET_DESCRIPTION_HTML} |
Identique à la description, mais au format HTML |
| Corps du commentaire | {COMMENT_BODY} |
Uniquement disponible dans le cas d'un ajout de commentaire (enregistrement de l'évaluation, fin de l'appel/du chat, début de l'appel/du chat) |
| 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 à gérer les variables dynamiques de CCAI Platform. Ces fonctions ne peuvent être utilisées que dans la section Paramètre de requête des paramètres de point de terminaison.
La valeur résultante créée à partir d'une fonction sera une chaîne. Si aucune valeur n'est renvoyée par la fonction, 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 sera définie par défaut sur val2. |
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 la valeur de 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.

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 à l'aide d'un numéro de téléphone, d'une adresse e-mail ou d'un 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 tiendra é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 de s'intégrer aux enregistrements ou aux 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 règle générale, cette méthode est utilisée pour 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 trouver 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éé si aucun enregistrement n'est 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 manière facultative, 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 validation des utilisateurs, etc.
Point de terminaison d'importation de fichier
Ce point de terminaison permet d'importer une pièce jointe.
Choisissez le type de votre point de terminaison d'importation.
Format 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 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. Les variables RECORD_ID et ATTACHMENT_ID sont 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 au CRM si vous souhaitez que CCAI Platform ajoute un commentaire à un enregistrement lorsqu'un fichier a été importé. Le paramètre "Format du texte" du point de terminaison des commentaires sera respecté pour ces commentaires.
Voici 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 des commentaires
Ce point de terminaison permet d'ajouter un commentaire à un enregistrement. Si le point de terminaison est configuré, CCAI Platform ajoutera des commentaires aux enregistrements avec les événements :
début d'un appel ou d'une discussion ;
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 en HTML est cochée, le texte sera au format HTML. Sinon, il sera en texte brut.
Exemple de requête, POST/PUT/PATCH :
{
"comment": "Some text",
// string can also be formatted on ujet 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
Cette section fournit des organigrammes pour les flux d'API génériques de CRM personnalisés.
Organigrammes de base

Parcours de recherche ou de création de compte

Flux de recherche ou de création d'enregistrement

Flux d'actions après un appel ou un chat

Mettre à jour le flux d'enregistrement

Flux de commentaires

Processus 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
allowest obligatoire. L'adaptateur d'appel utilise WebRTC et nécessitemicrophone.cameraetgeolocationsont nécessaires pour le partage d'écran et les fonctionnalités de localisation. Si les autorisations ne sont pas déléguées à l'iframe, le navigateur les bloque en mode silencieux 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 origine différente. 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 interceptés par le 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 d'appel et de chat comportent des événements spécifiques qui peuvent être utilisés pour améliorer les fonctionnalités du CRM.
Adaptateur d'appel
- Nouvel appel
- Un consommateur a rejoint
- Masquage de l'appel démarré
- La rédaction de l'appel est terminée
- Mettre fin à l'appel
Adaptateur pour les chats
- Nouveau chat
- Discussion active
- Message entrant dans le chat
- Message sortant du 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 changé
- Session de partage d'écran sur l'ensemble de l'appareil modifiée
- Session de partage d'écran terminée
- Transfert
- Soirée 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 restant
- 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.dataest une chaîne JSON, et non un objet. Appelez toujoursJSON.parse(event.data)avant de le lire. Étant donné que d'autres scripts sur la page peuvent également utiliserpostMessage()avec des charges utiles non JSON, enveloppez l'analyse dans untry/catch.L'objet analysé comporte exactement deux clés de premier niveau :
{ "type": "<event type>", "data": { ... } }typeest l'une des chaînes listées dans Types d'événements.datacontient les champs d'événement décrits dans Données pour les événements. Tous les champs spécifiques aux événements se trouvent dansdata, jamais au niveau supérieur.Les champs vides sont ignorés. Avant la publication, l'adaptateur supprime tout champ de
datadont la valeur estnull,undefinedou une chaîne vide. Traitez chaque champ comme potentiellement absent et ne vous fiez pas à la présence d'une clé avec une valeurnull.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 comparerevent.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
typesont sensibles à la casse et ne sont pas uniformément mises en casse. La plupart sont enTitle_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 autre fenêtre). 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 à 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 acceptées sur le canal api:redaction. Elles permettent de mettre en pause et de reprendre l'enregistrement pour la censure des appels depuis la page hôte.
eventType |
Description |
|---|---|
start_call_redaction |
Mettez en pause l'enregistrement de l'appel actif pour commencer la rédaction. |
stop_call_redaction |
Reprenez l'enregistrement de l'appel actif pour arrêter la rédaction. |
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 enregistre que le message a été ignoré et ne fait rien.
Lorsque l'adaptateur agit sur la commande, il renvoie l'événement
call_redaction_startedoucall_redaction_endedcorrespondant à 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*. Ainsi, la commande ne peut pas être transmise à une autre page si l'iFrame est parcouru.L'ancien canal
crm:authorityavec les types d'événementsredact_call:startetredact_call:stopest toujours accepté par l'adaptateur CRM personnalisé pour la rétrocompatibilité, mais les nouvelles intégrations doivent utiliserapi:redaction.
Pour en savoir plus, consultez Masquer des appels.
Données pour les événements
call_id: identifiant d'un appel vocal entrant avec un système de 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 (voix, chat ou messagerie, par exemple).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 obligatoire 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 provenant 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 transfert 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 des appels ou des 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 chats d'une file d'attente à une autre, pour indiquer la file d'attente d'origine.to_queue_id: utilisé pour indiquer la file d'attente de destination lors du routage d'appels ou de discussions d'une file d'attente à une autre.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 vers une autre, pour indiquer la file d'attente d'origine.to_queue_path: utilisé pour indiquer la file d'attente de destination lors du routage d'appels ou de discussions d'une file d'attente à une autre.
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 sontagentouend_user.cobrowse_session_ended_by: indique qui a mis fin à une session de partage d'écran. Les valeurs possibles sontagent,end_userouapi.end_user_id:participants.end_user_idde la réponse/api/v1/callsou/api/v1/chats. Ce champ n'est présent que si le type estend_user.
Types d'interactions / de sessions
Types d'appels
- Appels vocaux entrants : appels RTCP standards.
- Appels vocaux entrants (SVI utilisant le mobile) : appels RTCP de remplacement effectués à partir du SDK Mobile.
- Voix entrante (mobile) : placée 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é.
- Voix planifiée (Web) : planifiée à l'aide d'un SDK Web installé.
- Appel sortant vocal : appel initié par un agent en composant 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 discussions
- 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 discussion
- Session de partage d'écran : lancée par un agent ou un utilisateur final pendant un appel ou une discussion.
Types d'événement
Voici les types d'événements publiés par l'adaptateur d'agent. La colonne type correspond à la chaîne exacte et 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 discussion | Consumer_Joined |
Appel |
| Mettre fin à l'appel | 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 entrant dans le chat | 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 |
| La télécommande de la session de partage d'écran a été modifiée | 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 aux 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. L'adaptateur publie également des messages destinés à d'autres surfaces de la plate-forme CCAI (par exemple, lorsqu'il est hébergé dans l'interface de 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'agentFacultatif :
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'agentagent_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'agentqueue_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'appelsession_type: type de sessionvirtual_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 client personnalisées non signées. Facultatif.
Un consommateur a rejoint
Un événement "Consommateur rejoint" se produit lors d'un appel de campagne (composeur sortant) lorsque la fiche du consommateur est résolue et qu'elle 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 "Rédaction d'un appel commencée" se produit lorsqu'une rédaction 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 traité 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'appelcall_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
}
}
La suppression des données de l'appel a été arrêtée
L'événement "Arrêt de la masquage d'un 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:IDde l'agent qui a géré l'appelcall_id:IDde 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 se termine. 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'agentagent_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'agentqueue_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'appelsession_type: type de sessionvirtual_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 le début du chat et contient des informations telles que l'agent qui a traité 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 chatsession_type: type de sessionagent_id: identifiant de l'agentagent_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 la fin du chat 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 de 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 chatsession_type: type de sessionagent_id: identifiant de l'agentagent_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 chatsession_type: indique le type de session en cours de création (par exemple, les messages entrants via le 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 la discussion 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 à partir de laquelle la session de chat a été lancée. Ce champ n'est inclus que lorsque la discussion provient d'une file d'attente.message: événement indiquant qu'un nouveau message client a été reçu, ainsi que le contenu du messagecustom_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 signalées pour un événement de message sortant de chat :
chat_id: identifie la session de chatsession_type: indique le type de session en cours de création (par exemple, les messages entrants via le 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 possède 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 la discussion 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 la discussion 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 messagecustom_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 pendant 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 chatsession_type: type de sessionagent_id: identifiant de l'agentagent_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'agentend_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 du 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 la discussion 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 "Formulaire rempli" se produit lorsque le consommateur envoie un formulaire qui a été envoyé lors d'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 chatsession_type: type de sessionagent_id: identifiant de l'agentagent_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'agentqueue_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 le 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. Vous pouvez démarrer une session de partage d'écran 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émarrage 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'une discussion entrante sur le canal Web ou mobile. Ce champ est inclus si la session de partage d'écran a été lancé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 sontagentetend-user.cobrowse_session_remote_control: indique l'état d'une session de partage d'écran à distance. Les valeurs sonton,rejected,requestedetoff.cobrowse_session_full_device: indique l'état d'une session de partage d'écran complet de l'appareil. Les valeurs sonton,rejected,requestedetoff.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 changé
Un événement de modification de la télécommande d'une session de partage d'écran se produit lorsque l'état d'une session de partage d'écran avec télécommande change. Cet événement indique l'état de la session de partage d'écran à distance. 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é démarré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 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 sonton,rejected,requestedetoff.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). 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'intégralité de l'appareil se produit lorsque l'état d'une session de partage d'écran de l'intégralité de l'appareil change. Cet événement indique l'état de la session de partage d'écran complète de l'appareil. 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é démarré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 sonton,rejected,requestedetoff.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). Facultatif.
Session de partage d'écran terminée
Un événement de début de session de partage d'écran se produit lorsqu'une session de partage d'écran est lancé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é démarré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 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 sontagent,end-useretapi.cobrowse_session_remote_control: indique l'état d'une session de partage d'écran de contrôle à distance. Les valeurs sonton,rejected,requestedetoff.cobrowse_session_full_device: indique l'état d'une session de partage d'écran complet de l'appareil. Les valeurs sonton,rejected,requestedetoff.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_idoucall_id: identifie la session d'appel ou 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 transfert d'appels ou de chats d'un agent à un autre, pour indiquer l'agent d'originefrom_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 transfert d'appels ou de discussions d'un agent à un autre, pour indiquer l'agent d'origineto_agent_id: utilisé pour acheminer les appels ou les chats d'un agent à un autre, afin d'indiquer l'agent de destination.to_agent_custom_id: utilisé lors du transfert d'appels ou de chats d'un agent à un autre, pour indiquer l'agent de destination. Facultatif.to_agent_email: utilisé lors du transfert d'appels ou de chats d'un agent à un autre, pour indiquer l'agent de destination.from_queue_id: utilisé lors du routage des appels ou des chats d'une file d'attente à une autre, pour indiquer la file d'attente d'originefrom_queue_path: utilisé lors du routage des appels ou des chats d'une file d'attente à une autre, pour indiquer la file d'attente d'origineto_queue_id: utilisé lors du transfert d'appels ou de chats d'une file d'attente à une autre pour indiquer la file d'attente de destinationto_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 destinationvirtual_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 non sécurisées du SDK. 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 "Partie ajoutée" fait référence à tout transfert. Il peut s'agir d'un transfert d'appel ou de discussion.
Un événement "party added" (membre ajouté à la fête) contient les données suivantes :
chat_idoucall_id: identifie la session d'appel ou de chatsession_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 la session d'appel ou 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 ou un agent. Ce champ est renvoyé dans le champ participants.type de la réponse/api/v1/callsou/api/v1/chats.end_user_id: end_user_id. Ce champ est renvoyé dans la réponse/api/v1/callsou/api/v1/chats. Ce champ n'est présent que pour les appels ou les chats d'utilisateurs finaux qui sont acheminé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. Cette propriété n'est requise 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 non sécurisées du SDK. 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 de connexion d'agent à une session se produit lorsqu'un agent se connecte à une session. Il existe deux types d'événements. Le type est déterminé selon 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 la session d'appel ou de chat.agent_custom_id: ce champ n'existe que si le profil de l'agent inclut un ID personnalisé. Facultatif.chat_idoucall_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 à partir de laquelle la session de chat a été lancée. Ce champ n'est inclus que lorsque la discussion provient d'une file d'attente. Facultatif.queue_path: chemin d'accès de la file d'attente à partir de laquelle la session de chat a été lancée. 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 à UJET 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 non sécurisées du SDK. 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 de l'agentagent_custom_id: ID personnalisé de l'agent, s'il a été saisi dans le profil de l'agent. 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.
Voici quelques informations à retenir concernant cet événement :
Le
typede 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'agentsession_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 "Assistant de tâches virtuel rejoint" se produit lorsqu'un Assistant de tâches virtuel (VTA) 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_idouchat_id: identifiant de l'appel ou du chatcampaign_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'AVTvirtual_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 vocal 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 à partir de laquelle la session a été lancée. Facultatif.queue_language_id: langue de la file d'attente. Facultatif.session_type: type de sessionconversation_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 à laquelle l'événement a été publié, en millisecondes depuis l'epoch Unixdata_parameters: variables configurées dans le portail CCAI Platform et envoyées à l'agent de transfert virtuel. Facultatif.
Assistant de tâches virtuel à gauche
Un événement "Virtual Task Assistant left" (Assistant virtuel de tâches quitté) se produit lorsque l'AVT quitte la session. En plus des champs de l'événement L'Assistant de tâches virtuel a rejoint la session, il inclut la raison pour laquelle la session de l'AVT s'est terminée et les variables de session capturées par l'AVT.
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éecaptured_variables: variables de session capturées par l'analyse du parcours avant achat, chacune avec l'intention 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 d'un assistant de tâches virtuel se produit chaque fois que l'assistant de tâches virtuel 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 retiré. Cet événement inclut un paramètre appelé recordUrl qui contient l'URL de l'enregistrement CRM. Cela vous permet d'effectuer un screen pop 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'appelcallId: identifiant de l'appel