This one was a debugging episode.
The goal was simple: after every Zoom call, save the full transcript to the candidate or employer record so RYZE Intelligence has the complete conversation to work with.
The problem: it wasn't working.
Here's what I found:
Zoom fires three separate events after a meeting ends — and they don't all arrive at the same time.
meeting.ended fires immediately. The AI summary might be ready. The transcript definitely isn't.
recording.completed fires 5–15 minutes later when the video and audio files are processed. The transcript still might not be there.
recording.transcript_completed fires separately — specifically when the .vtt transcript file is ready. This is the event you actually want.
My webhook handler was only listening to the first two. The third one was arriving, getting logged as "unhandled event," and doing nothing.
One new handler. One bug fix on where Zoom puts the download token in the payload. Deploy. Test.
recording.transcript_completed → transcript saved: 1946 chars recorded to the database.
The full post-call record is now complete: summary, next steps, keywords, and full transcript — all attached to the booking automatically.
RYZE Intelligence can now answer questions about what was actually said on a call.