Zoom Contact Center Engagements & Queues
For Zoom Contact Center supervisors: see which voice, chat and SMS engagements are open right now, replay an engagement's event timeline, survey answers, notes and recordings, tidy up agent notes and follow-up tasks, and compare queues on historical service-level and wait-time reports.
Connect this API to an AI agent Browse all specs
What you can do with Zoom Contact Center Engagements & Queues via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /contact_center/open_engagements |
listOpenEngagements | List engagements that are in progress right now |
| GET | /contact_center/engagements |
listEngagements | List past engagements by date range, channel, queue or agent |
| GET | /contact_center/engagements/{engagementId} |
getEngagement | Get one engagement: channel, consumer, queue, agents, duration |
| GET | /contact_center/engagements/{engagementId}/events |
getEngagementEvents | Get the event timeline of an engagement (routing, transfers, holds) |
| GET | /contact_center/engagements/{engagementId}/survey |
getEngagementSurvey | Get the customer's survey answers for an engagement |
| GET | /contact_center/engagements/{engagementId}/notes |
listEngagementNotes | List the agent notes on an engagement |
| GET | /contact_center/engagements/{engagementId}/notes/{noteId} |
getEngagementNote | Get one engagement note |
| PATCH | /contact_center/engagements/{engagementId}/notes/{noteId} |
updateEngagementNote | Edit an engagement note |
| GET | /contact_center/engagements/{engagementId}/follow_up_tasks |
listFollowUpTasks | List follow-up tasks created from an engagement |
| PATCH | /contact_center/engagements/{engagementId}/follow_up_tasks/{taskId} |
updateFollowUpTask | Rewrite the text of a follow-up task |
| GET | /contact_center/engagements/{engagementId}/recordings |
listEngagementRecordings | List the recordings of an engagement |
| GET | /contact_center/queues |
listQueues | List contact center queues by channel |
| GET | /contact_center/queues/{queueId} |
getQueue | Get one queue's settings and channel |
| GET | /contact_center/analytics/historical/queues/metrics |
listQueueReports | Historical queue report: offered, answered, abandoned, wait and service level |
| GET | /contact_center/dispositions |
listDispositions | List dispositions (wrap-up outcomes) agents can pick |
Authentication
zoom_oauth
OAuth 2.0
Scopes: contact_center:read:list_engagements:admin contact_center:read:engagement:admin contact_center:read:list_notes:admin contact_center:read:note:admin contact_center:update:note contact_center:read:list_follow_up_tasks:admin contact_center:update:follow_up_task contact_center:read:list_recordings:admin contact_center:read:list_queues:admin contact_center:read:queue:admin contact_center:read:queue_report:admin contact_center:read:list_dispositions:admin
Zoom OAuth 2.0 (authorization code) for an admin-managed Zoom app.
How to get a credential
- Sign in to the Zoom App Marketplace (https://marketplace.zoom.us) as a Zoom account admin and choose Develop > Build App > General App.
- Set it to Admin-managed (the read scopes below are
:adminscopes), and add the VX Agents OAuth redirect URL shown on the credential form. - Under Scopes, add the Contact Center scopes in the table below.
- Copy the Client ID and Client Secret into a VX Agents OAuth2 credential and sign in with an admin of an account that has a Zoom Contact Center license.
Permissions used
| Scope | Operations |
|---|---|
contact_center:read:list_engagements:admin |
listOpenEngagements, listEngagements |
contact_center:read:engagement:admin |
getEngagement, getEngagementEvents, getEngagementSurvey |
contact_center:read:list_notes:admin, contact_center:read:note:admin |
listEngagementNotes, getEngagementNote |
contact_center:update:note |
updateEngagementNote |
contact_center:read:list_follow_up_tasks:admin, contact_center:update:follow_up_task |
listFollowUpTasks, updateFollowUpTask |
contact_center:read:list_recordings:admin |
listEngagementRecordings |
contact_center:read:list_queues:admin, contact_center:read:queue:admin |
listQueues, getQueue |
contact_center:read:queue_report:admin |
listQueueReports |
contact_center:read:list_dispositions:admin |
listDispositions |
Common errors
| Status | Meaning | Fix |
|---|---|---|
| 401 | Token expired or revoked | Reconnect the credential; access tokens last one hour and are refreshed automatically. |
| 403 | Scope missing, or no Contact Center license | Add the scope above and reconnect; the account needs Zoom Contact Center. |
| 404 | Engagement, note, task or queue not found | Use ids from the list operations; engagements older than the report window are not returned. |
| 400 | Bad field | to is required with from, in the same format; the queue report needs channel. |
| 429 | Rate limit | Wait and retry; report APIs are Heavy-limit. |
Store it as a VX Agents OAuth2 credential.
Usage guide
Setup
- Credential: Zoom OAuth2 from an admin-managed General App with the Contact Center scopes in the authentication notes; sign in as an admin of an account with Zoom Contact Center.
- Worth pinning: the
queue_idvalues you supervise (fromlistQueues), yourtimezone(e.g.America/New_York) and, if your account uses divisions, theX-Zoom-Division-Idheader.
Review the queue and an engagement
listOpenEngagements(filter byqueue_id,channel,agent_id,status) shows what is waiting or in progress now.listEngagementswithfrom/to(and optionallyqueue_id,channel,direction,user_id) lists past engagements; page withnext_page_token.- For one engagement, call
getEngagement, thengetEngagementEventsfor the routing timeline (queued, answered, transferred, held, ended). - Read what the customer said with
getEngagementSurvey, what agents wrote withlistEngagementNotes/getEngagementNote, and find calls to replay withlistEngagementRecordings. - Check pending work with
listFollowUpTasks. - Corrections:
updateEngagementNote(newnotetext) orupdateFollowUpTask(newcontent). Show the user the new text and get a yes first: these change the customer record agents see. - Queue health:
listQueueReportswithchannel(required:voice,video,messagingoremail) plusfrom/to,queue_idsandinterval(15_minutesto1_month);getQueuefor one queue's settings;listDispositionsto translate wrap-up codes.
Good to know
from/to:yyyy-MM-ddoryyyy-MM-dd'T'HH:mm:ss'Z';tois required withfromand must use the same format. Recordings return one month at most per call (default: last 30 days).- Use
channel(single value); the olderchannel_typesparameter is deprecated and ignored whenchannelis sent. - Engagement ids come from the list calls; notes and tasks must belong to the engagement in the path.
- Report endpoints are Heavy rate-limited: avoid tight polling loops.
Source: Zoom Contact Center API reference (https://developers.zoom.us/docs/api/contact-center/), checked 2026-10-24.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Zoom Contact Center Engagements & Queues” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.