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

# Engagement-Daten integrieren

### Übersicht

Zoom Contact Center generiert während jeder Kundeninteraktion wertvolle Erfassungsdaten, einschließlich Anrufaufzeichnungen, Transkripten, Agentennotizen und Dispositionen. Lesen Sie weiter, um zu erfahren, wie Sie Erfassungsdaten in externen Systemen (z. B. CRM und anderen Systemen der Aufzeichnung) speichern, um eine einheitliche Kundenansicht zu erstellen, eine effektive Agenten-Coaching zu ermöglichen oder Compliance-Anforderungen zu erfüllen, wenn Sie Zoom Contact Center verwenden.

Wir werden die verschiedenen Integration-Methoden aufschlüsseln, um Ihnen zu helfen, den besten Ansatz zu Wählen, basierend darauf, wie Ihre Agenten mit erhöhter Effizienz arbeiten können.

Die beste Methode hängt in erster Linie von einem entscheidenden Faktor ab: **die Anwendung, in der die Agenten ihre Interaktionen bearbeiten**. Die beiden Optionen, die wir besprechen werden, sind:

1. Agenten, die den standardmäßigen ZCC CRM CTI Connector im CRM verwenden.
2. Agenten, die in der Zoom Workplace App arbeiten, für die eine benutzerdefinierte Lösung mit ZCC-APIs und Webhooks erforderlich ist.

***

### Out-of-the-Box CRM CTI Connector Integration

Dies ist die direkteste Methode. Wenn Ihre Agents einen ZCC CRM CTI Connector verwenden, können die meisten Interaktionsdaten automatisch zwischen der Zoom Plattform und dem entsprechenden CRM synchronisiert werden.

#### <mark style="color:blau;">So funktioniert es</mark>

Der CTI Connector bettet die ZCC-Agentenoberfläche direkt in das CRM ein. Wenn eine Interaktion endet, werden Daten wie Aufzeichnungen, Transkripte, Notizen und Dispositionen automatisch in Zoom gespeichert und mit dem relevanten aufzeichnen (zum Beispiel einem Ticket oder Kontakt) in Ihrem CRM verknüpft.

#### <mark style="color:blau;">Einrichtungsanforderungen</mark>

Funktionalität, die die Synchronisierung von Daten zwischen Zoom und dem CRM ermöglicht, kommt „out of the box“, erfordert jedoch eine Aktivierung in der Admin-Portal ZCC-Administration.

Führen Sie die folgenden Schritte aus:

{% stepper %}
{% step %}
**Aktivieren in ZCC Admin-Portal**

Melden Sie sich als Administrator im Admin-Portal von Zoom an und navigieren Sie zu Contact Center Management > Integrations > Applications.

Finden Sie die relevante CRM Integration und Aktivieren Sie die entsprechenden Einstellungen, um die Datenspeicherung in Ihrem CRM zu zulassen.
{% endstep %}

{% step %}
**CRM-Berechtigungen**

Überprüfen und befolgen Sie die [Einrichtungsanleitungen für die CRM-Integration](https://support.zoom.com/) um zu überprüfen, ob Ihr CRM-Integrations-Benutzer über die erforderlichen Schreibberechtigungen für alle relevanten Objekte verfügt.
{% endstep %}
{% endstepper %}

#### <mark style="color:blau;">Unterstützte CRM-Plattformen</mark>

Diese Funktionalität ist über den ZCC CRM CTI Connector zugänglich, wenn Agenten die folgenden CRMs verwenden:

* Salesforce
* Zendesk
* ServiceNow
* Microsoft Dynamics
* HubSpot

Mit den CRM-CTI-Connectors ist keine spezielle Konfiguration erforderlich, und die Integration speichert die Engagement-Daten standardmäßig im CRM.

***

### Benutzerdefinierte Integration via APIs

Wenn Ihre Agenten die native Zoom Workplace App oder ZCC Smart Embed verwenden, benötigen Sie eine individuelle Lösung, um Interaktionsdaten zu übertragen. Der wichtigste Weg, dies zu tun, ist über die Zoom Contact Center APIs.

Es gibt zwei Hauptansätze, um auf Engagement-Daten über die API zuzugreifen:

* **Abfrage:** Fragen Sie regelmäßig die Zoom API ab, um zu sehen, ob neue Interaktionsdaten Verfügbar sind.
* **Webhooks:** Erhalten Sie von Zoom eine Benachrichtigung in Echtzeit, sobald ein Transkript bereit ist.

Es gibt auch einen dritten Ansatz, **Flow Events Integration**, was für bestimmte Datentypen funktioniert.

#### <mark style="color:blau;">Abfragen der Zoom Contact Center APIs</mark>

Um Engagement-Daten herunterzuladen, müssen Sie die entsprechenden ZCC API-Endpunkte abfragen. Wichtig ist, dass verschiedene Datentypen aus verschiedenen APIs stammen, sodass Sie für jeden relevanten Endpunkt wahrscheinlich eine Polling-Logik entwickeln müssen.

Viele engagementbezogene APIs innerhalb von Reports V2 (CX Analysen) unterstützen jetzt die Endzeit-Filterung mit `Endzeit von` und `Endzeit bis`. Bevorzugen Sie diese Parameter, wenn sie verfügbar sind, damit Ihre Abrufjobs Engagements anhand des Zeitpunkts abrufen, zu dem sie tatsächlich geendet haben. Dies hilft, fehlende Datensätze zu reduzieren, da die vollständigen Engagement-Daten (einschließlich Bericht-V2-Daten) am Ende des Engagements finalisiert werden.

| Um diese Daten zu erhalten...                                   | Abstimmung diese API...                                                                                                                                                                                                                                                                                                                                                          | Dieses Feld verwenden... | Hinweise:                                                                           |
| --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------- |
| <p>Aufzeichnungsmediendatei</p><p>(Sprach- und Video-Kanal)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/get/contact_center/recordings">Aufzeichnungen auflisten</a> oder</p><p>Interaktionsaufzeichnungen auflisten</p>                                                                                                                                                                                   | `download_url`           | Erfordert, dass die Anrufaufzeichnung für die Warteschlange aktiviert ist.          |
| <p>Aufzeichnungs-Transkript</p><p>(Sprach- und Video-Kanal)</p> | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/recordings/GET/contact_center/recordings">Aufzeichnungen auflisten</a> oder</p><p>Interaktionsaufzeichnungen auflisten</p>                                                                                                                                                                                   | `Transkript_url`         | Erfordert Anrufaufzeichnung mit aktivierter Transkription.                          |
| <p>Transkript</p><p>(Messaging Kanal)</p>                       | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Ein Engagement abrufen</a> oder</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Historische Engagement-Protokolldaten auflisten</a></p>    | `Transkript_url`         | Transkript ist standardmäßig für Messaging-Kanäle aktiviert.                        |
| <p>Dispositionen</p><p>(Alle Kanäle)</p>                        | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Ein Engagement abrufen</a> oder</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Historische Engagement-Protokolldaten auflisten</a></p>    | `Dispositionen`          | Ein Array von Disposition-Objekten.                                                 |
| <p>Notizen</p><p>(Alle Kanäle)</p>                              | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/engagements/get/contact_center/engagements/{engagementId}">Ein Engagement abrufen</a> oder</p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/reports-v2-cx-analytics/get/contact_center/analytics/log/historical/engagement">Historische Engagement-Protokolldaten auflisten</a></p>    | `Notizen`                | Ein Array von Notizobjekten.                                                        |
| <p>Mailbox-Mediendatei</p><p><br><br></p>                       | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Die Posteingangsnachrichten eines Kontos auflisten</a> <strong>oder</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Die Nachrichten eines Posteingangs auflisten</a></p> | `download_url`           | Für Sprachnachrichten, die in einem Contact Center-Posteingang hinterlassen wurden. |
| Mailbox-Transkript                                              | <p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/messages">Die Posteingangsnachrichten eines Kontos auflisten</a> <strong>oder</strong></p><p><a href="https://developers.zoom.us/docs/api/contact-center/#tag/inboxes/GET/contact_center/inboxes/{inboxId}/messages">Die Nachrichten eines Posteingangs auflisten</a></p> | `Transkript_url`         | Erfordert, dass die Transkription für den Posteingang aktiviert ist.                |

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

Die Download-URLs (`download_url`, `Transkript_url`, `playback_url`, und so weiter) die von diesen Zoom APIs bereitgestellt werden, **nicht** öffentliche Links. Sie sind für den programmgesteuerten Access vorgesehen und erfordern API-Authentifizierung (zum Beispiel Access Token im Authorization-Header), um die zugehörige Datei herunterzuladen.

Das bedeutet:

* Sie können diese URLs nicht direkt in einem CRM speichern, damit ein Benutzer darauf klicken kann. Ein Benutzer, der auf den Link in seinem Browser klickt, ist nicht authentifiziert, und der Download schlägt fehl.
* Die richtige Methode besteht darin, dass Ihr Backend-Dienst die URL verwendet, um die Datei abzurufen. Ihr Dienst kann die Datei dann in Ihrem eigenen System (wie Amazon S3, Azure Blob Storage oder dem Dateispeicher Ihres CRMs) speichern und Ihren Benutzern von dort aus einen sicheren Link bereitstellen.
  {% endhint %}

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

**Verarbeitungsverzögerungen - Sprach- und Videoaufzeichnungen:**

Diese Daten sind nicht verfügbar, sobald ein Anruf endet. Das Audio muss zuerst verarbeitet und hochgeladen werden, was bei langen Anrufen mehrere Minuten dauern kann. Um sicherzustellen, dass Sie keine Aufzeichnungen verpassen, stellen Sie die `Abfragedatentyp` Parameter zu `Aufzeichnungsendzeit` beim Abfragen der List recordings API. Dies ruft Daten basierend darauf ab, wann die Verarbeitung beendet wurde, nicht wann der Anruf endete.

Für Reports V2 (CX Analysen)-engagement-zentrierte Abstimmungsaufträge verwenden Sie überlappende Zeitfenster mit `Endzeit von` und `Endzeit bis` um einen Sicherheitspuffer für verzögerte Verarbeitung und vorübergehende Zustellungsprobleme bereitzustellen.
{% endhint %}

Weitere Informationen zu Zoom Contact Center APIs finden Sie unter [Contact Center-APIs](https://developers.zoom.us/docs/api/contact-center/) Dokumentation.

#### <mark style="color:blau;">Verwenden Sie Webhooks für Echtzeit-Events</mark>

Für einen unmittelbareren, Event-gesteuerten Ansatz können Sie ZCC Webhooks abonnieren. Dies ist die effizienteste Methode für eine nahezu Echtzeit-Integration.

**So funktioniert es**

1. Abonnieren Sie die entsprechenden Events im Zoom App Marketplace.
2. Wenn ein Event auftritt, sendet Zoom eine Benachrichtigung an Ihre Webhook-URL (oder an Ihre Websocket-Verbindung).
3. Die Event-Payload enthält die Daten, die Sie benötigen, entweder direkt oder als URL/ID für einen nachfolgenden API-Anruf.

**Häufige Webhook-Events für Engagement-Daten**

* **Engagement-Ende-Daten bereit:** Kontaktcenter.cx\_engagement\_end\_data\_ready (signalisiert, dass die Daten des Engagement-Ende-Berichts V2 zum Abrufen bereit sind)
* **Sprach-/Videoaufzeichnung:** Kontakt\_center.recording\_completed (liefert ein `download_url`)
* **Sprach-/Video-Transkript:** Kontakt\_center.recording\_Transkript\_completed (liefert ein `Transkript_url`)
* **Messaging-Transkript:** Kontakt\_center.engagement\_Messaging\_Transkript\_completed (liefert ein `Transkript_url`)
* **Hinweise:** Kontakt\_center.engagement\_note\_added (liefert ein `Notiz` Feld mit den Notizdaten)
* **Disposition:** Kontakt\_center.engagement\_Disposition\_added (liefert ein `Disposition_name` Feld mit den Disposition-Daten)

**Empfohlenes Muster: Abruf auslösen, wenn die Engagement-Daten bereit sind**

Wenn Sie erhalten `Kontakt_center.cx_engagement_end_data_ready`, betrachten Sie es als Ihr Signal, dass die Daten des Engagement-Endberichts V2 für dieses Engagement vollständig sind. Zu diesem Zeitpunkt führen Sie den Anruf der Historical Engagement log data API und aller anderen relevanten APIs durch, um den endgültigen Datensatz zu erfassen. In diesem Event verwenden Sie `engagement_id` als Ihren Suchschlüssel und rufen Sie dann die vollständigen Engagement-Artefakte von Ihren erforderlichen Endpunkten ab.

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

* **Seien Sie sich mehrerer Events bewusst:** Die `notiz_hinzugefügt` und `Disposition_hinzugefügt` Ereignisse können mehrmals für ein einzelnes Engagement ausgelöst werden (zum Beispiel, wenn ein Agent mehrere Notizen speichert oder ein Anruf weitergeleitet wird). Die Logik Ihrer Anwendung muss dies verarbeiten können.
* **Redundanz einbauen:** Die Event-Zustellung ist nicht immer zu 100 % garantiert (zum Beispiel kann Ihr Endpunkt oder Ihre Websocket-Verbindung vorübergehend ausgefallen sein).
* **Backup-Strategie:** Wir empfehlen, ein Abgleichsskript mithilfe von Polling-APIs mit `Endzeit von` und `Endzeit bis` Fenster, um verpasste Ereignisse zu erfassen und Datenlücken zu schließen.
  {% endhint %}

Weitere Informationen zu Zoom Contact Center Webhook/Websocket-Ereignissen finden Sie unter [Contact Center Webhooks](https://developers.zoom.us/docs/api/contact-center/events/) Dokumentation.

#### <mark style="color:blau;">Flow-Events Integration</mark>

Für bestimmte Datentypen können Sie Daten mit einem JavaScript-Event-Skript direkt vom ZCC-Flow-Editor an ein externes System senden.

**Unterstützte Daten & Einschränkungen:**

* **Disposition:** Kann auf allen Typen von Eingehend-Engagement-Kanälen mithilfe des zugegriffen werden `global_system.Engagement.Disposition` Variable.
* **Transkript:** Nur zugänglich für Eingehend-Messaging-Engagements (zum Beispiel Web Chat) mithilfe des `global_system.Engagement.Transkript` Variable.
* **Mehrere Flows:** Wenn Sie mit mehreren Flows in Ihrer Konfiguration arbeiten, insbesondere wenn ein Flow das `RouteTo` Widget zum Verbinden mit einem anderen Flow verwendet, ist es wichtig sicherzustellen, dass identische Event Scripts und Trigger in allen Flows korrekt konfiguriert sind.

Diese Methode ist in einem Messaging-Flow am leistungsstärksten, wo Sie sowohl das Transkript als auch die Disposition in einem einzigen Event kombinieren können.

**Konfigurationsschritte**

Befolgen Sie diese Schritte zum Konfigurieren Ihres Flows:

{% stepper %}
{% step %}
**Hinzufügen eines Event Scripts**

In Ihrem ZCC-Flow (z. B. einem Web-Chat-Flow) klicken Sie auf das Start-Widget.

Suchen Sie die Event Scripts und fügen Sie ein Event Script für Events wie Engagement Closed und/oder Disposition Saved hinzu.

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

{% step %}
**Hinzufügen Ihres benutzerdefinierten JavaScript**

Das folgende Beispiel ruft sowohl die Disposition als auch das Transkript ab und sendet sie dann gemeinsam an eine externe API.

```javascript
async function main () { 
  try {
    // Das Disposition-Objekt aus seiner Variable abrufen
    const Disposition_daten = var_get()['global_system.Engagement.Disposition'];
    
    // Das vollständige Transkript-Objekt abrufen
    const Transkript_daten = await req.get(var_get()['global_system.Engagement.Transkript']);

    // Eine Nutzlast mit allen Daten vorbereiten, die Sie senden möchten
    const Nutzlast_zum_Senden = {
      Disposition: Disposition_daten.data.result,
      Transkript: Transkript_daten.data.result.Transkript
    };

    // Das Ziel für Ihre Daten definieren
    const external_API_URL = '<ersetzen-Sie-durch-Ihren-API-Endpunkt>';
    
    // Die kombinierten Daten an Ihr externes System senden
  	const response = await req.post(external_API_URL, Nutzlast_zum_Senden);
    
    // Die Antwort des externen Systems zur Fehlerbehebung protokollieren
    log.debug("Antwort der externen API: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("Im Transkript-Event-Script ist ein Fehler aufgetreten: " + error);
  }
}
```

{% endstep %}
{% endstepper %}

***

### Zusammenfassung und Empfehlungen

Wählen Sie die Methode der Integration, die am besten zu Ihrem Agenten-Workflow und Ihren technischen Ressourcen passt.

| Wenn Ihre Agenten ...                                                       | Dann ist Ihre beste Option ...                                  | Wichtige Überlegungen:                                                                                                                                                                                                                                                                           |
| --------------------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Der ZCC CTI Connector in einem unterstützten CRM                            | Die integrierte Integration                                     | <ul><li>Einfachster Weg</li><li>Kein Code erforderlich</li><li>Engagement-Daten-Synchronisieren ist integriert</li></ul>                                                                                                                                                                         |
| Die Zoom Workplace App oder Smart Embed                                     | API-Webhooks plus am Endzeitpunkt gefilterte Polling-Abstimmung | <ul><li>Verwenden Sie <code>Kontakt\_center.cx\_engagement\_end\_data\_ready</code> als Ihren Abruf-Trigger</li><li>Dann gleichen Sie mit <code>Endzeit von</code>/<code>Endzeit bis</code> Fenstern</li><li>Verbessert die Effizienz und reduziert gleichzeitig verpasste Engagements</li></ul> |
| Ein Eingehender Messaging-Flow (und die Notwendigkeit, Daten zu übertragen) | Flow-Event-Skripte                                              | <ul><li>Nischig, aber leistungsstark</li><li>Erfordert JavaScript</li><li>Funktioniert am besten zum Senden von Messaging-Transkripten und Dispositionen</li></ul>                                                                                                                               |

Wenn Sie diese verschiedenen Pfade verstehen, können Sie eine robuste und zuverlässige Integration aufbauen, die Ihnen einen vollständigen Überblick über Ihre Kundeninteraktionen gibt. Die Kombination von Event-ausgelöstem Abruf mit nach Endzeit gefiltertem Abgleich hilft Ihnen, unnötige API-Aufrufe zu reduzieren und gleichzeitig die Vollständigkeit zu verbessern.


---

# 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/de/business-dienstleistungen/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.
