> 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).

# Integreer engagementgegevens

### Overzicht

Zoom contactcenter genereert waardevolle engagementgegevens tijdens elke klantinteractie, waaronder gespreksopnamen, transcript, notities van de agent en afhandelingscodes. Lees verder om te leren hoe u engagementgegevens kunt opslaan in externe systemen (bijvoorbeeld CRM- en andere bronsystemen) om een uniform klantbeeld te creëren, effectieve coaching van agenten mogelijk te maken of te voldoen aan nalevingsvereisten bij het gebruik van Zoom contactcenter.

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

De beste methode hangt vooral af van één belangrijke factor: **de applicatie waarin de agenten hun interacties afhandelen**. De twee opties die we zullen bespreken zijn:

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

***

### Integratie(s) van de kant-en-klare CRM CTI Connector

Dit is de meest eenvoudige methode. Als uw agenten een ZCC CRM CTI Connector gebruiken, kan de meeste engagementgegevens automatisch worden gesynchroniseerd tussen het Zoom-Platform en de juiste CRM.

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

De CTI Connector voegt de agentinterface van ZCC rechtstreeks in de CRM in. Wanneer een interactie eindigt, worden gegevens zoals opnamen, transcript, notities en afhandelingscodes automatisch opgeslagen in Zoom en gekoppeld aan het relevante dossier (bijvoorbeeld een ticket of contactpersoon) in uw CRM.

#### <mark style="color:blauw;">Installatievereisten</mark>

Functionaliteit waarmee gegevens tussen Zoom en de CRM kunnen worden gesynchroniseerd, is 'standaard' beschikbaar, maar vereist activering in de ZCC-beheerportal.

Voltooi de volgende stappen:

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

Log in op de Zoom-beheerportal als beheerder en navigeer naar Contactcenterbeheer > Integraties > applicaties.

Zoek de relevante CRM-Integratie(s) en schakel de juiste Instellingen in om gegevensopslag in uw CRM toe te staan.
{% endstep %}

{% step %}
**CRM-rechten**

Bekijk en volg de [CRM-Integratie(s)-installatiehandleidingen](https://support.zoom.com/) om te verifiëren dat de gebruiker van uw CRM-Integratie(s) over de benodigde schrijfrechten voor alle relevante objecten beschikt.
{% endstep %}
{% endstepper %}

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

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

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Met de CRM CTI-connectors is geen speciale configuratie vereist, en slaat deze integratie de engagementgegevens standaard op in de CRM.

***

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

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

Er zijn twee belangrijke benaderingen om via de API toegang te krijgen tot engagementgegevens:

* **Peiling:** Vraag de Zoom API periodiek op om te zien of nieuwe engagementgegevens beschikbaar zijn.
* **Webhooks:** Ontvang direct een real-time Melding van Zoom zodra een transcript klaar is.

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

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

Om engagementgegevens 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 voor elk relevant eindpunt peillogica moeten bouwen.

Veel API's voor engagementgerelateerde gegevens binnen Reports V2 (CX analyse) ondersteunen nu filtering op eindtijd met `end_time_from` en `end_time_to`. Gebruik deze parameters bij voorkeur wanneer ze beschikbaar zijn, zodat uw peiltaken engagements ophalen op basis van wanneer ze daadwerkelijk zijn beëindigd. Dit helpt gemiste dossiers te verminderen, omdat alle engagementgegevens (inclusief Report V2-gegevens) worden afgerond aan het einde van de interactie.

| Om deze gegevens te krijgen...                           | Peil 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">Lijst opnames</a> of</p><p>Lijst engagementopnames</p>                                                                                                                                                                                                | `download_url`        | Vereist dat gespreksopname is ingeschakeld voor de wachtrij.               |
| <p>Opnametranscript</p><p>(Spraak- en videokanaal)</p>   | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Lijst opnames</a> of</p><p>Lijst engagementopnames</p>                                                                                                                                                                                                | `transcript_url`      | Vereist gespreksopname met transcriptie ingeschakeld.                      |
| <p>Transcript</p><p>(berichtenverkeerkanaal)</p>         | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Haal een engagement 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">Lijst historische engagementloggegevens</a></p> | `transcript_url`      | Transcriptie is standaard ingeschakeld voor berichtenverkeerskanalen.      |
| <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 engagement 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">Lijst historische engagementloggegevens</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 engagement 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">Lijst historische engagementloggegevens</a></p> | `opmerkingen`         | Een array van notitie-objecten.                                            |
| <p>Voicemail-mediabestand</p><p><br><br></p>             | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Lijst 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">Lijst de berichten van een inbox</a></p>             | `download_url`        | Voor voicemailberichten die zijn achtergelaten in een contactcenter-inbox. |
| Voicemailtranscript                                      | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Lijst 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">Lijst 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`, en dergelijke) die door deze Zoom API's worden geleverd, zijn **geen** openbare links. Ze zijn bedoeld voor programmatische toegang en vereisen API-authenticatie (bijvoorbeeld een toegangstoken in de Authorization-header) om het bijbehorende bestand te downloaden.

Dit betekent:

* Je kunt deze URL's niet rechtstreeks opslaan in een CRM zodat een gebruiker erop kan klikken. Een gebruiker die op de link in zijn Browser klikt, is niet geauthenticeerd en de download mislukt.
* 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 bellen eindigt. De audio moet eerst worden verwerkt en geüpload, wat bij lange bellen enkele minuten kan duren. Om ervoor te zorgen dat je opnames niet mist, stel de `query_date_type` parameter instelt op `recording_end_time` wanneer je de List recordings API peilt. Dit haalt gegevens op op basis van wanneer de verwerking is afgerond, niet wanneer het bellen eindigde.

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

Voor meer info over Zoom Contactcenter-API's, zie [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-gedreven aanpak kunt u zich abonneren op ZCC-webhooks. Dit is de meest efficiënte methode voor bijna realtime Integratie(s).

**Hoe het werkt**

1. Abonneer je op de juiste gebeurtenissen in de Zoom App Marketplace.
2. Wanneer een Evenement plaatsvindt, stuurt Zoom een Melding naar je webhook-URL (of naar je 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 webhookgebeurtenissen voor betrokkenheidsgegevens**

* **Engagement-eindgegevens 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-/videotranscript:** 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: het ophalen triggeren wanneer engagementgegevens gereed zijn**

Wanneer je ontvangt `contactpersoon_center.cx_engagement_end_data_ready`, beschouw het als je signaal dat de V2-gegevens van het engagement-eindrapport compleet zijn voor dat engagement. Op dat moment, bel de API voor historische engagementloggegevens en alle andere relevante API's om de definitieve gegevensset te verzamelen. Gebruik in dit Evenement, `engagement_id` als je lookup-sleutel en haal vervolgens de volledige engagementartefacten op van je vereiste eindpunten.

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

* **Wees je bewust van 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.
* **Bouw redundantie in:** De aflevering van Evenementen is niet altijd 100% gegarandeerd (bijvoorbeeld omdat 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` tijdvensters om gemiste evenementen op te vangen en datagaten te dichten.
  {% endhint %}

Voor meer informatie 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 vanuit de ZCC Flow-editor naar een extern systeem pushen met behulp van een JavaScript Evenement-script.

**Ondersteunde gegevens & beperkingen:**

* **Beschikking:** Kan worden geopend op alle Inkomend engagement-kanaaltypen 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 u met meerdere Flows in uw 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, waarin u zowel het transcript als de beschikking in één Evenement kunt combineren.

**Configuratiestappen**

Volg deze stappen om uw flow te Configureer:

{% stepper %}
{% step %}
**Een Evenement-script Toevoegen**

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

Zoek Evenement-scripts en een Evenement-script Toevoegen voor Evenementen, 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 %}
**Uw aangepaste JavaScript Toevoegen**

Het onderstaande voorbeeld haalt zowel de beschikking als het transcript op en stuurt 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']);

    // Stel een payload samen 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-met-je-API-Eindpunt>';
    
    // Stuur de gecombineerde gegevens naar je externe systeem
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Registreer de reactie van het externe systeem voor probleemoplossing
    log.debug("Externe API-reactie: " + 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 agenten en je technische middelen.

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

Door deze verschillende paden te begrijpen, kunt u een robuuste en betrouwbare Integratie(s) opbouwen die u een volledig overzicht geeft van uw klantinteracties. Door op Evenement gebaseerde opvraging te combineren met reconciliatie gefilterd op eindtijd, helpt dit u onnodige API-aanroepen te verminderen en tegelijkertijd de volledigheid te 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
