Back to Skills

setup-zoom-websockets

Reference skill for Zoom WebSockets. Use after routing to a low-latency event workflow when persistent connections, faster event delivery, or security constraints make WebSockets preferable to webhooks.

23,453stars2,830forksUpdated 8/13/2026

Security Assessment

Safe(95/100)
Security Score95/100

About setup-zoom-websockets

This is a background reference skill for consuming Zoom events over persistent WebSocket connections instead of HTTP webhooks. It solves the problem of low-latency, secure event delivery for cases where opening a public webhook endpoint is undesirable, and it helps developers decide between WebSockets and webhooks with an explicit trade-off comparison across connection model, latency, security, state, and setup complexity.

The skill walks through creating a Server-to-Server OAuth app in the Zoom Marketplace, enabling a WebSocket event subscription, and connecting from Node.js. Its quick-start code obtains an access token via the account_credentials grant using Basic auth with Client ID and Client Secret, then opens a wss connection to Zoom keyed by subscription ID and access token, handling open, message, close, and error events and noting the need for reconnection logic. It documents the shared event envelope (event, event_ts, payload) and catalogs meeting, recording, and user event types with example payloads. Supporting files cover connection details, environment variables, event references, a five-minute troubleshooting runbook, and common issues.

It targets backend developers and integrators in latency-sensitive or security-sensitive domains such as banking, healthcare, and finance who prefer a pull-based, endpoint-free event stream. It explicitly defers full OAuth flows to a companion zoom-oauth skill and recommends WebSockets when real-time updates, security, or bidirectional communication matter, and webhooks when setup simplicity is preferred.

FAQ

When should I choose WebSockets over webhooks?

Choose WebSockets when low-latency real-time updates are critical, security is paramount (for example banking, healthcare, finance), you do not want to expose a public endpoint, or you need bidirectional communication. Webhooks are simpler for small volumes and existing HTTP infrastructure.

What are the prerequisites?

A Server-to-Server OAuth app in the Zoom Marketplace, its Account ID, Client ID, and Client Secret, and a WebSocket event subscription with events enabled.

How does authentication work?

The client requests an access token from the Zoom OAuth endpoint using the account_credentials grant with Basic auth built from Client ID and Client Secret, then connects to the wss endpoint using the subscription ID and access token.

Do WebSocket events differ from webhook events?

No. Events received over WebSocket use the same envelope format as webhook events (event, event_ts, and payload with account_id and object).

Does it handle dropped connections?

The sample logs close and error events and notes that you should implement reconnection logic; a five-minute runbook and common-issues file support troubleshooting.

All Files

6 files
references/events.md10.5 KB
View
RUNBOOK.md2.9 KB
View
references/environment-variables.md0.8 KB
View
troubleshooting/common-issues.md1.1 KB
View
references/connection.md10.4 KB
View
SKILL.md7.4 KB
View

Install setup-zoom-websockets

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill