Generated banner for Setup Zoom Webhooks
Generated logo for Setup Zoom Webhooks

Setup Zoom Webhooks

OpenAIOfficialCreated by ZoomDistributed by OpenAI

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • No issues found

From the author

Use when building Zoom webhooks.
— the description by Zoom

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured approach to building and maintaining Zoom webhook integrations. It covers the essential steps for event subscription, endpoint verification, security practices, and handling event delivery to ensure reliable processing of Zoom events.

What it does

  • Outlines the process for identifying event types and resource scopes.
  • Details requirements for endpoint and signature verification.
  • Provides best practices for idempotent event handling.
  • Suggests strategies for storing metadata to support debugging and replay protection.
  • Offers guidance on separating ingestion from downstream processing.
  • Lists common troubleshooting steps for webhook connectivity and validation.

When to use it

  • When setting up a new integration to receive Zoom events via HTTP.
  • When implementing security measures like signature verification for incoming payloads.
  • When debugging issues with webhook delivery or endpoint validation.
  • When designing the architecture for processing Zoom event streams.

Advantages

  • Ensures secure communication through mandatory signature verification.
  • Promotes robust integration design by recommending idempotent handlers.
  • Provides a clear checklist for troubleshooting common configuration issues.
  • Helps maintain data integrity by advising on raw event storage.

Usage examples

“How do I verify a Zoom webhook request?”
The agent explains the signature verification process, including the use of the webhook secret token to validate incoming payloads.
“What should I do if my Zoom webhooks are not being received?”
The agent provides a troubleshooting checklist covering endpoint reachability, TLS, validation tokens, and account-level settings.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/openai/setup-zoom-webhooks/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip setup-zoom-webhooks.zip -d .agents/skills

Documentation by Zoom

Setup Zoom Webhooks

Use this skill when the integration receives Zoom events over HTTP. If the user needs persistent low-latency event streams, compare against setup-zoom-websockets.

Workflow

  1. Identify the event types and resource scope before creating subscriptions.

  2. Implement endpoint verification and signature verification before processing business logic.

  3. Store raw event IDs, timestamps, and delivery metadata for replay protection and debugging.

  4. Make handlers idempotent because Zoom can retry delivery.

  5. Separate webhook ingestion from downstream API calls with a queue when reliability matters.

  6. Debug by checking endpoint reachability, TLS, validation token handling, signature base string, app event subscription, and account-level settings.

References

Files

references/full-guide.md

/setup-zoom-webhooks

Background reference for Zoom event delivery over HTTP. Prefer workflow skills first, then use this file for verification, subscription, and delivery details.

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

EventDescription
meeting.startedMeeting has started
meeting.endedMeeting has ended
meeting.participant_joinedParticipant joined meeting
recording.completedCloud recording ready
user.createdNew user added

Detailed References

Troubleshooting

Sample Repositories

Official (by Zoom)
TypeRepositoryStars
Node.jswebhook-sample34
PostgreSQLwebhook-to-postgres5
Go/FiberGo-Webhooks-
Header Authzoom-webhook-verification-headers-
Community
LanguageRepositoryDescription
Laravelbinary-cats/laravel-webhooksLaravel webhook handler
AWS Lambdasplunk/zoom-webhook-to-hecServerless to Splunk HEC
Node.jsWill4950/zoom-webhook-listenerWebhook forwarder
Express+Redisojusave/eventSubscriptionPlaygroundSocket.io + Redis
Multi-Language Samples (by tanchunsiong)

Full list: See general/references/community-repos.md

Resources

Environment Variables

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Zoom
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/zoom/skills/webhooks · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/zoom/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Zoom or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download setup-zoom-webhooks.zip