> zoom-webhooks
Zoom webhooks for real-time event notifications. Covers webhook verification, event types, and subscription management. Use when you need to receive notifications about meetings, users, recordings, or other Zoom events.
curl "https://skillshub.wtf/zoom/skills/webhooks?format=md"Zoom Webhooks
Receive real-time event notifications from Zoom services.
Prerequisites
- Zoom app with Event Subscriptions enabled
- HTTPS endpoint to receive webhooks
- Webhook secret token for verification
Need help with authentication? See the zoom-oauth skill for OAuth setup.
Quick Start
// Express.js webhook handler
const crypto = require('crypto');
// Capture raw body for signature verification (avoid re-serializing JSON).
app.use(require('express').json({
verify: (req, _res, buf) => { req.rawBody = buf; }
}));
app.post('/webhook', (req, res) => {
// Verify webhook signature
const signature = req.headers['x-zm-signature'];
const timestamp = req.headers['x-zm-request-timestamp'];
const body = req.rawBody ? req.rawBody.toString('utf8') : JSON.stringify(req.body);
const payload = `v0:${timestamp}:${body}`;
const hash = crypto.createHmac('sha256', WEBHOOK_SECRET)
.update(payload).digest('hex');
if (signature !== `v0=${hash}`) {
return res.status(401).send('Invalid signature');
}
// Handle event
const { event, payload } = req.body;
console.log(`Received: ${event}`);
res.status(200).send();
});
Common Events
| Event | Description |
|---|---|
meeting.started | Meeting has started |
meeting.ended | Meeting has ended |
meeting.participant_joined | Participant joined meeting |
recording.completed | Cloud recording ready |
user.created | New user added |
Detailed References
- references/events.md - Complete event types reference
- references/verification.md - Webhook URL validation
- references/subscriptions.md - Event subscriptions API
Troubleshooting
- RUNBOOK.md - 5-minute preflight checks before deep debugging
- troubleshooting/common-issues.md - Signature verification, retries, URL validation
Sample Repositories
Official (by Zoom)
| Type | Repository | Stars |
|---|---|---|
| Node.js | webhook-sample | 34 |
| PostgreSQL | webhook-to-postgres | 5 |
| Go/Fiber | Go-Webhooks | - |
| Header Auth | zoom-webhook-verification-headers | - |
Community
| Language | Repository | Description |
|---|---|---|
| Laravel | binary-cats/laravel-webhooks | Laravel webhook handler |
| AWS Lambda | splunk/zoom-webhook-to-hec | Serverless to Splunk HEC |
| Node.js | Will4950/zoom-webhook-listener | Webhook forwarder |
| Express+Redis | ojusave/eventSubscriptionPlayground | Socket.io + Redis |
Multi-Language Samples (by tanchunsiong)
Full list: See general/references/community-repos.md
Resources
- Webhook docs: https://developers.zoom.us/docs/api/webhooks/
- Event reference: https://developers.zoom.us/docs/api/rest/reference/zoom-api/events/
- Developer forum: https://devforum.zoom.us/
Environment Variables
- See references/environment-variables.md for standardized
.envkeys and where to find each value.
> related_skills --same-repo
> zoom-mcp/whiteboard
Zoom Whiteboard MCP server guidance. Use for Whiteboard MCP auth, endpoints, ID mapping, and tool workflows such as list_whiteboards and get_a_whiteboard. Prefer this child skill when the request is specifically about Whiteboard MCP rather than general Zoom MCP.
> zoom-mcp
Official Zoom MCP Server guidance for AI-agent access to semantic meeting search, meeting assets, recording resources, and Zoom Docs creation over MCP. Use when the request is about Zoom tools/list or tools/call against Zoom's hosted MCP endpoints, AI Companion retrieval, recording-content access, or Zoom Docs creation via MCP. Route Whiteboard-specific MCP requests to zoom-mcp/whiteboard.
> zoom-apps-sdk
Zoom Apps SDK for building web apps that run inside the Zoom client. JavaScript SDK (@zoom/appssdk) for in-meeting experiences, Layers API for immersive visuals, Collaborate Mode for shared state, and In-Client OAuth for seamless authorization. Use when building apps that appear within Zoom meetings, webinars, the main client, or Zoom Phone.
> zoom-websockets
Zoom WebSockets for real-time event notifications via persistent connection. Alternative to webhooks with lower latency, bidirectional communication, and enhanced security. Use when you need real-time event updates, are in security-sensitive industries, or want faster event delivery than webhooks.