Weekly
Clear out old Zoom cloud recordings
Recordings past your cut-off are removed weekly, keeping you under your storage limit, and you get the list.
- Runs
- Weekly
- Apps
- Zoom
- AI
- Not needed
- Access
- cloud_recording:read, cloud_recording:write
Send this to your assistant
Create a ClickRuntime automation: every Sunday, delete my Zoom cloud recordings older than 90 days and email me the topics and dates of what was removed.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Zoom cloud storage fills up. A company on a plan with a storage cap keeps recording every meeting, and after a year thousands of recordings from old one-on-ones, forgotten demos and long-finished projects take up space. Eventually Zoom stops recording or the admin must pay for more storage. Deleting by hand means opening the portal, filtering by date and clicking through, so the task is postponed.
Every week, cloud recordings across a date range are listed and those older than 90 days are selected. Before anything is deleted, an email with the full list goes out. The recordings are then moved to Zoom's trash, not erased on the spot, so a mistake can be undone for a period.
Meant for admins who want predictable storage and sensible retention. Pairing deletion with an emailed list means the cleanup is routine, visible and reversible.
What you get out of it
Storage stays under the cap
Old recordings are removed on a rolling basis. You avoid paying for extra storage or having a new recording fail because the account is full, which usually happens on the day it matters most.
Retention follows a policy
A 90-day rule applied every week is consistent. Compliance and legal teams get a defined retention window, and nobody has to decide case by case what to keep. Legal teams can cite the rule.
Mistakes are recoverable
Recordings go to the trash first, so something deleted in error can be restored for a period. That is safer than permanent deletion, and it makes the whole routine easy to trust.
Staff are told what is removed
The emailed list gives hosts a chance to download something they need before it goes. Nobody is surprised by a missing replay, and the people who care about a recording get a warning.
Privacy exposure shrinks
Recordings of old customer calls are a liability. Removing them after a set period limits what could leak or be requested, which is a quiet but real reduction in risk.
Predictable storage costs
With a steady cleanup, storage use stays flat instead of climbing. Finance can plan for it, and no one has to approve an emergency storage purchase. Finance can plan for steady storage use.
How it works
What happens, step by step
Once a week ClickRuntime looks for your Zoom cloud recordings that are more than 90 days old.
It moves each of them to Zoom's trash, so they stop counting against your storage and can still be recovered for a while.
You get an email listing the date and topic of every recording it moved. If nothing was old enough, no email is sent.
Before it runs live
- Connect Zoom
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Zoom steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from urllib.parse import quote
from clickruntime import on_trigger, credentials, http, notify
API = "https://api.zoom.us/v2"
KEEP_DAYS = 90
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('zoom', 'work')}"}
cutoff = date.today() - timedelta(days=KEEP_DAYS)
start = cutoff - timedelta(days=30) # Zoom allows a one-month window per request
meetings = http.get(f"{API}/users/me/recordings", headers=h,
params={"from": start.isoformat(), "to": cutoff.isoformat(), "page_size": 300}).json()["meetings"]
removed = []
for m in meetings:
uuid = quote(quote(m["uuid"], safe=""), safe="")
http.delete(f"{API}/meetings/{uuid}/recordings", params={"action": "trash"}, headers=h).raise_for_status()
removed.append(f"{m['start_time'][:10]} {m['topic']}")
if removed:
notify.email_me(f"Moved {len(removed)} old Zoom recordings to trash", "\n".join(removed))
return {"removed": len(removed)}FAQ
Common questions
Can I keep some recordings forever?
How long do trashed recordings stay recoverable?
Does it delete recordings for all users?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Start the day with your Zoom meeting list
Each weekday morning you see the day's Zoom meetings with their join links.
See how it worksGet a monthly Zoom usage report
On the 1st you get last month's meetings, participants and meeting minutes for the account.
See how it worksGet the link when a Zoom recording is ready
As soon as a cloud recording finishes processing, you get the meeting topic and the share link.
See how it worksKeep exploring
Set up “Clear out old Zoom cloud recordings” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.