Automatically Back Up Every Zoom Recording to Google Drive the Moment It Finishes
When a Zoom cloud recording is completed, this workflow instantly uploads the recording file to a designated Google Drive folder. Consultants never lose a client session recording again.
- 1
Step 1 — Catch the Zoom Recording Webhook
Add a
Webhooknode as your trigger. SetHTTP Methodto POST and copy the generated webhook URL. In your Zoom App Marketplace account, create a Webhook-Only App, paste this URL into therecording.completedevent subscription, and save your Zoom app credentials. n8n will now receive a payload every time a recording finishes. - 2
Step 2 — Extract the Recording Details
Add a
Setnode connected to the Webhook node. Create three fields: setrecordingUrlto{{ $json.body.payload.object.recording_files[0].download_url }}, setmeetingTopicto{{ $json.body.payload.object.topic }}, and setrecordingDateto{{ $json.body.payload.object.start_time.slice(0, 10) }}. This prepares clean values for the next steps. - 3
Step 3 — Download the Recording File
Add an
HTTP Requestnode. SetMethodto GET andURLto{{ $json.recordingUrl }}. UnderAuthenticationchooseGeneric Credential Typeand add your Zoom OAuth token so the download is authorized. EnableResponse FormatasFileso n8n captures the binary recording data. Name the nodeDownload Recording. - 4
Step 4 — Upload the File to Google Drive
Add a
Google Drivenode using theUploadoperation. Connect your Google account credentials. SetFile Nameto{{ $node['Set'].json.meetingTopic }} - {{ $node['Set'].json.recordingDate }}.mp4. InParents, paste the Google Drive folder ID where recordings should be stored (copy it from the folder URL). The binary data from the previous node is passed automatically.
Frequently asked questions
What Zoom plan do I need for this to work?
You need at least a Zoom Pro plan because cloud recording is not available on the free tier. The webhook event `recording.completed` only fires after a cloud recording has finished processing on Zoom's servers.
How do I find my Google Drive folder ID?
Open the destination folder in Google Drive in your browser. The folder ID is the string of letters and numbers at the end of the URL after `folders/`. Copy that value and paste it into the `Parents` field in the Google Drive node.
What if a Zoom meeting has multiple recording files (video, audio, transcript)?
The current workflow picks the first file in the `recording_files` array. To back up all files, you would add a `Split In Batches` node between the Set node and the HTTP Request node and loop over `$json.body.payload.object.recording_files`. For most consultants, the first file is the main video, which is sufficient.