Zoom stores cloud recordings in its own cloud storage, but many organizations need recordings in Google Drive — for centralized file management, shared drive access, retention policies, or compliance. This guide covers two approaches: a no-code Zapier automation and a custom webhook integration using Google Apps Script.
For the complete picture of all Zoom + Google integrations, see the Complete Guide to Zoom and Google Workspace.
Prerequisites
- Zoom paid plan with cloud recording enabled
- Google Workspace with Google Drive
- Zapier account (for Option 1) or Google Apps Script access (for Option 2)
Option 1: Zapier (No-Code, 10 Minutes)
The fastest way to get recordings into Google Drive.
Step 1: Create the Zap
- Sign in to Zapier.
- Click Create Zap.
- Trigger: Search for Zoom > select Recording Completed.
- Connect your Zoom account (authorize via OAuth).
- Action: Search for Google Drive > select Upload File.
- Connect your Google account.
Step 2: Configure the Upload
Map these fields in the Google Drive upload action:
| Field | Value |
|---|---|
| Drive | Select your Google Drive (or a shared drive) |
| Folder | Choose or create the destination folder |
| File | Map to the Zoom recording download URL |
| File Name | Use Zoom’s meeting topic + date (e.g., {{topic}} - {{start_time}}) |
| Convert to Google format | No (keep as MP4/M4A) |
Step 3: Add a Filter (Optional)
To only upload certain recordings:
- Add a Filter step between the trigger and action.
- Examples:
- Only upload recordings longer than 5 minutes (skip accidental short recordings)
- Only upload recordings from specific hosts or meeting types
- Only upload video files (skip audio-only or chat transcripts)
Step 4: Test and Enable
- Click Test — Zapier uses your most recent recording as sample data.
- Verify the file appears in your Google Drive folder.
- Turn the Zap On.
Every future cloud recording will automatically upload to Google Drive.
Zapier Pricing Note
The free Zapier plan supports basic Zaps with limited tasks per month. If your organization generates many recordings, you may need a paid Zapier plan. Check Zapier pricing for current limits.
Option 2: Custom Webhook + Google Apps Script
For more control and no third-party dependency. This keeps everything within Google’s ecosystem.
Step 1: Create the Apps Script Web App
- Go to Google Apps Script.
- Create a new project.
- Replace the default code with a script that:
- Receives the Zoom webhook payload
- Extracts the recording download URL and meeting details
- Downloads the recording file using the Zoom download token
- Saves it to a specified Google Drive folder
Key considerations:
- The Zoom
recording.completedwebhook includes adownload_tokenthat’s valid for a limited time - Apps Script has a 6-minute execution timeout — large recordings may need a different approach (Cloud Functions)
- Use
UrlFetchApp.fetch()to download the recording andDriveAppor the Drive API to save it
Step 2: Deploy as Web App
- In Apps Script, click Deploy > New deployment.
- Select Web app.
- Set Execute as: your Google account (so it has Drive access).
- Set Who has access: Anyone (so Zoom’s webhook can reach it).
- Click Deploy and copy the web app URL.
Step 3: Create the Zoom Webhook
- Go to the Zoom App Marketplace > Build App.
- Choose Webhook Only app type.
- Under Event Subscriptions, add a subscription:
- Event type:
recording.completed - Notification endpoint URL: Paste your Apps Script web app URL
- Event type:
- Activate the app.
Step 4: Verify the Integration
- Record a test Zoom meeting (keep it short — 1-2 minutes).
- End the meeting and wait for cloud recording to process.
- Check your Google Drive folder — the recording should appear within a few minutes.
- Check the Apps Script execution logs for any errors.
Folder Organization
Set up a consistent folder structure in Google Drive:
Zoom Recordings/
├── 2026/
│ ├── 01-January/
│ ├── 02-February/
│ └── ...
├── By Host/
│ ├── jane.doe@company.com/
│ └── john.smith@company.com/
└── By Department/
├── Sales/
└── Engineering/
In Zapier: Use dynamic folder paths based on the recording date or host email.
In Apps Script: Create folders programmatically based on meeting metadata.
Retention and Cleanup
Google Drive Retention
Set retention policies on the recordings folder:
- In Google Workspace, use Google Vault to set retention rules on the Drive folder.
- Or use a scheduled Apps Script to delete recordings older than your retention period.
Zoom Cloud Storage
After recordings are safely in Google Drive, consider deleting them from Zoom’s cloud to free up storage:
- Manual: Delete recordings in Zoom’s recording management
- Automated: Add a Zapier step or Apps Script function to delete the Zoom recording via API after confirming the Google Drive upload succeeded
Common Issues
- Recording not appearing in Google Drive — Check the Zapier task history or Apps Script execution logs. The most common issue is an expired Zoom download token (the file must be downloaded within the token’s validity period). Ensure the automation runs promptly after the trigger fires.
- File appears but is 0 bytes — The download URL may have expired before the file was fetched. Reduce any delays between trigger and download. In Apps Script, download the file immediately in the webhook handler, not in a deferred task.
- Google Drive quota exceeded — Video recordings are large (100MB-1GB+ per hour). Monitor Drive storage usage and archive or delete old recordings. Consider using a shared drive with more storage allocation.
- Apps Script timeout on large recordings — Apps Script has a 6-minute execution limit. Recordings over ~500MB may fail. For large files, use Google Cloud Functions (which have longer timeouts) instead of Apps Script. Or use Zapier, which handles large file transfers.
- Duplicate recordings — If the webhook fires multiple times (Zoom retries on failed delivery), you may get duplicate files. Add deduplication logic: check if a file with the same meeting ID already exists in the folder before uploading.