Integrate Engagement Data

Integrate Zoom Contact Center engagement data: a guide to recordings, transcripts, and more.

Overview

Zoom Contact Center generates valuable engagement data during every customer interaction, including call recordings, transcripts, agent notes, and dispositions. Keep reading to learn how to store engagement data in external systems (for example, CRM and other systems of record) to create a unified customer view, enable effective agent coaching, or meet compliance requirements when using Zoom Contact Center.

We'll break down the different integration methods to help you choose the best approach based on how your agents can work with increased efficiency.

The best method depends primarily on one key factor: the application where the agents are handling their interactions. The two options we'll discuss are:

  1. Agents using the out-of-the-box ZCC CRM CTI Connector within the CRM.

  2. Agents working in the Zoom Workplace app, which requires a custom solution with ZCC APIs and Webhooks.


Out-of-the-Box CRM CTI Connector Integration

This is the most straightforward method. If your agents are using a ZCC CRM CTI Connector, most engagement data can be synced between the Zoom platform and appropriate CRM automatically.

How It Works

The CTI Connector embeds the ZCC agent interface directly into the CRM. When an engagement ends, data such as recordings, transcripts, notes, and dispositions are automatically saved within Zoom and linked to the relevant record (for example, a ticket or contact) in your CRM.

Setup Requirements

Functionality that allows synchronization of data between Zoom and the CRM comes "out of the box", but requires activation within the ZCC admin portal.

Complete the following steps:

1

Enable in ZCC Admin Portal

Log in to the Zoom admin portal as an Administrator and navigate to Contact Center Management > Integrations > Applications.

Find the relevant CRM integration and enable the appropriate settings to allow data storage in your CRM.

2

CRM Permissions

Review and follow the CRM integration setup guides to verify that your CRM integration user has the necessary write permissions for all relevant objects.

Supported CRM Platforms

This functionality is accessible through the ZCC CRM CTI Connector when agents use the following CRMs:

  • Salesforce

  • Zendesk

  • ServiceNow

  • Microsoft Dynamics

  • HubSpot

With the CRM CTI connectors, no special configuration is required, and the integration will save the engagement data into the CRM by default.


Custom Integration via APIs

If your agents use the native Zoom Workplace app or ZCC Smart Embed, you'll need a custom solution to transfer engagement data. The primary way to do this is with the Zoom Contact Center APIs.

There are two main approaches to access engagement data via the API:

  • Polling: Periodically query the Zoom API to see if new engagement data is available.

  • Webhooks: Receive a real-time notification from Zoom as soon as a transcript is ready.

There's also a third approach, Flow Events integration, which works for certain data types.

Polling the Zoom Contact Center APIs

To download engagement data, you must query the appropriate ZCC API endpoints. It's important to note that different types of data come from different APIs, so you'll likely need to build polling logic for each relevant endpoint.

To Get This Data...
Poll This API...
Using This Field...
Notes:

Recording Media File

(Voice and Video Channel)

List recordings or

List Queue Recordings

download_url

Requires call recording to be enabled for the queue.

Recording Transcript

(Voice and Video Channel)

transcript_url

Requires call recording with transcription enabled.

Transcript

(Messaging Channel)

transcript_url

Transcript is enabled by default for messaging channels.

Dispositions

(All Channels)

dispositions

An array of disposition objects.

Notes

(All Channels)

notes

An array of note objects.

Voicemail Media File

download_url

For voicemails left in a Contact Center inbox.

Voicemail Transcript

transcript_url

Requires transcription to be enabled for the inbox.

For more info on Zoom Contact Center APIs, see Contact Center APIs documentation.

Use Webhooks for Real-Time Events

For a more immediate, event-driven approach, you can subscribe to ZCC webhooks. This is the most efficient method for near real-time integration.

How It Works

  1. Subscribe to the appropriate events in the Zoom App Marketplace.

  2. When an event occurs, Zoom sends a notification to your webhook URL (or to your Websocket connection).

  3. The event payload contains the data you need, either directly or as a URL/ID for a follow-up API call.

Common Webhook Events for Engagement Data

  • Voice/Video Recording: contact_center.recording_completed (provides a download_url)

  • Voice/Video Transcript: contact_center.recording_transcript_completed (provides a transcript_url)

  • Messaging Transcript: contact_center.engagement_messaging_transcript_completed (provides a transcript_url)

  • Notes: contact_center.engagement_note_added (provides a note field with the note data)

  • Disposition: contact_center.engagement_disposition_added (provides a disposition_name field with the disposition data)

For more info on Zoom Contact Center Webhook/Websocket events, see Contact Center Webhooks documentation.

Flow Events Integration

For certain data types, you can push data directly to an external system from the ZCC Flow editor using a JavaScript Event Script.

Supported Data & Limitations:

  • Disposition: Can be accessed on all inbound engagement channel types using the global_system.Engagement.disposition variable.

  • Transcript: Only accessible for inbound messaging engagements (for example, Web Chat) using the global_system.Engagement.transcript variable.

  • Multiple Flows: When working with multiple Flows in your configuration, particularly when one Flow uses the RouteTo widget to connect to another Flow, it is essential to ensure that identical Event Scripts and triggers are properly configured across all Flows.

This method is most powerful in a messaging Flow, where you can combine both the transcript and disposition in a single event.

Configuration Steps

Follow these steps to configure your flow:

1

Add an Event Script

In your ZCC Flow (for example, a Web Chat flow), click the Start widget.

Locate Event Scripts and add an Event Script for events, such as Engagement Closed and/or Disposition Saved.

Flow screen showing a welcome message and events.
2

Add Your Custom JavaScript

The example below retrieves both the disposition and transcript, then sends them together to an external API.

async function main () { 
  try {
    // Get the disposition object from its variable
    const disposition_data = var_get()['global_system.Engagement.disposition'];
    
    // Get the full transcript object
    const transcript_data = await req.get(var_get()['global_system.Engagement.transcript']);

    // Prepare a payload with all the data you want to send
    const payload_to_send = {
      disposition: disposition_data.data.result,
      transcript: transcript_data.data.result.transcript
    };

    // Define the destination for your data
    const external_api_url = '<replace-with-your-api-endpoint>';
    
    // Send the combined data to your external system
  	const response = await req.post(external_api_url, payload_to_send);
    
    // Log the response from the external system for troubleshooting
    log.debug("External API response: " + JSON.stringify(response.data));
    
  } catch (error) {
    log.debug("An error occurred in the transcript event script: " + error);
  }
}

Summary and Recommendations

Choose the integration method that best aligns with your agent workflow and technical resources.

If your agents use...
Then your best option is...
Key Considerations:

The ZCC CTI Connector in a supported CRM

The built-in integration

  • Easiest path

  • No code required

  • Engagement data sync is built-in

The Zoom Workplace App or Smart Embed

API Webhooks with a nightly polling job for reconciliation

  • Most robust custom solution

  • Provides near real-time data with a reliable backup process

An Inbound Messaging Flow (and need to push data)

Flow Event Scripts

  • Niche, but powerful

  • Requires JavaScript

  • Works best for sending messaging transcripts and dispositions

By understanding these different paths, you can build a robust and reliable integration that gives you a complete view of your customer interactions.

Last updated

Was this helpful?