Track Meeting Status
Learn how to receive real-time meeting status updates via WebSocket to track bot progress from creation to completion.
meeting.status events whenever a meeting's status changes. This allows you to build real-time status indicators and track bot progress.Status Flow
The failed status can occur at any point if an error happens.
meeting.status messagesJavaScript/TypeScript Example// Connect to WebSocket
const ws = new WebSocket('wss://your-api-url/ws?api_key=your-api-key');
ws.onopen = () => {
// Subscribe to meeting
ws.send(JSON.stringify({
action: 'subscribe',
meetings: [
{ platform: 'google_meet', native_id: 'abc-defg-hij' }
]
}));
};
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
if (message.type === 'meeting.status') {
const status = message.payload.status;
const meeting = message.meeting;
console.log(`Meeting ${meeting.native_id} status: ${status}`);
// Handle different statuses
switch (status) {
case 'requested':
console.log('Bot is starting up...');
break;
case 'joining':
console.log('Bot is connecting to meeting...');
break;
case 'awaiting_admission':
console.log('Bot is waiting in the waiting room');
console.log('Please admit the bot to the meeting');
break;
case 'active':
console.log('Bot is actively transcribing!');
// Now you'll receive transcript events
break;
case 'completed':
console.log('Transcription completed');
// Disconnect or handle completion
ws.close();
break;
case 'failed':
console.error('Bot failed:', message.payload.error);
ws.close();
break;
}
// Update your UI with the new status
updateStatusIndicator(meeting.native_id, status);
}
};requested
The bot container is being created and initialized. This typically takes 10-30 seconds.
What to show: "Bot is starting up..." or a loading indicator
joining
The bot is launching the browser and connecting to the meeting platform. This typically takes 5-15 seconds.
What to show: "Connecting to meeting..." or a connection indicator
awaiting_admission
The bot is in the meeting waiting room. The meeting host must admit the bot. This can take any amount of time depending on when the host checks the waiting room.
What to show: "Please admit the bot to the meeting" with instructions to check the waiting room. This is a critical state that requires user action.
active
The bot is admitted to the meeting and actively transcribing. You will now receive transcript.mutable and transcript.finalized events.
What to show: "Transcribing..." or a recording indicator. Start displaying transcript segments as they arrive.
completed
The transcription has finished. The meeting ended or the bot was stopped. Final transcripts are available via REST API.
What to show: "Transcription completed" and provide a link to view/download the final transcript. You can safely disconnect the WebSocket.
failed
An error occurred. Common reasons include: admission timeout, meeting ended before bot joined, connection failure, or bot was removed.
What to show: Error message with details. Allow the user to retry or create a new bot. You can safely disconnect the WebSocket.
- •Handle all statuses: Make sure your UI handles all possible status values, including edge cases like
failed. - •Show user action required: When status is
awaiting_admission, clearly indicate that the user needs to admit the bot from the waiting room. - •Handle timeouts: If a bot stays in
requestedorjoiningfor too long (e.g., 60+ seconds), show a warning or allow the user to cancel. - •Clean up on completion: When status becomes
completedorfailed, you can disconnect the WebSocket to save resources. - •Store status history: Keep a log of status changes with timestamps to help debug issues or show progress to users.