LogoLogo
Zoom CommunityCustomer Support
  • Start Here
    • Welcome to the Zoom Technical Library
  • Zoom Workplace
    • Zoom Whiteboard
      • Zoom Whiteboard Explainer
  • Business Services
    • Zoom Contact Center
      • Expert Insights
        • Agent Desktop Deployment Options
          • Agent Deployment Options
          • Flow Events and Zoom App Marketplace Events
        • Agent Selection Using Skills Based Routing
        • WhatsApp for Business Messaging Integration
        • PCI Compliance
        • Time of Day and Operating Hours Routing
        • Getting Started with CX Analytics
    • Zoom Quality Management
      • Quality Management Explainer
        • Overview
        • Insights
        • Performance Management Tools
        • Account Management
        • Limitations
      • Expert Insights
        • Working With Different Languages
    • Zoom Workforce Management
      • Workforce Management Explainer
        • Overview
        • Core Concepts
        • Administration
        • Agent Experience
      • Expert Insights
        • Activity to Status Mapping
  • Admin Corner
    • Account and Endpoint Management
      • Delegated Administration Field Guide
    • Third-Party Integrations
      • Zoom for Outlook Add-in Explainer
        • Installing the Zoom for Outlook Add-In
        • Zoom for Outlook Add-In Settings
        • Additional Features for the Zoom for Outlook Add-In
Powered by GitBook

About

  • Zoom Blog
  • Customers
  • Our Team
  • Careers
  • Integrations
  • Partners
  • Investors
  • Press
  • Sustainability & ESG
  • Zoom Cares
  • Media Kit
  • How-To Videos
  • Developer Platform
  • Zoom Ventures
  • Zoom Merchandise Store

Download

  • Zoom Workplace App
  • Zoom Rooms App
  • Zoom Rooms Controller
  • Browser Extension
  • Outlook Plug-in
  • iPhone/iPad App
  • Android App
  • Zoom Virtual Backgrounds

Sales

  • 1.888.799.9666
  • Contact Sales
  • Plans & Pricing
  • Request a Demo
  • Webinars and Events
  • Zoom Experience Center

Support

  • Test Zoom
  • Account
  • Support Center
  • Learning Center
  • Feedback
  • Zoom Community
  • Contact Us
  • Accessibility
  • Developer Support
  • Privacy, Security, Legal Policies, and Modern Slavery Act
  • Transparency Statement

Copyright ©2025 Zoom Communications, Inc. All rights reserved.

On this page
  • Flow Event Scripts
  • Sample Configuration
  • Engagement Accepted Event Script Code
  • Disposition Saved Event Script Code
  • Zoom App Marketplace API events

Was this helpful?

Export as PDF
  1. Business Services
  2. Zoom Contact Center
  3. Expert Insights
  4. Agent Desktop Deployment Options

Flow Events and Zoom App Marketplace Events

Last updated 10 days ago

Was this helpful?

More sophisticated agent desktop integrations can leverage Zoom CX Flow events or Zoom App Marketplace API events (webhooks/WebSockets). With these options, the Zoom CX platform will send HTTPS requests to external API endpoints based on Zoom Contact Center events.

Depending on your integration requirements, you may elect to use Flow events, API events, or both.

You can design an integration to screen pop or log calls upon receiving these events. Both the Flow Events and Zoom App Marketplace events are available to all of the above Agent Deployment Options.

Event Type
Supported Engagements
Payload Type

Inbound only

Custom JSON

Inbound and outbound

Fixed JSON

Flow Event scripts are triggered when specific actions happen within Zoom Contact Center. When that event is triggered, the associated event script code is executed within the context of the engagement, which means that the script has access to the engagement's variables.

Flow Event Scripts

Let's take a look at two common Flow Event scripts.

Event Name
Event Trigger

When an agent accepts the call.

The agent saved a disposition and closed out the engagement.

Note

A full list of event scripts are available in the .

Let's see an example of how you could use the events above to send HTTP requests to an external system. When the external system receives these events, the data can be used to provide logging, screen pops, or other use cases. The exact capabilities provided will be determined by the capabilities of the external system.

Sample Configuration

In the Flow, we start by configuring the event scripts on the Start widget. In the image below, you can see that the Start widget has the two event Scripts configured.

To create the event script code, add a new event script to the Start widget and then write the code directly into the flow editor, as shown below.

Both the Engagement Accepted and the Disposition Saved events use similar code. They're both JavaScript code blocks that use the built-in HTTP function to generate an outbound HTTPS POST request.

Engagement Accepted Event Script Code

In this code example, we're including the engagement ID, the caller's telephone number, the agent's email, and the queue name. The code is executed when the agent answers the engagement and begins talking to the consumer.

This is an example of what is likely the minimum amount of information required to generate a screen pop or to start the logging of the new call. It's worth mentioning that if your ZCC Flow configuration is collecting data about the caller in the Flow/IVR, it's as easy as adding additional variables to the request_body variable to include additional data in this HTTP request.

async function main() {
    try {
        let request_body = {
            engagementId: var_get()["global_system.Engagement.engagementId"],
            caller_number: var_get()["global_system.Engagement.ANI"],
            agent_email: var_get()["global_system.Agent.email"],
            queue_name: var_get()["global_system.Engagement.queue"]
        };

        const result = await req.post('https://api.example.com/acceptedcall', request_body);
        let jsonResponseBody = result.data;

        log.debug("Axios jsonResponseBody=" + JSON.stringify(jsonResponseBody));
    } catch (error) {
        log.debug("Received HTTP error " + error);
    }
}

Disposition Saved Event Script Code

For the Disposition Saved event, we'll reuse the code from the previous example, with the addition of the disposition variable. This code is executed when the agent selects the disposition for the call, which happens as the last action performed by the agent in the engagement. By sending this request, the external system can track that the agent has completed the disposition of the engagement.

Like the Engagement Accepted event, additional variables can be included, depending on your use case.

async function main() {
    try {
        let request_body = {
            engagementId: var_get()["global_system.Engagement.engagementId"],
            caller_number: var_get()["global_system.Engagement.ANI"],
            agent_email: var_get()["global_system.Agent.email"],
            queue_name: var_get()["global_system.Engagement.queue"],
            disposition_name: var_get()["global_system.Engagement.disposition"]
        };

        const result = await req.post('https://api.example.com/dispositionedcall', request_body);
        let jsonResponseBody = result.data;

        log.debug("Axios jsonResponseBody=" + JSON.stringify(jsonResponseBody));
    } catch (error) {
        log.debug("Received HTTP error " + error);
    }
}

Depending on your solution, you may find that the Flow event scripts are sufficient, or you may need some of the Zoom App Marketplace API events to help cover all required use cases of your integration.

For example, you can supplement the two flow events above by subscribing to Zoom App Marketplace API events for hold, resume, mute, and unmute events. These additional events would provide your application with insight into the frequency that agents are placing calls on hold or mute.

Both of the above flow event scripts, as well as the Zoom App Marketplace webhook/WebSocket events are available for your solution.

Zoom App Marketplace API events

Like other Zoom products, Zoom CX has API webhook/WebSocket events available within the Zoom App Marketplace.

Events are available to track agent activity such as log in/log out, queue opt in/out, and status change events. Engagement events can track engagements through the system, including events such as engagement started, engagement answered, engagement muted/unmuted, DTMF sent, transfer initiated, ended, note added, disposition added. By tracking engagement events, you have insight into detailed engagement-level data.

See the for more information on the Contact Center APIs.

Zoom Developer site
ZCX Flow Event Scripts
Zoom App Marketplace API Events
Engagement accepted
Disposition saved
support article
Event Script Flow example
Code sample in Flow editor