Home/Glossary/the bot lifecycle

What is the bot lifecycle?

The bot lifecycle is the ordered set of states a meeting bot moves through, from creation to exit.

Each state arrives as a webhook event: scheduled, joining, in the waiting room, in the meeting, recording.

Exactly one terminal state says how the bot left.

After the call, processing reports each artefact as it is ready.

bot.joiningdispatchedbot.in_waiting_roomhost admitsbot.inmeetingexactly oncebot.recordingcaptureterminalone of fivepost-callartefacts, bot.done
Every state is a webhook; the terminal event tells you how the bot left.

The states, in order

Five moves, each one a named webhook event at your endpoint.

1Step 1CreatedBooked up to threemonths ahead2Step 2DispatchedThe join canrepeat three times3Step 3Waiting roomA host admits it,exactly once4Step 4RecordingCapture starts5Step 5Terminal eventOne event sayshow it left1Step 1CreatedBooked up to three months ahead2Step 2DispatchedThe join can repeat three times3Step 3Waiting roomA host admits it, exactly once4Step 4RecordingCapture starts5Step 5Terminal eventOne event says how it left
Every step reaches your endpoint as a named event.

The webhooks guide lists each name.

How a run ends

One terminal event closes every run. Five are possible.

Terminal eventMeaningStatus code
bot.stoppedClean exit: meeting ended, timeout, API stop, host ended200
bot.kickedThe host or a participant removed the bot200
bot.deniedThe host declined the join request500
bot.notallowedWaiting-room timeout500
bot.failedThe run ended early; start a new bot500

On Zoom, two extra events sit between admission and recording.

They carry the host answer to Zoom's recording consent prompt, so your app knows the exact moment capture is cleared to begin.

The Zoom bot API page covers the rest of Zoom's rules.

After the terminal event

Four more events land as the artefacts become ready.

Audio readyThe recording isfetchableTranscript readySpeaker labels includedVideo readyThe MP4 is fetchableJob completeThe whole run is doneAudio readyThe recording is fetchableTranscript readySpeaker labels includedVideo readyThe MP4 is fetchableJob completeThe whole run is done
Each one arrives at most once, and they arrive in any order.

A later event tells you when media expires or is cleared from storage.

Streaming engines deliver the live transcript during the call.

Those runs finish at the audio event.

While the artefacts are still being prepared, a polled status reads as media processing.

The webhooks guide carries every event name and payload.

FAQ

Frequently asked questions

How many terminal events does a bot send?

Exactly one, always.

Why does the status read Stopped after a kick?

The polled status reads Stopped for a clean exit and for a kick. The event name tells the two apart.

Can I track the lifecycle by polling?

Yes. Poll the bot status endpoint, or watch events live from the command line tool.

What ends a bot automatically?

Timeouts end it.

The waiting room, an empty room, silence, the recording cap, and a room left with only other notetakers all close the bot cleanly.

Put the vocabulary to work

One API to join, record, stream and transcribe meetings across Zoom, Google Meet and Microsoft Teams.