# Zoom attendance tracking with automatic no-show follow-ups

> Every evening we compare who signed up for your Zoom sessions with who actually turned up, log it all in a spreadsheet, and email the people who missed it.

- Workflow type: agent
- Services: Zoom, Google Sheets, Gmail
- Categories: Operations
- Published: 2026-08-10

## What it does

- Checks every Zoom session that finished today and compares the sign-up list against the people who actually joined.
- Counts someone as attended only if they stayed at least 10 minutes, so a quick 30 second join does not score as a full attendance.
- Logs one row per registrant in your attendance spreadsheet: session, date, name, email, attended or no-show, and minutes present.
- Emails each no-show a short friendly note naming the session they missed, offering the recording, and pointing them at the next date.

## What you'll need

- A Zoom account on a Pro plan or above, connected with admin level access so the detailed attendance data is available.
- Sessions set up with registration turned on, since the whole comparison depends on having a sign-up list.
- A Google Sheet to keep the running attendance log in.
- A Gmail account to send the follow-up notes from.

## Prompt

Every day at 6pm, reconcile who registered for my Zoom sessions against who actually showed up, log the result in Google Sheets, and chase the people who missed it.

Start in Zoom with List Meetings using the previous meetings filter, and keep only the sessions that ended today. Skip any meeting that did not have registration enabled, since there is no registrant list to compare against. If List Meeting Registrants comes back empty or unavailable for a meeting, treat that meeting as skipped and move on to the next one.

For each remaining session, pull two lists: List Meeting Registrants for who signed up, and List Past Meeting Participants for who actually joined. Use Get Past Meeting Details for the topic, start time and duration. Zoom meeting UUIDs sometimes contain a leading slash, so double URL encode the UUID before using it in a request, and treat all meeting IDs as strings rather than numbers.

Matching rules. Match a registrant to a participant by email address first, comparing lowercased and trimmed. When a participant record has no email on it, fall back to matching on display name, again case insensitive and trimmed. Zoom writes a separate participant row every time somebody rejoins, so sum every row belonging to the same person into a single total before judging attendance.

Attendance threshold. Count someone as attended only if their total time in the session is at least 10 minutes. A 30 second join does not count. Everyone else is a no-show, whether they never joined at all or dropped out early. The minutes present figure is what tells those two cases apart, so always record it even when it is zero.

Logging. Append one row per registrant to my attendance Google Sheet using Append Values, with the session name, the session date, the person's name, their email, attended or no-show, and minutes present. Before appending anything, read the rows already in the sheet and skip any registrant that is already logged for that session, so a rerun never writes duplicates.

Follow up. Send each no-show one short, warm Gmail message that names the session they missed, offers the recording, and points them at the next available date. If a cloud recording exists for that session, fetch the share link with List Meeting Recordings and include it; if there is no recording yet, say it is on its way. For the next date, run List Meetings again with the upcoming filter and pick the next scheduled session with the same topic. If nothing is scheduled, invite them to reply and say you will let them know once the next one is booked.

One email per person per session, so nobody gets chased twice. The spreadsheet is the ledger: if a registrant already had a row for this session before this run started, they have already been contacted and should not be emailed again. Keep the tone friendly and brief, three or four sentences, no guilt trip.

## How to customize

- Change the 10 minute attendance threshold to whatever counts as showing up for your sessions.
- Move the daily 6pm run to a different time, or switch it to weekly if you only run sessions occasionally.
- Rewrite the follow-up email, or have it leave first-time no-shows alone and only chase people who have missed more than once.

## Example output

Attendance log, 9 Aug

Onboarding Masterclass | 2026-08-09 | Priya Raman | priya@northgate.co | attended | 47 min
Onboarding Masterclass | 2026-08-09 | Tom Whitfield | tom.w@lumenco.io | no-show | 3 min
Onboarding Masterclass | 2026-08-09 | Dana Ellis | dana@brightpath.org | no-show | 0 min

Email sent to Tom and Dana:

Subject: Sorry we missed you at the Onboarding Masterclass

Hi Tom, we noticed you signed up for the Onboarding Masterclass today but did not get to stay for it. No problem at all. Here is the recording so you can catch up whenever suits: <link>. We are running it again on Thursday 21 August if you would rather join live. Just reply here if you would like the invite.

## FAQ

### What happens to meetings that did not use registration?

They get skipped. Without a sign-up list there is nothing to compare the attendee list against, so the workflow moves straight on to the next session.

### Does someone who joins, drops off, and comes back get counted twice?

No. Zoom records each join separately, and the workflow adds all of a person's time together before deciding whether they hit the 10 minute mark.

### What if someone joined without their email showing up?

It falls back to matching on the display name they joined with. Email is always tried first because it is the more reliable match, and the name is the safety net.

### Will anyone get chased twice for the same session?

No. The spreadsheet doubles as the record of who has already been contacted, so each person gets one follow-up per session even if the workflow runs again.

### Do I need a paid Zoom plan for this?

Yes. The detailed attendance data this relies on is only available on Pro plans and above, and the connected Zoom account needs admin level access.

Use this prompt in General Input: https://www.generalinput.com/prompts/zoom-attendance-tracking-with-automatic-no-show-follow-ups