drixxu
← All work

Group-call attendance that records itself

83% of group-call attendance auto-matched, no false positives observed

a loan-officer coaching company (700+ students, US) · 2026

n8nZoom APISupabasePostgres

Problem

Every group coaching call needed its roster turned into attendance records in the student performance platform. That matching was manual: someone read the roster, found the matching student, and typed the row in by hand. With 352 active students in scope across the programs covered, it fell behind, and leadership had no real picture of who was actually showing up.

What I built

  • A matcher that takes the Zoom group-call roster and matches each participant to their student record within minutes of the call ending.
  • A fast path that pulls the participant list about 20 minutes after a call through a webhook from the recordings archive, so most calls get attendance the same day.
  • A shared idempotent attendance writer used by every path in, so a call matched twice never creates a duplicate row.
  • A nightly reconciliation job that finds scored calls with an identified attendee but no attendance row, and repairs them.
  • Backfilled 142 historical recordings so the record goes back further than the day this went live.

Result

83% of participants auto-match, with no false positives observed. The rest route to a person to resolve instead of quietly going unrecorded. Leadership can now see real numbers: one foundations program with 334 active students is running 33% attendance, and 46% have never attended a single call.

What it shows

A matching problem solved with a fast path and a safety net, not one fragile pipeline. The nightly reconciliation is what makes the auto-match rate trustworthy.