# How to connect Zoom to Hermes Agent (no API keys)

> Connect Zoom to Hermes with ClawLink in one click — 51 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Web version: https://claw-link.dev/hermes/zoom

Most guides for giving Hermes Agent Zoom access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Zoom setup: pair once in the browser and your always-on Hermes agent can act on Zoom for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

**Start here — paste this into Hermes to set up ClawLink:**

> Set up ClawLink for Hermes and tell me when it's ready.
> 1. Install the plugin: `hermes plugins install ClawLink-HQ/hermes-plugin --enable`
> 2. Start pairing with `hermes clawlink begin`. It prints an approval link, so show me the link and stop, don't wait.
> 3. I'll approve it in my browser, then reply "approved".
> 4. When I say approved, finish setup: `hermes clawlink finish`
> 5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

## Setup

It takes three steps to connect Hermes to Zoom.

1. **Install ClawLink** — add the plugin to Hermes Agent once.
2. **Connect Zoom** — one-click OAuth in the ClawLink dashboard.
3. **Use it from chat** — ask Hermes Agent in plain English.

**Alternative for any agent (no plugin needed):** if the Hermes Agent plugin route isn't available or doesn't work, any AI agent with shell access can use the ClawLink CLI instead:

```bash
npx -y @useclawlink/cli login          # sign in via browser — no API key to paste
npx -y @useclawlink/cli connect zoom  # connect Zoom (browser OAuth)
npx -y @useclawlink/cli actions zoom  # list available actions
npx -y @useclawlink/cli run zoom <action> --input '<json>'  # execute (add --confirm for writes)
```

### Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

```bash
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test
```

Then connect Zoom in the [ClawLink dashboard](https://claw-link.dev/dashboard) — a one-click OAuth approval, no API keys.

Verify the connection by asking Hermes:

> Create a Zoom meeting with zoom_create_a_meeting: topic "Quarterly review", type 2 (scheduled), duration 45 minutes, and a start time in the next 7 days. Confirm the details with me before sending.

### Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

```bash
npx -y @useclawlink/cli login
```

`login` opens the same browser approval and stores a credential locally. Once Zoom is connected in the dashboard, that agent calls the same 51 Zoom tools over MCP. Full setup for MCP clients and shell agents: [connect apps to any AI agent](https://claw-link.dev/learn/connect-apps-to-any-ai-agent).

## Zoom MCP for Hermes

Looking for a Zoom MCP server for Hermes Agent? ClawLink connects Zoom to Hermes Agent and exposes 51 Zoom tools your agent can call over [MCP](https://claw-link.dev/learn/what-is-an-mcp-server), with [hosted auth](https://claw-link.dev/learn/oauth-for-ai-agents) and nothing to run or maintain yourself. Using OpenClaw instead? The [OpenClaw Zoom integration](https://claw-link.dev/openclaw/zoom) works the same way.

The route the search engines teach for connecting Zoom to Hermes is Composio: install their CLI with a curl one-liner, or paste an `mcp_servers` block into `~/.hermes/config.yaml`, then build a Zoom Marketplace app so you have a client ID and secret. That app is the manual route's whole tax: Zoom's Marketplace review, scopes you manage in the Scopes tab, and a server-to-server token exchange you own. The hosted connection removes the app: ClawLink's Zoom app is already registered, so you authorize with your Zoom account in the browser and the 51 tools work from the next message. Zoom OAuth tokens are still real tokens; they just live on the ClawLink side, and revoking the grant in your Zoom account ends access immediately.

## What the Hermes Agent Zoom integration can do

51 Zoom tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 51.

### 30 of 51 Zoom tools for Hermes

| Tool | What it does |
|---|---|
| **Add a meeting registrant** `zoom_add_a_meeting_registrant` | Register a participant for a Zoom meeting |
| **Create a meeting** `zoom_create_a_meeting` | Create a Zoom meeting |
| **Get a meeting** `zoom_get_a_meeting` | Get details for a specific Zoom meeting |
| **Get meeting recordings** `zoom_get_meeting_recordings` | Get recordings for a Zoom meeting |
| **Get past meeting participants** `zoom_get_past_meeting_participants` | Get participants from a past Zoom meeting |
| **List meetings** `zoom_list_meetings` | List upcoming or recent Zoom meetings |
| **Update a meeting** `zoom_update_a_meeting` | Update a Zoom meeting |
| **Get a meeting summary** `zoom_get_a_meeting_summary` | IMPORTANT: This action requires a PAID Zoom account (Pro, Business, or Enterprise plan) |
| **Get a webinar** `zoom_get_a_webinar` | Access Zoom Webinar details requires Pro or higher plan and Webinar add-on |
| **Get iq conversation content analysis** `zoom_get_iq_conversation_content_analysis` | Retrieve content analysis for a Zoom IQ conversation by its ID |
| **Get iq deal** `zoom_get_iq_deal` | Get details of a specific deal in Zoom Revenue Accelerator (formerly Zoom IQ) |
| **Get user** `zoom_get_user` | Retrieves detailed information about a specific Zoom user by ID, email, or 'me' |
| **Get zra conversation comments** `zoom_get_zra_conversation_comments` | Retrieve comments for a specific Zoom Revenue Accelerator (ZRA) conversation |
| **Get zra conversation interactions** `zoom_get_zra_conversation_interactions` | Retrieves interaction details for a specific Zoom Revenue Accelerator (ZRA) conversation |
| **Get zra conversation scorecards** `zoom_get_zra_conversation_scorecards` | Retrieve scorecards for a specific conversation in Zoom Revenue Accelerator |
| **Get zra deal activities** `zoom_get_zra_deal_activities` | Retrieve activities associated with a Zoom Revenue Accelerator (ZRA) deal |
| **List all recordings** `zoom_list_all_recordings` | This text details how to list Zoom cloud recordings for a user, notably by using "me" for |
| **List archived files** `zoom_list_archived_files` | Lists archived meeting and webinar files within a specified date range (max 7 days) |
| **List meeting summary templates** `zoom_list_meeting_summary_templates` | Retrieve a list of meeting summary templates for a specified user |
| **List past meeting instances** `zoom_list_past_meeting_instances` | Retrieve all UUIDs for past instances of a given meeting |
| **List users collaboration devices** `zoom_list_users_collaboration_devices` | List collaboration devices associated with a user |
| **List users settings** `zoom_list_users_settings` | Retrieve a user's settings including meeting scheduling, in-meeting features, email |
| **List webinar participants** `zoom_list_webinar_participants` | Get a list of past webinar participants with a Pro plan or above plus an add-on |
| **List webinar registrants** `zoom_list_webinar_registrants` | Retrieves the list of registrants for a webinar with registration enabled |
| **List webinars** `zoom_list_webinars` | The API lists all scheduled webinars for Zoom users with a webinar plan, using `me` for |
| **List zra conversations** `zoom_list_zra_conversations` | List all conversations in Zoom Revenue Accelerator |
| **List zra CRM accounts** `zoom_list_zra_crm_accounts` | Lists CRM accounts from Zoom Revenue Accelerator by account IDs |
| **List zra CRM contacts** `zoom_list_zra_crm_contacts` | Retrieve CRM contact information from Zoom IQ Revenue Accelerator (ZRA) |
| **List zra CRM deals** `zoom_list_zra_crm_deals` | Retrieve CRM deal information from Zoom Revenue Accelerator (ZRA) |
| **List zra CRM leads** `zoom_list_zra_crm_leads` | Retrieve CRM lead information from Zoom IQ Revenue Accelerator (ZRA) |

## Example prompts

**Schedule a meeting**

> Create a Zoom meeting with zoom_create_a_meeting: topic "Quarterly review", type 2 (scheduled), duration 45 minutes, and a start time in the next 7 days. Confirm the details with me before sending.

**List today's meetings**

> Call zoom_list_meetings with userId "me", type "scheduled", and from/to covering today, and show me the meetings with their start times and join URLs.

**Get recordings for the last meeting**

> Find the most recent past meeting with zoom_list_meetings (type "previous_meetings"), then call zoom_get_meeting_recordings with that meetingId and give me the download links. If there are no cloud recordings, say that the plan or recording setting is the likely cause.

**List all recordings in a month**

> Call zoom_list_all_recordings with user_id "me" and a from/to range no wider than one month, then summarize the recordings and their file types.

## Zoom tool arguments that trip agents up

Verified 2026-08-02 against the live Composio schemas (backend.composio.dev/api/v3.1/tools/\). These are the traps in the current toolset:

- `zoom_create_a_meeting` has no required arguments. `type` defaults to 2 (scheduled meeting); 1 is instant, 3 is recurring with no fixed time, 8 is recurring with fixed time. `user_id` defaults to `me` for the connected account. The `start_url` it returns expires after 2 hours (90 days for some accounts) and renewing it is capped at 100 requests per day, so a meeting created and left unused for a day needs a fresh start_url.
- `zoom_list_meetings` requires `userId`; pass `me` for the connected account. It only shows unexpired, non-instant meetings, so "where is yesterday's meeting" needs `type: "previous_meetings"`.
- `zoom_get_meeting_recordings` requires `meetingId` and needs a paid Zoom plan with cloud recording enabled. Zoom error 3301 means no cloud recording exists for the meeting; treat it as an empty result, not a failure.
- `zoom_list_all_recordings` requires `user_id` and a Pro plan with cloud recording; the `from`/`to` range is capped at one month.
- Scopes are per-operation: creating meetings needs `meeting:write`, reading recordings needs `recording:read` (and `phone_recording:read:admin` for phone recordings). These are set on the hosted app at connect time.
- Zoom meeting IDs exceed the 32-bit integer range; keep them as strings end to end instead of letting the agent convert them to numbers.

## ClawLink vs. building it yourself

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Zoom working from chat.

| | Manual | ClawLink |
|---|---|---|
| **Connection flow** | Register a Zoom app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Zoom through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| **Ongoing maintenance** | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Zoom. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| **Agent usability** | You still need to expose the right Zoom actions to the runtime in a format your agent can reliably use. | 51 tools for Zoom are already exposed through ClawLink, so the agent can read and act from chat immediately. |

## ClawLink vs. Composio

Composio also exposes Zoom to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Zoom in the browser, and the 51 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full [Composio alternatives](https://claw-link.dev/hub/composio-alternatives) comparison.

### Hermes paired but still can't use Zoom
Pairing is a two-step handshake: run `hermes clawlink begin`, approve the link in your browser, then run `hermes clawlink finish`. If you ran finish before approving, or the approval link expired, run `hermes clawlink begin` again to get a fresh link. Confirm the plugin was installed with `--enable`, then verify with `hermes clawlink test`.

### Connection succeeds but no tools appear
Reconnect Zoom from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

### "Tool schema not loaded yet" error when calling Zoom tools
Zoom tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Zoom call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

### Zoom returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

### Your ClawLink access is inactive. Upgrade to activate integrations.
The most common Zoom failure we actually see in prod: 10 of the 11 recorded Zoom errors on the ClawLink runtime are this string, and none of them are Zoom errors. The ClawLink account behind the connection is on an inactive plan, so the runtime blocks integration calls before they reach Zoom. Upgrade or reactivate the ClawLink account, and the same calls succeed without touching the Zoom connection.

Ask the agent to diagnose it:

```text
Check whether my ClawLink account plan is active before retrying; if it is not, tell me what upgrading changes.
```

### arguments.user_id is required
A real prod error for zoom_list_all_recordings. The tool needs `user_id` (the Zoom user's ID or email; `me` works for the connected user's own account), and the agent called it without one. Pass `me` for the connected account, or a real user ID from a users-listing call. `zoom_list_meetings` has the same requirement. This is an argument error, not a connection error.

Ask the agent to diagnose it:

```text
Retry with user_id "me" for the connected account. If the agent needs another user's recordings, it must ask me for that user's ID first.
```

### The token has been revoked.
Zoom's own OAuth error string (error 4741 in developers.zoom.us/docs/integrations/oauth-error-messages): with multiple authorizations, the last token issued is considered valid and earlier ones are invalidated. In a hosted flow the equivalent is a stale or revoked grant, and the fix is not token surgery: reconnect Zoom from the ClawLink dashboard, which issues a fresh authorization, and retry. This is the card the manual guides do not have, because their fixes are server-to-server caching and grant-type changes that a hosted connection never exposes.

Ask the agent to diagnose it:

```text
Reconnect Zoom from the dashboard, then retry the same tool call in a fresh chat.
```

### The token is disabled by admin.
Zoom's error 4738: an admin turned off the app for users under the account. With a hosted connection this surfaces as the connection failing on every tool, and no reconnect fixes it until the admin side is resolved. The user or an account admin needs to re-approve the app, then reconnect from the dashboard.

Ask the agent to diagnose it:

```text
Tell me whether the Zoom account is under an admin who can re-approve the app, and do not keep retrying until that is resolved.
```

### Zoom 403 or "insufficient permissions" on one tool while others work
Zoom returns this when the token is authenticated but lacks the scope or entitlement for the specific endpoint. The manual fix taught everywhere is to add scopes in the Zoom Marketplace Scopes tab; in a hosted flow the scope set is fixed at connect time, so a scope gap means the connection cannot do that operation, and the entitlement case is separate: cloud recordings need a paid plan with cloud recording enabled (Zoom error 3301 means no cloud recording exists for the meeting, which is an expected empty result, not a permission problem). If one specific tool 403s while the rest work, check the plan entitlement first, then reconnect from the dashboard, which re-issues the grant.

Ask the agent to diagnose it:

```text
Show me which tool is failing. If it is a recording tool, check whether my Zoom plan includes cloud recording before doing anything else.
```

### OAuth finished in the browser but the account is still missing
Try reconnecting Zoom and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

### Is there a Hermes Agent Zoom integration?
Yes. ClawLink is the fastest way to connect Hermes to Zoom: link your Zoom account once in the browser and Hermes Agent can call the Zoom API through 51 ready-made tools — no custom code or token handling.

### How do I connect Zoom to Hermes with ClawLink?
Install the plugin with `hermes plugins install ClawLink-HQ/hermes-plugin --enable`, then pair once: run `hermes clawlink begin`, approve the link in your browser, and run `hermes clawlink finish`. Connect Zoom in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.

### How long does it take to connect Zoom to Hermes Agent?
About two minutes. Sign in, click Connect next to Zoom in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

### Why use ClawLink instead of wiring Zoom up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Zoom working from chat.

### Does Hermes need a Zoom Marketplace app?
No. The manual route requires registering a Zoom app in the Zoom App Marketplace, managing scopes, and holding a client secret. ClawLink's Zoom app is already registered and its scopes are fixed at connect time, so you authorize your account in the browser without creating or approving anything in the Marketplace. This is the whole difference from the config-file setups the answer engines teach.

### Is it safe to connect Zoom to an AI agent?
The answers to this query talk about Zoom AI Companion (no training on your content, consent controls), which is a different product. The question for this page is what an external agent can do with your Zoom account, and the answer is bounded by the grant: the connection can create and manage meetings, list and pull recordings, and read meeting/webinar data, and you can revoke it from your Zoom account's authorized-apps settings at any time. The AI Companion privacy features are unrelated to what this connection can access.

### Which Zoom tools does Hermes get?
51 Zoom tools, covering meetings (create, update, get, list), recordings (get, list all, archived files), webinars (get, list, participants, registrants), and meeting summaries and past-meeting participants. The 30 tabulated on this page are the ones people reach for most; the agent can call all 51. Cloud-recording tools need a paid Zoom plan with cloud recording enabled; with a free account those calls return empty results or entitlement errors.

### Hermes paired but still can't use Zoom
Pairing is a two-step handshake: run `hermes clawlink begin`, approve the link in your browser, then run `hermes clawlink finish`. If you ran finish before approving, or the approval link expired, run `hermes clawlink begin` again to get a fresh link. Confirm the plugin was installed with `--enable`, then verify with `hermes clawlink test`.

## Related

- [Hermes SendGrid integration](https://claw-link.dev/hermes/sendgrid) — Deliver transactional and marketing emails
- [Hermes Dialpad integration](https://claw-link.dev/hermes/dialpad) — Business phone, messaging, and video conferencing
- [Connect Discord Bot](https://claw-link.dev/hermes/discord-bot) — Automate Discord server actions with bot-specific permissions
