Zoom auto-attendance test

Watch attendance build itself for a Live session. Two ways to drive it: open the real Zoom meeting and let Zoom’s own webhooks do the work, or simulate the same four events when you don’t want to stage a live call. Simulated events are signed with the real ZOOM_WEBHOOK_SECRET_TOKEN and go through the identical pipeline — signature check, replay window, duplicate ledger, every handler — so this page mocks Zoom, never the code under test. Development only.

1 · Pick a Live session

2 · Open the real Zoom meeting

This launches the actual Zoom meeting. Attendance then comes from Zoom’s own webhooks — nothing on this page fakes it, the tables below just poll and show what arrives. This is the real test. Use section 3 only when you don’t want to stage a live call.

Instructor — starts the class

Opens the host start link. Zoom must be signed in as the instructor who connected the account. This fires meeting.started.

Student — joins the class

Opens the same join link the student’s app gets. Zoom must be signed in with the student’s account email, or they land as an unmatched participant.

3 · Or simulate it (no Zoom needed)

Synthesises the same four events, signed with the real secret and pushed through the same pipeline. Timings are minutes from when the meeting started, so a 90-minute class replays in seconds. Don’t mix this with a real meeting that is already running.

One click: start → the first student joins at minute 0 → leaves near the end → meeting ends. The quickest way to see a Present appear.


Or step through it manually:

Reset clears Zoom-derived attendance, participants and the event ledger. Manual records are deliberately kept, so you can prove an instructor override survives a replay.

4 · Meeting state

 
Pick a session

Activity

Ready.

5 · Attendance — refreshes automatically

StudentStatusMethod Attended%JoinsFirst joinFinal?
Pick a session

6 · Zoom participants seen — including anyone who matched no student

Display nameEmailMatched toHowTimeIntervals
No participants yet