Daily
Get a morning email summarising yesterday's Zoom meetings
Every morning you get one email with a short summary and the action items from each of yesterday's recorded Zoom meetings.
- Runs
- Daily
- Apps
- Gmail, Zoom
- AI
- Yes, uses the built-in AI allowance
- Access
- Zoom cloud_recording:read; gmail.send
Send this to your assistant
Create a ClickRuntime automation: every weekday at 7, read the transcripts of yesterday's recorded Zoom meetings and email me a short summary of each with its action items.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A product manager spends most of the day in Zoom calls with customers, engineers and partners. By evening the details blur together, promised follow-ups get forgotten, and notes are scattered across documents that were never finished.
Each morning one email lists yesterday's meetings with a short summary and the action items from each, taken from the Zoom transcripts. It's the first thing they read, and nothing agreed in a call is lost.
What you get out of it
Nothing agreed gets forgotten
Action items from every call land in one place the next morning.
No note-taking during calls
You can pay attention to the conversation instead of typing.
A record you can search
Daily emails build up into a searchable history of what was decided and when.
One email, not one per meeting
All of yesterday's calls in a single digest keeps your inbox calm.
How it works
What happens, step by step
Every weekday morning, ClickRuntime finds yesterday's recorded Zoom meetings.
It reads each meeting's transcript.
AI writes a short summary and lists the action items for each meeting.
You get one email from your Gmail with all of yesterday's meetings in it.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- 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
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Zoom steps into one automation
Under the hood
The code that runs this automation
import base64
from datetime import date, timedelta
from email.message import EmailMessage
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, ai
@on_trigger
def run(event):
zoom = {"Authorization": f"Bearer {credentials.connection('zoom', 'work')}"}
day = (date.today() - timedelta(days=1)).isoformat()
meetings = http.get("https://api.zoom.us/v2/users/me/recordings", headers=zoom, params={"from": day, "to": day}).json()["meetings"]
sections = []
for m in meetings:
vtt = next((f for f in m["recording_files"] if f["file_type"] == "TRANSCRIPT"), None)
if not vtt:
continue
text = http.get(vtt["download_url"], headers=zoom).text[:20000]
summary = ai.generate(f"Summarise this meeting in 3 sentences, then list action items:\n{text}", max_output_tokens=400).text
sections.append(f"{m['topic']}\n{summary}")
if not sections:
return {"meetings": 0}
msg = EmailMessage()
msg["To"], msg["Subject"] = "me", f"Yesterday's meetings ({len(sections)})"
msg.set_content("\n\n".join(sections))
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(msg.as_bytes()).decode()}).execute()
return {"meetings": len(sections)}FAQ
Common questions
Which meetings are included?
Can it email the summary to attendees?
How long are the summaries?
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
Email the Zoom link to everyone who pays for your event
When someone pays for your event, they're registered on the Zoom meeting and get the join link by email from your Gmail.
See how it worksTurn form bookings into Zoom meetings with a Gmail confirmation
Each meeting or interview request from your form gets a Zoom meeting and a confirmation email, and you get a note in Slack.
See how it worksGet a daily news digest in Slack
Each morning your team gets a short summary of what's new on the sites and blogs you follow.
See how it worksKeep exploring
Set up “Get a morning email summarising yesterday's Zoom meetings” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.