Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Connect Zoom for meeting recordings, scheduling and transcript context. Use when the user says 'connect Zoom', 'pull my Zoom recordings'. Not for Granola-sourced notes; use `granola-setup`. Not for Teams; use `ms-teams-setup`.
.claude/skills/davekilleen-zoom-setup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-21 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 127% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 146% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 117% | 0% |
Connect your Zoom account to Dex so your meeting prep, reviews, and process-meetings workflows get direct access to Zoom recordings, transcripts, and scheduling.
Once connected, Dex can:
Read:
Write (always with your confirmation):
Skill Enhancements:
/meeting-prep) shows: "Your last Zoom with Sarah: Jan 15. Recording summary available."/process-meetings) can process Zoom recordings directly as an alternative to Granola/week-review) includes meeting time stats from ZoomNew Capabilities:
/meeting-prep, search Zoom recordings for past meetings with attendees and surface summariesDex accesses your Zoom account to read recordings and schedule meetings. No recordings are stored locally. Recordings are fetched, summarized, and discarded after the session. Only YOUR account is accessible (scoped to your OAuth login). The OAuth token stays local on your machine and is gitignored.
/zoom-setup/integrate-mcp if Zoom is mentionedSystem/integrations/config.yaml for zoom.enabled: trueBefore explaining the full setup, check if Granola is already connected:
System/integrations/config.yaml for a granola sectiongranola_check_available())If Granola IS connected:
You already have Granola connected -- it captures your Zoom meetings automatically.
Zoom integration would add:
- Meeting scheduling directly from Dex
- Access to Zoom cloud recordings (if Granola misses one)
- Participant metadata (invited vs. attended)
Still want to connect? [Yes / Skip for now]If user says "Skip for now", confirm and exit: > "No problem. Granola has your meeting capture covered. Run /zoom-setup anytime if you want scheduling or recording access later."
If user says "Yes" (Granola connected), continue with adjusted messaging:
**Let's connect Zoom to Dex.**
Since Granola handles meeting capture, Zoom adds scheduling and direct recording access.
**What you'll need:**
- A Zoom account (Pro or higher for cloud recordings)
- About 3 minutes for the OAuth flow
**Ready to go?**If Granola is NOT connected:
**Let's connect Zoom to Dex.**
This gives Dex access to your Zoom recordings, transcripts, and scheduling.
**What you'll need:**
- A Zoom account (Pro or higher for cloud recordings)
- About 3 minutes for the OAuth flow
**What Dex will be able to do:**
- Access your Zoom recordings and transcripts
- Search meeting content by keyword or participant
- Schedule Zoom meetings (with your confirmation)
- Enrich meeting prep with recording summaries
**Ready to go?**Wait for confirmation.
Check the user's MCP configuration. If zoom-mcp is not listed:
I need to add the Zoom connector to your Dex configuration.
This uses an MCP bridge that connects to Zoom's APIs via OAuth.
Your credentials stay on your machine..mcp.json (use the /dex-add-mcp skill or manual edit):json{ "zoom-mcp": { "command": "npx", "args": ["-y", "zoom-mcp"], "env": {} } }
If OAuth succeeds:
Connected! I can see your Zoom account.If it fails:
The OAuth flow didn't complete. A few things to check:
1. **Did the browser open?** If not, try copying the URL from the terminal output
2. **Did you approve all permissions?** Dex needs recording and meeting access
3. **Zoom Pro required?** Cloud recordings require a Pro (or higher) Zoom plan
4. **Corporate SSO?** Your Zoom admin may restrict OAuth apps
Want to retry?Retry up to 2 times, then offer to skip and come back later.
Once connected, determine feature defaults based on Granola status:
Feature defaults (with Granola):
zoom_recordings: false -- Granola handles transcription; Zoom recordings are a backupzoom_scheduling: true -- scheduling is always usefulFeature defaults (without Granola):
zoom_recordings: true -- primary source for meeting recordingszoom_scheduling: trueThen ask about scheduling behavior:
**For scheduling Zoom meetings:**
Would you prefer:
1. **Auto-schedule** -- I'll create the meeting and show you the link
2. **Ask each time** -- I'll confirm before creating any meetings
(You can change this anytime by re-running /zoom-setup)Save their preference. Map choice 1 to auto_schedule: true, choice 2 to auto_schedule: false.
Run a quick test to confirm everything works:
Show a brief summary:
**Quick test results:**
- Recordings: Found [N] recent recordings
- Meeting list: Working
Everything looks good!If either fails, troubleshoot before proceeding.
Write to System/integrations/config.yaml -- update the zoom section:
yamlzoom: enabled: true configured_at: YYYY-MM-DD mcp_server: zoom-mcp auth_type: oauth2 account: user@example.com granola_coexists: true # or false -- tracks whether Granola was connected at setup time features: zoom_recordings: true # false if Granola connected zoom_scheduling: true auto_schedule: false # or true based on user preference
If the file already exists, only update the zoom: section. Preserve other integration configs.
If Granola IS connected:
**Zoom is connected!**
Here's what just got enhanced:
- **Meeting Prep** (`/meeting-prep`) now includes Zoom context:
- Zoom recording links when Granola transcript isn't available
- Participant attendance (invited vs. joined)
- Scheduling directly from prep
- **Process Meetings** (`/process-meetings`) gains a Zoom fallback:
- If Granola missed a meeting, Zoom cloud recording steps in
- Same output format (decisions, actions, key points)
- **Week Review** (`/week-review`) now includes Zoom stats:
- Total meeting hours
- Recording count
Granola remains your primary meeting capture tool. Zoom fills in the gaps.
You can adjust settings anytime by running `/zoom-setup` again.If Granola is NOT connected:
**Zoom is connected!**
Here's what just got enhanced:
- **Meeting Prep** (`/meeting-prep`) now shows Zoom recording context:
- Last Zoom meeting with each attendee
- Recording summary if available
- Participant attendance (invited vs. joined)
- **Process Meetings** (`/process-meetings`) can now use Zoom recordings:
- Pull transcripts directly from Zoom cloud recordings
- Same output format (decisions, actions, key points)
- **Week Review** (`/week-review`) now includes Zoom meeting stats:
- Total meeting hours from Zoom
- Number of recordings this week
- Meeting distribution
You can adjust settings anytime by running `/zoom-setup` again.Zoom OAuth tokens expire periodically. If you see auth errors:
/zoom-setup to trigger a token refreshThe server might not be in your configuration. Re-run /zoom-setup and it will detect and fix this.
A few possibilities:
Some organizations restrict OAuth access for third-party apps:
Zoom APIs have per-second and daily limits. If you see rate errors:
If the user runs /zoom-setup when already configured:
System/integrations/config.yamlIf user wants to disconnect:
System/integrations/config.yaml:yaml zoom: enabled: false
/zoom-setup anytime to reconnect."Other measured skills in the registry, with their headline benchmark lift.