> 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/nl/zakelijke-diensten/zoom-contact-center/expert-insights/integrate-engagement-data.md).

# Engagementgegevens integreren

### Overzicht

Zoom contactcenter genereert waardevolle interactiegegevens tijdens elke klantinteractie, waaronder bellen-opnamen, transcripten, agentnotities en afhandelingscodes. Lees verder om te leren hoe u interactiegegevens in externe systemen (bijvoorbeeld CRM en andere registratiesystemen) kunt opslaan om een uniform klantbeeld te creëren, effectieve agentcoaching te Inschakelen of te voldoen aan vereisten voor naleving bij het gebruik van Zoom contactcenter.

We zullen de verschillende Integratie(s)-methoden uitsplitsen om u te helpen: Kies de beste aanpak op basis van hoe uw agents met meer efficiëntie kunnen werken.

De beste methode hangt voornamelijk af van één sleutelfactor: **de applicatie waarin de agents hun interacties afhandelen**. De twee opties die we bespreken, zijn:

1. Agents die de kant-en-klare ZCC CRM CTI Connector binnen de CRM gebruiken.
2. Agents die in de Zoom Workplace app werken, waarvoor een aangepaste oplossing met ZCC-API's en webhooks vereist is.

***

### Kant-en-klare CRM CTI Connector Integratie(s)

Dit is de meest eenvoudige methode. Als uw agents een ZCC CRM CTI Connector gebruiken, kunnen de meeste interactiegegevens automatisch worden gesynchroniseerd tussen het Zoom Platform en de juiste CRM.

#### <mark style="color:blauw;">Hoe het werkt</mark>

De CTI Connector sluit de ZCC-agentinterface direct in de CRM in. Wanneer een interactie eindigt, worden gegevens zoals opnamen, transcripten, notities en afhandelingscodes automatisch binnen Zoom opgeslagen en gekoppeld aan het relevante opnemen (bijvoorbeeld een ticket of contactpersoon) in uw CRM.

#### <mark style="color:blauw;">Vereisten voor installatie</mark>

Functionaliteit waarmee synchronisatie van gegevens tussen Zoom en de CRM mogelijk is, komt "kant-en-klaar", maar vereist activering binnen het ZCC beheerportal.

Voltooi de volgende stappen:

{% stepper %}
{% step %}
**Inschakelen in ZCC-beheerportal**

Meld u aan bij het Zoom beheerportal als beheerder en ga naar Contactcenterbeheer > Integratie(s) > applicaties.

Zoek de relevante CRM-Integratie(s) en kies Inschakelen voor de juiste Instellingen om gegevensopslag in uw CRM te Toestaan.
{% endstep %}

{% step %}
**CRM-machtigingen**

Bekijk en volg de [handleidingen voor het instellen van CRM-Integratie(s)](https://support.zoom.com/) om te controleren of uw CRM-Integratie(s)-gebruiker de benodigde schrijfrechten heeft voor alle relevante objecten.
{% endstep %}
{% endstepper %}

#### <mark style="color:blauw;">Ondersteunde CRM-Platforms</mark>

Deze functionaliteit is toegankelijk via de ZCC CRM CTI Connector wanneer agents de volgende CRM's gebruiken:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Met de CRM CTI Connectors is geen speciale configuratie vereist en zal de Integratie(s) de interactiegegevens Standaard in de CRM opslaan.

***

### Aangepaste Integratie(s) via API's

Als uw agents de native Zoom Workplace app of ZCC Smart Embed gebruiken, hebt u een aangepaste oplossing nodig om interactiegegevens over te dragen. De belangrijkste manier om dit te doen, is met de Zoom contactcenter-API's.

Er zijn twee hoofdbenaderingen om via de API toegang te krijgen tot interactiegegevens:

* **Polling:** Vraag periodiek de Zoom API op om te zien of nieuwe interactiegegevens Beschikbaar zijn.
* **Webhooks:** Ontvang een realtime melding van Zoom zodra een transcript gereed is.

Er is ook een derde benadering, **Flow Events-Integratie(s)**, die werkt voor bepaalde gegevenstypen.

#### <mark style="color:blauw;">Het pollen van de Zoom contactcenter-API's</mark>

Om interactiegegevens te downloaden, moet u de juiste ZCC API-Eindpunten opvragen. Het is belangrijk op te merken dat verschillende gegevenstypen uit verschillende API's komen, dus u zult waarschijnlijk pollinglogica moeten bouwen voor elk relevant Eindpunt.

Veel interactiegerelateerde API's binnen Reports V2 (CX-analyse) ondersteunen nu filtering op eindtijd met `end_time_from` en `end_time_to`Geef de voorkeur aan deze parameters wanneer ze Beschikbaar zijn, zodat uw pollingtaken interacties ophalen op basis van wanneer ze daadwerkelijk zijn beëindigd. Dit helpt gemiste registraties te verminderen, omdat volledige interactiegegevens (inclusief report V2-gegevens) worden afgerond aan het einde van de interactie.

| Om deze gegevens op te halen...                             | Peiling van deze API...                                                                                                                                                                                                                                                                                                                                            | Dit veld gebruiken... | Opmerkingen:                                                               |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------- | -------------------------------------------------------------------------- |
| <p>Opnamemediabestand</p><p>(Spraak- en videokanaal)</p>    | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/get/contact_center/recordings">Opnames weergeven</a> of</p><p>Interactieopnames weergeven</p>                                                                                                                                                                                       | `download_url`        | Vereist dat gespreksopname is ingeschakeld voor de wachtrij.               |
| <p>Transcript van opname</p><p>(Spraak- en videokanaal)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Opnames weergeven</a> of</p><p>Interactieopnames weergeven</p>                                                                                                                                                                                       | `transcript_url`      | Vereist gespreksopname met transcriptie ingeschakeld.                      |
| <p>transcript</p><p>(kanaal voor berichtenverkeer)</p>      | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Haal een interactie op</a> of</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Toon historische interactieloggegevens</a></p> | `transcript_url`      | Transcriptie is standaard ingeschakeld voor kanalen voor berichtenverkeer. |
| <p>Beschikkingen</p><p>(Alle kanalen)</p>                   | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Haal een interactie op</a> of</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Toon historische interactieloggegevens</a></p> | `beschikkingen`       | Een array van beschikking-objecten.                                        |
| <p>Opmerkingen</p><p>(Alle kanalen)</p>                     | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Haal een interactie op</a> of</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Toon historische interactieloggegevens</a></p> | `opmerkingen`         | Een array van notitie-objecten.                                            |
| <p>Voicemailmediabestand</p><p><br><br></p>                 | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Toon de inboxberichten van een account</a> <strong>of</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Toon de berichten van een inbox</a></p>              | `download_url`        | Voor voicemails die zijn achtergelaten in een contactcenter-inbox.         |
| Transcript van voicemail                                    | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Toon de inboxberichten van een account</a> <strong>of</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Toon de berichten van een inbox</a></p>              | `transcript_url`      | Vereist dat transcriptie is ingeschakeld voor de inbox.                    |

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

De download-URL's (`download_url`, `transcript_url`, `playback_url`, enzovoort) die door deze Zoom API's worden verstrekt, zijn **niet** openbare links. Ze zijn bedoeld voor programmatische toegang en vereisen API-authenticatie (bijvoorbeeld Access token in de Authorization-header) om het bijbehorende bestand te downloaden.

Dat betekent:

* Je kunt deze URL's niet rechtstreeks in een CRM opslaan zodat een gebruiker erop kan klikken. Een gebruiker die op de link in zijn Browser klikt, is niet geauthenticeerd en de download zal mislukken.
* De juiste methode is dat je backendservice de URL gebruikt om het bestand op te halen. Je service kan het bestand vervolgens opslaan in je eigen systeem (zoals Amazon S3, Azure Blob Storage of de bestandsopslag van je CRM) en vanaf daar een beveiligde link aan je gebruikers bieden.
  {% endhint %}

{% hint style="warning" %}
**Let op**

**Verwerkingsvertragingen - spraak- en video-opnames:**

Deze gegevens zijn niet direct beschikbaar zodra een gesprek eindigt. De audio moet eerst worden verwerkt en geüpload, wat bij lange gesprekken enkele minuten kan duren. Om ervoor te zorgen dat je geen opnames mist, stel de `query_date_type` parameter in op `recording_end_time` wanneer je de List recordings API bevraagt. Hiermee worden gegevens opgehaald op basis van wanneer de verwerking is voltooid, niet wanneer het gesprek eindigde.

Voor afstemmingsjobs in Reports V2 (CX analyse) die gericht zijn op interacties, gebruik overlappende tijdvensters met `end_time_from` en `end_time_to` om een veiligheidsmarge te bieden voor vertraagde verwerking en tijdelijke leveringsproblemen.
{% endhint %}

Zie voor meer info over Zoom contactcenter-API's, [contactcenter-API's](https://developers.zoom.us/docs/api/contact-center/) documentatie.

#### <mark style="color:blauw;">Gebruik webhooks voor realtime-gebeurtenissen</mark>

Voor een meer directe, Evenement-gestuurde aanpak kunt u zich abonneren op ZCC-webhooks. Dit is de meest efficiënte methode voor Integratie(s) in bijna realtime.

**Hoe het werkt**

1. Abonneer je op de juiste events in de Zoom App Marketplace.
2. Wanneer een Evenement plaatsvindt, stuurt Zoom een Melding naar uw webhook-URL (of naar uw WebSocket-verbinding).
3. De Evenement-payload bevat de gegevens die je nodig hebt, rechtstreeks of als een URL/ID voor een vervolg-API-bellen.

**Veelvoorkomende webhook-gebeurtenissen voor betrokkenheidsgegevens**

* **Eindgegevens voor betrokkenheid gereed:** contactpersoon\_center.cx\_engagement\_end\_data\_ready (geeft aan dat de gegevens van rapport V2 voor het einde van de betrokkenheid klaar zijn om op te halen)
* **Spraak-/video-opname:** contactpersoon\_center.recording\_completed (biedt een `download_url`)
* **Spraak/video transcript:** contactpersoon\_center.recording\_transcript\_completed (biedt een `transcript_url`)
* **berichtenverkeer transcript:** contactpersoon\_center.engagement\_berichtenverkeer\_transcript\_completed (biedt een `transcript_url`)
* **Opmerkingen:** contactpersoon\_center.engagement\_note\_added (biedt een `notitie` veld met de notitiegegevens)
* **beschikking:** contactpersoon\_center.engagement\_beschikking\_added (biedt een `beschikking_name` veld met de beschikkinggegevens)

**Aanbevolen patroon: activeer het ophalen wanneer engagementgegevens gereed zijn**

Wanneer u ontvangt `contactpersoon_center.cx_engagement_end_data_ready`, beschouw dit als uw signaal dat de gegevens van rapport V2 over het einde van de engagement voor die engagement compleet zijn. Op dat moment is het tijd om te bellen: de Historical Engagement-loggegevens-API en alle andere relevante API's om de definitieve gegevensset te verzamelen. In dit Evenement, gebruik `engagement_id` als uw opzoeksleutel en haal daarna de volledige engagementartefacten op uit uw vereiste eindpunten.

{% hint style="warning" %}
**Let op**

* **Wees bedacht op meerdere Evenementen:** De `notitie_toegevoegd` en `beschikking_toegevoegd` Evenementen kunnen meerdere keren worden geactiveerd voor één enkele interactie (bijvoorbeeld als een agent meerdere notities opslaat of als een bellen wordt doorverbonden). Uw applicatielogica moet dit kunnen verwerken.
* **Zorg voor redundantie:** Evenementlevering is niet altijd 100% gegarandeerd (bijvoorbeeld als uw Eindpunt of websocketverbinding tijdelijk niet beschikbaar is).
* **Back-upstrategie:** We raden aan een reconciliatiescript uit te voeren met polling-API's met `end_time_from` en `end_time_to` vensters om gemiste Evenementen op te vangen en datakloven te dichten.
  {% endhint %}

Voor meer info over Zoom contactcenter webhook/websocket-evenementen, zie [contactcenter webhooks](https://developers.zoom.us/docs/api/contact-center/events/) documentatie.

#### <mark style="color:blauw;">Flow Evenementen Integratie(s)</mark>

Voor bepaalde gegevenstypen kunt u gegevens rechtstreeks naar een extern systeem pushen vanuit de ZCC Flow-editor met behulp van een JavaScript Evenement Script.

**Ondersteunde gegevens en beperkingen:**

* **beschikking:** Kan worden geopend op alle typen Inkomend engagementkanaal met behulp van de `global_system.Engagement.beschikking` variabele.
* **transcript:** Alleen toegankelijk voor Inkomend berichtenverkeer-engagements (bijvoorbeeld Web chatbericht) met behulp van de `global_system.Engagement.transcript` variabele.
* **Meerdere flows:** Wanneer je met meerdere Flows in je configuratie werkt, vooral wanneer één Flow de `RouteTo` widget gebruikt om verbinding te maken met een andere Flow, is het essentieel ervoor te zorgen dat identieke Evenement Scripts en triggers correct zijn geconfigureerd in alle Flows.

Deze methode is het krachtigst in een berichtenverkeer-flow, waar je zowel het transcript als de beschikking kunt combineren in één enkel Evenement.

**Configuratiestappen**

Volg deze stappen om je flow te Configureer:

{% stepper %}
{% step %}
**Een Evenement Script Toevoegen**

Klik in je ZCC-flow (bijvoorbeeld een Web chatbericht-flow) op de Start-widget.

Zoek Evenement Scripts en klik op Toevoegen voor een Evenement Script voor gebeurtenissen, zoals Engagement Closed en/of beschikking opgeslagen.

<div align="left"><figure><img src="/files/dbd40eb9032b581a0e047a6e0af91fe2d0a5f917" alt="Flow screen showing a welcome message and events."><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**Je aangepaste JavaScript Toevoegen**

Het onderstaande voorbeeld haalt zowel de beschikking als het transcript op en verzendt ze vervolgens samen naar een externe API.

```javascript
async function main () { 
  try {
    // Haal het beschikking-object op uit zijn variabele
    const beschikking_data = var_get()['global_system.Engagement.beschikking'];
    
    // Haal het volledige transcript-object op
    const transcript_data = await req.get(var_get()['global_system.Engagement.transcript']);

    // Bereid een payload voor met alle gegevens die je wilt verzenden
    const payload_to_send = {
      beschikking: beschikking_data.data.result,
      transcript: transcript_data.data.result.transcript
    };

    // Definieer de bestemming voor je gegevens
    const external_api_url = '<vervang-door-je-API-Eindpunt>';
    
    // Verzend de gecombineerde gegevens naar je externe systeem
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Log de respons van het externe systeem voor probleemoplossing
    log.debug("Externe API-respons: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("Er is een fout opgetreden in het transcript Evenement Script: " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### Samenvatting en aanbevelingen

Kies de Integratie(s)-methode die het beste aansluit bij de workflow van je agents en je technische middelen.

| Als je agents ... gebruiken                                  | Dan is je beste optie ...                                       | Belangrijke overwegingen:                                                                                                                                                                                                                                                                   |
| ------------------------------------------------------------ | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| De ZCC CTI Connector in een ondersteunde CRM                 | De ingebouwde Integratie(s)                                     | <ul><li>Eenvoudigste pad</li><li>Geen code vereist</li><li>Synchroniseren van engagementgegevens is ingebouwd</li></ul>                                                                                                                                                                     |
| De Zoom Workplace app of Smart Embed                         | API-webhooks plus met eindtijd gefilterde polling-reconciliatie | <ul><li>Gebruik <code>contactpersoon\_center.cx\_engagement\_end\_data\_ready</code> als je ophaaltrigger</li><li>Reconcilieer vervolgens met <code>end\_time\_from</code>/<code>end\_time\_to</code> vensters</li><li>Verbetert de efficiëntie en vermindert gemiste engagements</li></ul> |
| Een Inkomend berichtenverkeer-flow (en gegevens moet pushen) | Flow Evenement Scripts                                          | <ul><li>Niche, maar krachtig</li><li>Vereist JavaScript</li><li>Werkt het best voor het verzenden van berichtenverkeer-transcripten en disposities</li></ul>                                                                                                                                |

Door deze verschillende paden te begrijpen, kun je een robuuste en betrouwbare Integratie(s) bouwen die je een compleet beeld geeft van je klantinteracties. Door op Evenement getriggerde ophaalacties te combineren met op eindtijd gefilterde reconciliatie, kun je onnodige API-aanroepen verminderen en tegelijkertijd de volledigheid verbeteren.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://library.zoom.com/technical-library/nl/zakelijke-diensten/zoom-contact-center/expert-insights/integrate-engagement-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
