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

# Integreer engagementgegevens

Geschreven door Justin Steinberg

### Overzicht

Zoom contactcenter genereert waardevolle interactiegegevens tijdens elke klantinteractie, waaronder gespreksopnames, transcripten, notities van agenten en uitkomsten. Lees verder om te leren hoe u interactiegegevens opslaat 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 nalevingseisen bij het gebruik van Zoom contactcenter.

We zullen de verschillende Integratie(s)-methoden uitsplitsen om u te helpen de beste aanpak te kiezen 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 het CRM gebruiken.
2. Agenten die werken in de Zoom Workplace app, waarvoor een maatwerkoplossing met ZCC API's en webhooks nodig is.

***

### Standaard CRM CTI Connector Integratie(s)

Dit is de meest rechttoe rechtaan methode. Als uw agenten een ZCC CRM CTI Connector gebruiken, kan het merendeel van de interactiegegevens automatisch worden gesynchroniseerd tussen het Zoom Platform en het juiste CRM.

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

De CTI Connector integreert de ZCC-agentinterface rechtstreeks in het CRM. Wanneer een interactie eindigt, worden gegevens zoals opnames, transcripten, notities en uitkomsten automatisch opgeslagen in Zoom en gekoppeld aan het relevante CRM-item (bijvoorbeeld een ticket of contactpersoon) in uw CRM.

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

Functionaliteit waarmee gegevens tussen Zoom en het CRM kunnen worden gesynchroniseerd, is "out of the box" beschikbaar, maar vereist activering in de ZCC-beheerportal.

Volg de volgende stappen:

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

Log in op de Zoom-beheerportal als beheerder. In de [Beheerdercentrum](https://zoom.com/account), ga naar CX-beheer → contactcenter → Integratie(s) → [Applicaties](https://zoom.com/cci/index/admin#/admin-integrations).

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

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

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

#### <mark style="color:blauw;">Ondersteunde CRM-Platformen</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 de Integratie(s)-oplossing slaat de interactiegegevens standaard op in het CRM.

***

### Maatwerk-Integratie(s) via API's

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

Er zijn twee belangrijke manieren 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 klaar is.

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

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

Om interactiegegevens te downloaden, moet u de juiste ZCC API-Eindpunten opvragen. Het is belangrijk om te weten dat verschillende soorten gegevens uit verschillende API's komen, dus u moet waarschijnlijk pollinglogica voor elk relevant Eindpunt bouwen.

Veel API's voor interactiegegevens 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 bij het einde van de interactie.

| Om deze gegevens op te halen...                                | Vraag deze API op...                                                                                                                                                                                                                                                                                                                                                              | Gebruik dit veld... | Opmerkingen:                                                               |
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -------------------------------------------------------------------------- |
| <p>Opname-mediabestand</p><p>(Spraak- en videokanaal)</p>      | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/get/contact_center/recordings">Lijst met opnames</a> of</p><p>Lijst met Engagement-opnames</p>                                                                                                                                                                                                     | `download_url`      | Vereist dat gespreksopname is ingeschakeld voor de wachtrij.               |
| <p>transcript van de opname</p><p>(Spraak- en videokanaal)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Lijst met opnames</a> of</p><p>Lijst met Engagement-opnames</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 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">Maak een lijst van historische engagementloggegevens</a></p>  | `transcript_url`    | Transcript is Standaard ingeschakeld voor berichtenverkeerskanalen.        |
| <p>Uitkomsten</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">Maak een lijst van historische engagementloggegevens</a></p>  | `beschikkingen`     | Een array met beschikkingobjecten.                                         |
| <p>Notities</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">Maak een lijst van historische engagementloggegevens</a></p>  | `notities`          | Een array met notitieobjecten.                                             |
| <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">Maak een lijst van 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">Maak een lijst van de berichten van een inbox</a></p> | `download_url`      | Voor voicemailberichten die zijn achtergelaten in een contactcenter-inbox. |
| voicemail transcript                                           | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Maak een lijst van 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">Maak een lijst van 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 geleverd, zijn **niet** openbare links. Ze zijn bedoeld voor programmatische toegang en vereisen API-authenticatie (bijvoorbeeld een Access token in de Authorization-header) om het bijbehorende bestand te downloaden.

Dit betekent:

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

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

**Verwerkingsvertragingen - Voice- en video-opnamen:**

Deze gegevens zijn niet Beschikbaar onmiddellijk nadat een bellen eindigt. De audio moet eerst worden verwerkt en geüpload, wat voor lange bellen enkele minuten kan duren. Om ervoor te zorgen dat je geen opnames mist, stel de `query_date_type` parameter in op `recording_end_time` bij het pollen van de List recordings API. Dit haalt gegevens op op basis van wanneer de verwerking is voltooid, niet wanneer de bellen eindigde.

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

Raadpleeg voor meer informatie 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-evenementen</mark>

Voor een directere, door Evenementen aangestuurde aanpak kunt u zich abonneren op ZCC-webhooks. Dit is de meest efficiënte methode voor een bijna realtime Integratie(s).

**Hoe het werkt**

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

**Veelvoorkomende webhook-Evenementen voor betrokkenheidsgegevens**

* **Betrokkenheid einde gegevens 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:** contactcenter.opname\_transcript\_voltooid (biedt een `transcript_url`)
* **Transcript voor berichtenverkeer:** contactcenter.engagement\_berichtenverkeer\_transcript\_voltooid (biedt een `transcript_url`)
* **Opmerkingen:** contactcenter.engagement\_notitie\_toegevoegd (biedt een `notitie` veld met de notitiegegevens)
* **Beschikking:** contactcenter.engagement\_beschikking\_toegevoegd (biedt een `beschikking_naam` veld met de beschikkinggegevens)

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

Wanneer u ontvangt `contactcenter.cx_engagement_eind_data_gereed`, beschouw dit als uw signaal dat de gegevens van rapport V2 voor het einde van de engagement compleet zijn. Op dat moment, bel de API voor historische engagementloggegevens en alle andere relevante API's om de uiteindelijke dataset te verzamelen. Gebruik in dit geval `engagement_id` als uw zoeksleutel en haal vervolgens de volledige engagementartefacten op van 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 engagement (bijvoorbeeld als een agent meerdere notities opslaat of een gesprek wordt doorverbonden). De logica van uw applicatie moet hiermee kunnen omgaan.
* **Bouw redundantie in:** Levering van Evenementen is niet altijd 100% gegarandeerd (bijvoorbeeld als uw eindpunt of websocketverbinding tijdelijk uitvalt).
* **Back-upstrategie:** Wij raden aan een reconciliatiescript uit te voeren met polling-API's en tijdvensters om gemiste Evenementen op te vangen en gegevensgaten te dichten. `end_time_from` en `end_time_to` Voor meer info over Zoom contactcenter webhook-/websocketevenementen, zie
  {% endhint %}

contactcenter Webhooks [Flow Evenementen Integratie(s)](https://developers.zoom.us/docs/api/contact-center/events/) documentatie.

#### <mark style="color:blauw;">Voor bepaalde gegevenstypen kunt u gegevens rechtstreeks vanuit de ZCC Flow-editor naar een extern systeem versturen met behulp van een JavaScript Evenementscript.</mark>

Ondersteunde gegevens en beperkingen:

**Is toegankelijk voor alle Inkomend engagementkanaaltypen met behulp van de**

* **Beschikking:** global\_system.Engagement.beschikking `variabele.` Transcript:
* **Alleen toegankelijk voor Inkomend berichtenverkeer-engagements (bijvoorbeeld Web chatbericht) met behulp van de** global\_system.Engagement.transcript `Meerdere Flows:` Transcript:
* **Wanneer u met meerdere Flows in uw configuratie werkt, met name wanneer één Flow de** RouteTo `widget gebruikt om verbinding te maken met een andere Flow, is het essentieel om ervoor te zorgen dat identieke Evenementscripts en triggers correct zijn geconfigureerd in alle Flows.` Deze methode is het krachtigst in een Flow voor berichtenverkeer, waar u zowel het transcript als de beschikking in één Evenement kunt combineren.

Configuratiestappen

**Configureer uw flow:**

Voeg een Evenementscript toe

{% stepper %}
{% step %}
**Klik in uw ZCC Flow (bijvoorbeeld een Web chatbericht-flow) op de Start-widget.**

Zoek Evenementscripts en voeg een Evenementscript toe voor Evenementen zoals engagement gesloten en/of beschikking opgeslagen.

Voeg uw aangepaste JavaScript toe

<div align="left"><figure><img src="https://3901650588-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 %}
**Het onderstaande voorbeeld haalt zowel de beschikking als het transcript op en stuurt ze vervolgens samen naar een externe API.**

async function main () {

```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-met-je-API-Eindpunt>';
    
    // Stuur de gecombineerde gegevens naar je externe systeem
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Log de reactie van het externe systeem voor probleemoplossing
    log.debug("Reactie van externe API: " + 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 je agent-workflow en technische middelen.

| Als je agents gebruiken...                                         | Dan is je beste optie...                                           | Belangrijke aandachtspunten:                                                                                                                                                                                                                                                         |
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| De ZCC CTI Connector in een ondersteunde CRM                       | De ingebouwde Integratie(s)                                        | <ul><li>Gemakkelijkste route</li><li>Geen code vereist</li><li>Synchroniseren van Engagement-data is ingebouwd</li></ul>                                                                                                                                                             |
| De Zoom Workplace app of Smart Embed                               | API-webhooks plus reconciliatie met op eindtijd gefilterde polling | <ul><li>Gebruik <code>contactcenter.cx\_engagement\_eind\_data\_gereed</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 noodzaak om data te 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 beschikkingen</li></ul>                                                                                                                       |

Door deze verschillende paden te begrijpen, kun je een robuuste en betrouwbare Integratie(s) bouwen die je een compleet overzicht geeft van je klantinteracties. Het combineren van op Evenement getriggerde opvraging met reconciliatie gefilterd op eindtijd helpt je onnodige API-aanroepen te verminderen en 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 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/nl/zakelijke-services/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.
