> For the complete documentation index, see [llms.txt](https://library.zoom.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://library.zoom.com/technical-library/fr/services-affaires/zoom-contact-center/expert-insights/integrate-engagement-data.md).

# Intégrer les données d'engagement

Écrit par Justin Steinberg

### Présentation

Zoom centre de contact génère des données d'engagement précieuses lors de chaque interaction client, y compris les enregistrements d'appel, les transcriptions, les notes des agents et les dispositions. Continuez votre lecture pour découvrir comment stocker les données d'engagement dans des systèmes externes (par exemple, un CRM et d'autres systèmes d'enregistrement) afin de créer une vue client unifiée, d'activer un coaching efficace des agents ou de répondre aux exigences de conformité lors de l'utilisation de Zoom centre de contact.

Nous allons détailler les différentes méthodes d'intégration pour vous aider à choisir la meilleure approche en fonction de la manière dont vos agents peuvent travailler avec une efficacité accrue.

La meilleure méthode dépend principalement d'un facteur clé : **l'application dans laquelle les agents gèrent leurs interactions**. Les deux options que nous allons aborder sont les suivantes :

1. Agents utilisant le Connecteur CRM CTI ZCC prêt à l'emploi dans le CRM.
2. Agents travaillant dans l'application Zoom Workplace, ce qui nécessite une solution personnalisée avec les API ZCC et les webhooks.

***

### Intégration du Connecteur CRM CTI prêt à l'emploi

C'est la méthode la plus simple. Si vos agents utilisent un Connecteur CRM CTI ZCC, la plupart des données d'engagement peuvent être synchronisées automatiquement entre la plateforme Zoom et le CRM approprié.

#### <mark style="color:bleu;">Comment ça marche</mark>

Le Connecteur CTI intègre l'interface de l'agent ZCC directement dans le CRM. Lorsqu'un engagement se termine, des données telles que les enregistrements, les transcriptions, les notes et les dispositions sont automatiquement enregistrées dans Zoom et associées à l'enregistrement pertinent (par exemple, un ticket ou un contact) dans votre CRM.

#### <mark style="color:bleu;">Exigences de configuration</mark>

La fonctionnalité qui permet la synchronisation des données entre Zoom et le CRM est fournie « prête à l'emploi », mais nécessite une activation dans le portail administrateur ZCC.

Effectuez les étapes suivantes :

{% stepper %}
{% step %}
**Activer dans le portail administrateur ZCC**

Connectez-vous au portail administrateur Zoom en tant qu'administrateur. Dans le [Centre admin](https://zoom.com/account), accédez à Gestion CX → Centre de contact → Intégrations → [Applications](https://zoom.com/cci/index/admin#/admin-integrations).

Trouvez l'intégration CRM concernée et activez les paramètres appropriés pour autoriser le stockage des données dans votre CRM.
{% endstep %}

{% step %}
**Plateformes CRM prises en charge**

Consultez et suivez les [guides de configuration de l'intégration CRM](https://support.zoom.com/) pour vérifier que l'utilisateur de votre intégration CRM dispose des autorisations d'écriture nécessaires pour tous les objets concernés.
{% endstep %}
{% endstepper %}

#### <mark style="color:bleu;">Plateformes CRM prises en charge</mark>

Cette fonctionnalité est accessible via le Connecteur CRM CTI ZCC lorsque les agents utilisent les CRM suivants :

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Avec les connecteurs CRM CTI, aucune configuration spéciale n'est requise, et l'intégration enregistrera par défaut les données d'engagement dans le CRM.

***

### Intégrations personnalisées via API

Si vos agents utilisent l'application native Zoom Workplace ou ZCC Smart Embed, vous aurez besoin d'une solution personnalisée pour transférer les données d'engagement. La principale façon de procéder consiste à utiliser les API du centre de contact Zoom.

Il existe deux approches principales pour accéder aux données d'engagement via l'API :

* **Interrogation périodique :** Interrogez périodiquement l'API Zoom pour voir si de nouvelles données d'engagement sont disponibles.
* **Webhooks :** Recevez une Notification en temps réel de Zoom dès qu'une transcription est prête.

Il existe aussi une troisième approche, **Intégration Flow Events**, qui fonctionne pour certains types de données.

#### <mark style="color:bleu;">Interrogation des API du centre de contact Zoom</mark>

Pour télécharger les données d'engagement, vous devez interroger les points de terminaison API ZCC appropriés. Il est important de noter que les différents types de données proviennent de différentes API, vous devrez donc probablement créer une logique d'interrogation pour chaque point de terminaison pertinent.

De nombreuses API liées à l'engagement dans Rapports V2 (CX analyse des données) prennent désormais en charge le filtrage sur l'heure de fin avec `end_time_from` et `end_time_to`. Préférez ces paramètres lorsqu'ils sont disponibles afin que vos tâches d'interrogation récupèrent les engagements en fonction du moment où ils se sont réellement terminés. Cela permet de réduire les enregistrements manqués, car les données complètes d'engagement (y compris les données de Rapports V2) sont finalisées à la fin de l'engagement.

| Pour obtenir ces données...                                            | Interrogez cette API...                                                                                                                                                                                                                                                                                                                                                              | En utilisant ce champ... | Remarques :                                                                                      |
| ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------ | ------------------------------------------------------------------------------------------------ |
| <p>Fichier multimédia d'enregistrement</p><p>(Canal voix et vidéo)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/get/contact_center/recordings">Lister les enregistrements</a> ou</p><p>Lister les enregistrements d'engagement</p>                                                                                                                                                                                    | `url_de_téléchargement`  | Nécessite que l'enregistrement d'appel soit activé pour la file.                                 |
| <p>Transcription de l'enregistrement</p><p>(Canal voix et vidéo)</p>   | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Lister les enregistrements</a> ou</p><p>Lister les enregistrements d'engagement</p>                                                                                                                                                                                    | `url_de_transcription`   | Nécessite un enregistrement d'appel avec la transcription activée.                               |
| <p>Transcription</p><p>(Canal de messagerie)</p>                       | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Obtenir un engagement</a> ou</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Lister les données historiques du journal d'engagement</a></p>    | `url_de_transcription`   | La transcription est activée par défaut pour les canaux de messagerie.                           |
| <p>Résultats d’appel</p><p>(Tous les canaux)</p>                       | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Obtenir un engagement</a> ou</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Lister les données historiques du journal d'engagement</a></p>    | `dispositions`           | Un tableau d'objets de disposition.                                                              |
| <p>Notes</p><p>(Tous les canaux)</p>                                   | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Obtenir un engagement</a> ou</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Lister les données historiques du journal d'engagement</a></p>    | `notes`                  | Un tableau d'objets de note.                                                                     |
| <p>Fichier multimédia de messagerie vocale</p><p><br><br></p>          | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Lister les messages de la boîte de réception d'un compte</a> <strong>ou</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Lister les messages d'une boîte de réception</a></p> | `url_de_téléchargement`  | Pour les messages de messagerie vocale laissés dans une boîte de réception de centre de contact. |
| Transcription de messagerie vocale                                     | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Lister les messages de la boîte de réception d'un compte</a> <strong>ou</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Lister les messages d'une boîte de réception</a></p> | `url_de_transcription`   | Nécessite que la transcription soit activée pour la boîte de réception.                          |

{% hint style="danger" %}
**Avertissement**

Les URL de téléchargement (`url_de_téléchargement`, `url_de_transcription`, `playback_url`, et ainsi de suite) fournies par ces API Zoom sont **pas** des liens publics. Elles sont conçues pour un accès programmatique et nécessitent une authentification API (par exemple, un jeton d'accès dans l'en-tête Authorization) pour télécharger le fichier associé.

Cela signifie :

* Vous ne pouvez pas enregistrer ces URL directement dans un CRM pour qu'un utilisateur clique dessus. Un utilisateur qui clique sur le lien dans son navigateur ne sera pas authentifié, et le téléchargement échouera.
* La bonne méthode consiste à ce que votre service backend utilise l'URL pour récupérer le fichier. Votre service peut ensuite stocker le fichier dans votre propre système (comme Amazon S3, Azure Blob Storage ou le stockage de fichiers de votre CRM) et fournir à vos utilisateurs un lien sécurisé depuis cet emplacement.
  {% endhint %}

{% hint style="warning" %}
**Attention**

**Retards de traitement - enregistrements vocaux et vidéo :**

Ces données ne sont pas disponibles dès qu'un appel se termine. L'audio doit d'abord être traité et téléversé, ce qui peut prendre plusieurs minutes pour les appels longs. Pour vous assurer de ne manquer aucun enregistrement, définissez le `query_date_type` paramètre sur `recording_end_time` lors de l'interrogation de l'API Liste des enregistrements. Cela récupère les données en fonction de la fin du traitement, et non de la fin de l'appel.

Pour les tâches de rapprochement centrées sur l'engagement de Reports V2 (CX analyse des données), utilisez des fenêtres temporelles qui se chevauchent avec `end_time_from` et `end_time_to` afin de prévoir une marge de sécurité pour le traitement retardé et les problèmes de livraison transitoires.
{% endhint %}

Pour plus d'informations sur les API du centre de contact Zoom, consultez [API du centre de contact](https://developers.zoom.us/docs/api/contact-center/) documentation.

#### <mark style="color:bleu;">Utilisez les webhooks pour les événements en temps réel</mark>

Pour une approche plus immédiate, pilotée par événement, vous pouvez vous abonner aux webhooks ZCC. C’est la méthode la plus efficace pour les Intégrations en temps quasi réel.

**Comment ça marche**

1. Abonnez-vous aux événements appropriés dans le Zoom App Marketplace.
2. Lorsqu’un événement se produit, Zoom envoie une Notification à votre URL webhook (ou à votre connexion WebSocket).
3. La charge utile de l’événement contient les données dont vous avez besoin, soit directement, soit sous forme d’une URL/d’un ID pour un appel API de suivi.

**Événements webhook courants pour les données d'engagement**

* **Données de fin d'engagement prêtes :** contact\_center.cx\_engagement\_end\_data\_ready (indique que les données du rapporter de fin d’engagement V2 sont prêtes à être récupérées)
* **Enregistrement vocal/vidéo :** contact\_center.recording\_completed (fournit un `url_de_téléchargement`)
* **Transcription voix/vidéo :** contact\_center.recording\_transcription\_completed (fournit une `url_de_transcription`)
* **Transcription de messagerie :** contact\_center.engagement\_messagerie\_transcription\_completed (fournit une `url_de_transcription`)
* **Remarques :** contact\_center.engagement\_note\_added (fournit une `note` champ contenant les données de la note)
* **Disposition :** contact\_center.engagement\_disposition\_added (fournit une `disposition_name` champ contenant les données de disposition)

**Modèle recommandé : déclencher la récupération lorsque les données d'engagement sont prêtes**

Lorsque vous recevez `contact_center.cx_engagement_end_data_ready`, considérez cela comme le signal que les données du rapporter V2 de fin d'engagement sont complètes pour cet engagement. À ce moment-là, appelez l'API de données du journal d'engagement historique et toute autre API pertinente pour collecter l'ensemble final de données. Dans cet événement, utilisez `engagement_id` comme clé de recherche, puis récupérez les artefacts d'engagement complets depuis vos points de terminaison requis.

{% hint style="warning" %}
**Attention**

* **Soyez conscient de plusieurs événements :** Le `note_added` et `disposition_added` les événements peuvent se déclencher plusieurs fois pour un seul engagement (par exemple, si un agent enregistre plusieurs notes ou qu'un appel est transféré). Votre logique d'application doit pouvoir gérer cela.
* **Prévoyez de la redondance :** La livraison des événements n'est pas toujours garantie à 100 % (par exemple, votre point de terminaison ou votre connexion websocket peut être temporairement interrompue).
* **Stratégie de secours :** Nous recommandons d'exécuter un script de réconciliation à l'aide d'API de sondage avec `end_time_from` et `end_time_to` des fenêtres pour détecter les événements manqués et combler les lacunes de données.
  {% endhint %}

Pour plus d'informations sur les événements webhook/websocket de Zoom centre de contact, voir [Webhooks du centre de contact](https://developers.zoom.us/docs/api/contact-center/events/) documentation.

#### <mark style="color:bleu;">Intégrations des événements de flux</mark>

Pour certains types de données, vous pouvez envoyer des données directement à un système externe depuis l'éditeur de flux ZCC à l'aide d'un script d'événement JavaScript.

**Données prises en charge et limitations :**

* **Disposition :** Peut être accessible sur tous les types de canaux d'engagement entrants à l'aide de la `global_system.Engagement.disposition` variable.
* **Transcription :** Accessible uniquement pour les engagements de messagerie entrants (par exemple, Web Chat) à l'aide de la `global_system.Engagement.transcription` variable.
* **Flux multiples :** Lorsque vous travaillez avec plusieurs flux dans votre configuration, en particulier lorsqu'un flux utilise le `RouteTo` widget pour se connecter à un autre flux, il est essentiel de s'assurer que des scripts d'événement et des déclencheurs identiques sont correctement configurés dans tous les flux.

Cette méthode est la plus puissante dans un flux de messagerie, où vous pouvez combiner à la fois la transcription et la disposition dans un seul événement.

**Étapes de configuration**

Suivez ces étapes pour configurez votre flux :

{% stepper %}
{% step %}
**Ajout d'un script d'événement**

Dans votre flux ZCC (par exemple, un flux Web Chat), cliquez sur le widget Start.

Repérez les scripts d'événement et procédez à l'ajout d'un script d'événement pour les événements, tels que Engagement Closed et/ou Disposition Saved.

<div align="left"><figure><img src="https://4108585137-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FctBXUMeBy4rtLMmMkKRG%2Fuploads%2Fgit-blob-608a0caccf5697f0cda911a59ba832b2f5cf3fd6%2Fimage.png?alt=media" alt="Flow screen showing a welcome message and events."><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Ajout de votre JavaScript personnalisé**

L'exemple ci-dessous récupère à la fois la disposition et la transcription, puis les envoie ensemble à une API externe.

```javascript
async function main () { 
  try {
    // Obtenir l'objet disposition à partir de sa variable
    const disposition_data = var_get()['global_system.Engagement.disposition'];
    
    // Obtenir l'objet de transcription complet
    const transcription_data = await req.get(var_get()['global_system.Engagement.transcription']);

    // Préparez une charge utile avec toutes les données que vous souhaitez envoyer
    const payload_to_send = {
      disposition: disposition_data.data.result,
      transcription: transcription_data.data.result.transcription
    };

    // Définissez la destination de vos données
    const external_api_url = '<remplacez-avec-votre-point de terminaison d'API>';
    
    // Envoyez les données combinées à votre système externe
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Consignez la réponse du système externe pour le dépannage
    log.debug("Réponse de l'API externe : " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("Une erreur s'est produite dans le script d'événement de transcription : " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### Résumé et recommandations

Choisissez la méthode Intégrations qui correspond le mieux à votre flux de travail d'agent et à vos ressources techniques.

| Si vos agents utilisent...                                       | Alors, votre meilleure option est...                                        | Points clés à considérer :                                                                                                                                                                                                                                                                        |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Le Connecteur ZCC CTI dans un CRM pris en charge                 | Les Intégrations intégrées                                                  | <ul><li>Le chemin le plus simple</li><li>Aucun code requis</li><li>Synchroniser les données d'engagement est intégré</li></ul>                                                                                                                                                                    |
| L'application Zoom Workplace ou Smart Embed                      | Webhooks API plus rapprochement par interrogation filtrée en fin de période | <ul><li>Utiliser <code>contact\_center.cx\_engagement\_end\_data\_ready</code> comme déclencheur de récupération</li><li>Puis réconcilier avec <code>end\_time\_from</code>/<code>end\_time\_to</code> fenêtres</li><li>Améliore l’efficacité tout en réduisant les engagements manqués</li></ul> |
| Un flux de messagerie entrant (et besoin de pousser des données) | Scripts d’événement de flux                                                 | <ul><li>Niche, mais puissant</li><li>Nécessite JavaScript</li><li>Fonctionne mieux pour envoyer des transcriptions de messagerie et des statuts</li></ul>                                                                                                                                         |

En comprenant ces différents chemins, vous pouvez créer une Intégrations robuste et fiable qui vous donne une vue complète de vos interactions client. Combiner la récupération déclenchée par événement avec une réconciliation filtrée en fin de période permet de réduire les appels API inutiles tout en améliorant l’exhaustivité.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://library.zoom.com/technical-library/fr/services-affaires/zoom-contact-center/expert-insights/integrate-engagement-data.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
