Overview
Bots transition through various states during their lifecycle, from creation to completion. Understanding these states helps you monitor bot behavior and handle different scenarios in your application.Bot States
Here are all the possible states a bot can be in:Pre-Meeting States
Ready
Ready
Initial state when bot is created. The bot is ready to join the meeting but hasn’t started the join process yet.
Scheduled
Scheduled
Bot is scheduled to join at a future time. This state is used when you schedule a bot to join a meeting later.
Staged
Staged
Bot resources are allocated and ready to join at the scheduled time. The bot is prepared and waiting for the scheduled join time.
Joining States
Joining
Joining
Bot is attempting to join the meeting. This is the active connection phase where the bot is establishing its presence in the meeting.
Waiting Room
Waiting Room
Bot is in the meeting’s waiting room, waiting to be admitted by a host or organizer.
Active Meeting States
Joined - Not Recording
Joined - Not Recording
Bot has successfully joined the meeting but isn’t recording yet. This might occur if recording hasn’t been started or is configured to start manually.
Joined - Recording
Joined - Recording
Bot has joined and is actively recording the meeting. This is the primary operational state for most use cases.
Joined - Recording Paused
Joined - Recording Paused
Bot has joined and recording is temporarily paused. Recording can be resumed without the bot leaving the meeting.
Joined - Recording Permission Denied
Joined - Recording Permission Denied
Bot has joined but doesn’t have permission to record. This can occur in meetings where recording permissions are restricted.
Breakout Room States
Joining Breakout Room
Joining Breakout Room
Bot is moving to a breakout room within the main meeting.
Leaving Breakout Room
Leaving Breakout Room
Bot is leaving a breakout room and returning to the main meeting.
Exit States
Leaving
Leaving
Bot is in the process of leaving the meeting. This is the active disconnection phase.
Post Processing
Post Processing
Bot has left the meeting and is processing recordings and transcripts. This includes finalizing recordings, generating transcripts, and preparing data for download.
Terminal States
Ended
Ended
Bot has completed all tasks, and recordings and transcripts are available for download. This is the successful completion state.
Fatal Error
Fatal Error
Bot encountered an unrecoverable error and could not complete its tasks. Check bot events for error details.
Data Deleted
Data Deleted
Bot data has been permanently deleted, including recordings, transcripts, and participant information. Only metadata is retained for audit purposes.
App Session States
For advanced use cases using app sessions (Zoom RTMS, Google Meet Media API):- Connecting - App session is establishing connection
- Connected - App session is successfully connected
- Disconnecting - App session is disconnecting
App sessions provide an alternative connection method to traditional bot participants for specific platform features.
State Transitions
Bots typically follow these transition patterns:Standard Flow
Scheduled Bot Flow
Waiting Room Flow
Breakout Room Flow
Error Flow
Monitor bot state changes via webhooks to receive real-time notifications and handle state transitions in your application.
Best Practices
- Monitor state changes - Use webhooks to track bot state transitions in real-time
- Handle errors gracefully - Check for
fatal_errorstate and implement retry logic if needed - Wait for completion - Don’t attempt to retrieve recordings until the bot reaches the
endedstate - Respect waiting rooms - If a bot is in the
waiting_roomstate, ensure someone admits it to the meeting - Clean up data - Use the data deletion API when recordings are no longer needed to manage storage