# Betrokkenheidsgegevens integreren

### Overzicht

Zoom contactcenter genereert waardevolle engagementgegevens tijdens elke klantinteractie, inclusief opnamen van bellen, transcripties, notities van agenten en dispositions. Lees verder om te leren hoe u engagementgegevens kunt opslaan in externe systemen (bijvoorbeeld CRM en andere systemen van opnemen) om een uniform klantoverzicht te creëren, effectieve coaching van agenten Inschakelen, of te voldoen aan nalevingsvereisten bij het gebruik van Zoom contactcenter.

We zullen de verschillende Integratie(s)-methoden uiteenzetten 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 voornamelijk af van één belangrijke factor: **de applicatie waarin de agenten hun interacties afhandelen**. De twee opties die we 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.

***

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

Dit is de meest eenvoudige methode. Als uw agenten een ZCC CRM CTI Connector gebruiken, kunnen 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 ZCC-agentinterface rechtstreeks in de CRM in. Wanneer een interactie eindigt, worden gegevens zoals opnames, transcripties, notities en dispositions automatisch opgeslagen in Zoom en gekoppeld aan het relevante opnemen (bijvoorbeeld een ticket of contactpersoon) in uw CRM.

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

Functionaliteit die synchronisatie van gegevens tussen Zoom en de CRM toestaat, is standaard aanwezig, maar vereist activering in het ZCC-beheerportal.

Voltooi de volgende stappen:

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

Meld u aan bij het Zoom-beheerportal als beheerder en ga naar Beheer van contactcenter > Integraties > Toepassingen.

Zoek de relevante CRM-Integratie en schakel de juiste Instellingen in om Toestaan van gegevensopslag in uw CRM mogelijk te maken.
{% endstep %}

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

Bekijk en volg de [Handleidingen voor het instellen van CRM Integratie(s)](https://support.zoom.com/) om te verifiëren dat uw CRM Integratie(s)-gebruiker over de benodigde schrijfrechten beschikt 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 de Integratie(s) slaat de engagementgegevens standaard op in het CRM.

***

### Aangepaste Integratie via API's

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

Er zijn twee hoofdbenaderingen om engagementgegevens via de API te Accessen:

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

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

#### <mark style="color:blauw;">Het 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 soorten gegevens afkomstig zijn van verschillende API's, dus u zult waarschijnlijk peillogica moeten bouwen voor elk relevant Eindpunt.

| Om deze gegevens te verkrijgen...                         | Deze API opvragen...                                                                                                                                                                                                                                                                                                                                    | Dit veld gebruiken... | 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">Opnamen weergeven</a> of</p><p>Wachtrijopnamen weergeven</p>                                                                                                                                                                              | `download_url`        | Vereist dat gespreksopname is ingeschakeld voor de wachtrij.               |
| <p>Opnametranscript</p><p>(Spraak- en videokanaal)</p>    | [Betrokkenheden weergeven](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                          | `transcript_url`      | Vereist dat gespreksopname met transcriptie is ingeschakeld.               |
| <p>transcript</p><p>(Berichtenverkeerkanaal)</p>          | [Betrokkenheden weergeven](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                          | `transcript_url`      | Transcript is standaard ingeschakeld voor berichtenverkeerskanalen.        |
| <p>Disposities</p><p>(Alle kanalen)</p>                   | [Betrokkenheden weergeven](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                          | `beschikkingen`       | Een array van beschikkingsobjecten.                                        |
| <p>Notities</p><p>(Alle kanalen)</p>                      | [Betrokkenheden weergeven](https://developers.zoom.us/docs/api/contact-center/#tag/engagements/GET/contact_center/engagements)                                                                                                                                                                                                                          | `notities`            | Een array van 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">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. |
| Voicemail transcript                                      | <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`, 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 opslaan in een CRM zodat een gebruiker erop kan klikken. Een gebruiker die op de link klikt in zijn Browser, wordt niet geverifieerd en het downloaden zal mislukken.
* De juiste methode is dat uw back-endsysteem 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 - Spraak- en video-opnamen:**

Deze gegevens zijn niet beschikbaar op het moment dat 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 u geen opnames mist, stelt u de `query_date_type` parameter in op `recording_end_time` wanneer u de API voor opnamelijsten opvraagt. Hiermee worden gegevens opgehaald op basis van wanneer de verwerking is voltooid, niet wanneer het gesprek is geëindigd.
{% endhint %}

Voor meer informatie 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 Evenementen</mark>

Voor een directere, gebeurtenisgestuurde 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 u op de juiste gebeurtenissen in de Zoom App Marketplace.
2. Wanneer een Evenement optreedt, 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.

**Algemene webhook-gebeurtenissen voor betrokkenheidsgegevens**

* **Spraak-/videorecording:** 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 notitiedata)
* **Beschikking:** contactpersoon\_center.engagement\_beschikking\_added (biedt een `beschikking_name` veld met de beschikkingdata)

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

* **Wees alert op meerdere gebeurtenissen:** De `notitie_toegevoegd` en `beschikking_toegevoegd` Evenementen kunnen meerdere keren optreden voor één interactie (bijvoorbeeld als een agent meerdere notities opslaat of als een bellen wordt doorverbonden). Uw applicatie-logica moet dit kunnen verwerken.
* **Bouw redundantie in:** De levering van Evenementen is niet altijd 100% gegarandeerd (bijvoorbeeld als uw Eindpunt of websocketverbinding tijdelijk niet beschikbaar is).
* **Back-upstrategie:** We raden aan om 's nachts een reconciliatiescript uit te voeren met behulp van polling-API's om gemiste evenementen op te vangen.
  {% 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 vanuit de ZCC Flow-editor naar een extern systeem pushen met behulp van een JavaScript Evenement-script.

**Ondersteunde gegevens en beperkingen:**

* **Beschikking:** Is toegankelijk op alle typen Inkomend betrokkenheidskanaal met behulp van de `global_system.Engagement.beschikking` variabele.
* **Transcript:** Alleen toegankelijk voor Inkomend berichtenverkeer-betrokkenheden (bijvoorbeeld Webchat) 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 om 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 u zowel het transcript als de beschikking in één Evenement kunt combineren.

**Configuratiestappen**

Volg deze stappen om je flow te Configureer:

{% stepper %}
{% step %}
**Voeg een Evenement-script toe**

In uw ZCC Flow (bijvoorbeeld een Web chatbericht-flow), klikt u op de Start-widget.

Zoek Evenement Scripts en Toevoegen een Evenement Script voor Evenementen, zoals Engagement Closed en/of beschikking Saved.

<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 %}
**Toevoegen van uw aangepaste JavaScript**

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']);

    // 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 het antwoord 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 agentworkflow en 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>Makkelijkste route</li><li>Geen code nodig</li><li>Synchroniseren van engagementgegevens is ingebouwd</li></ul>                                       |
| De Zoom Workplace app of Smart Embed                                   | API-webhooks met een nachtelijke pollingtaak voor reconciliatie | <ul><li>Meest robuuste maatwerkoplossing</li><li>Biedt gegevens in bijna realtime met een betrouwbaar back-upproces</li></ul>                                 |
| Een Inkomend berichtenverkeer Flow (en behoefte om gegevens te pushen) | Flow Evenement-scripts                                          | <ul><li>Niche, maar krachtig</li><li>Vereist JavaScript</li><li>Werkt het beste voor het verzenden van berichtenverkeertranscripten en dispositions</li></ul> |

Door deze verschillende paden te begrijpen, kun je een robuuste en betrouwbare Integratie(s) bouwen die je een volledig beeld geeft van je klantinteracties.
