{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"data": {
"object": {
"id": "bot_01k0h4r9s8x7c2dvq3m5n6p4ab",
"object": "bot",
"meeting_id": "mtg_01k0h4r9s8x7c2dvq3m5n6p4ab",
"meeting_url": "https://zoom.us/j/123456789",
"join_at": "2026-07-20T14:00:00Z",
"status": "queued",
"bot_name": "Acme Notetaker",
"welcome_message": "Recording this meeting for Acme",
"language": "en",
"recording_start": "on_join",
"recording_mode": "audio_only",
"silence_alert": true,
"summary_language": "en",
"summary_template": "discovery_call",
"participants": [
{
"email": "carmen@example.com",
"name": "Carmen"
}
],
"metadata": {
"partner_meeting_id": "meeting-123"
},
"created_at": "2026-07-20T13:58:12Z",
"ended_at": null
}
}
}Bots
Bot recording completed
Sent when the provider recording is available for processing. The transcript and summary are not ready yet.
Delivered to every workspace webhook endpoint subscribed to this event,
signed with the endpoint’s whsec_ secret. See
Webhooks for signature verification, retries,
and ordering.
WEBHOOK
bot.recording_completed
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"data": {
"object": {
"id": "bot_01k0h4r9s8x7c2dvq3m5n6p4ab",
"object": "bot",
"meeting_id": "mtg_01k0h4r9s8x7c2dvq3m5n6p4ab",
"meeting_url": "https://zoom.us/j/123456789",
"join_at": "2026-07-20T14:00:00Z",
"status": "queued",
"bot_name": "Acme Notetaker",
"welcome_message": "Recording this meeting for Acme",
"language": "en",
"recording_start": "on_join",
"recording_mode": "audio_only",
"silence_alert": true,
"summary_language": "en",
"summary_template": "discovery_call",
"participants": [
{
"email": "carmen@example.com",
"name": "Carmen"
}
],
"metadata": {
"partner_meeting_id": "meeting-123"
},
"created_at": "2026-07-20T13:58:12Z",
"ended_at": null
}
}
}Authorizations
Your API key, sent bare. See Authentication.
Body
application/json
Stable typed event ID beginning with evt_. Use it to deduplicate retries.
The event type. Also sent in the X-HappyScribe-Event header.
bot.recording_started: the notetaker is in the call and recording.bot.recording_completed: the call ended and the recording is available.bot.transcript_ready: the transcript is ready.bot.summary_ready: the summary is ready; the bot iscompleted.bot.failed: the bot ended without a usable result.bot.cancelled: the bot was cancelled.
Available options:
bot.recording_started, bot.recording_completed, bot.transcript_ready, bot.summary_ready, bot.failed, bot.cancelled When MeetingKit emitted the event.
object: the bot, as GET /bots/{id} returns it.
Show child attributes
Show child attributes
Response
200
Return any 2xx status to acknowledge receipt. Any other status, or a timeout, triggers a retry — up to 21 attempts with backoff.