Prerequisites
Before you can send bots to meetings, you’ll need:Attendee API Key
Create an account at app.attendee.dev, sign in, and navigate to the ‘API Keys’ section in the sidebar to generate your key.
Zoom OAuth Credentials
Required for joining Zoom meetings. These are the Zoom app client ID and secret that uniquely identify your bot.
- Navigate to Zoom Marketplace and register/log into your developer account
- Click “Develop” → “Build App” → choose “General App”
- Copy the Client ID and Client Secret from the ‘App Credentials’ section
- Go to the Embed tab under Features, then enable the Meeting SDK toggle
Deepgram API Key
Required for transcribing Zoom meetings. Sign up at console.deepgram.com - no credit card required, includes 400 hours of free transcription.
Enter your Zoom OAuth credentials and Deepgram API key in the Attendee UI under the ‘Settings’ section in the sidebar.
Your First Bot
Let’s send a bot to join a meeting and get a transcript in three simple steps.Create a bot and join a meeting
Make a POST request to create a bot. The bot will immediately attempt to join the meeting:Response:
The bot ID (
bot_3hfP0PXEsNinIZmh) is returned in the response. Save this - you’ll need it to check the bot’s status and retrieve the transcript.Monitor the bot's state
Poll the bot to check its status. The bot will transition through states like Response when meeting ends:
joining → joined_recording → leaving → ended:Understanding Bot States
Bots go through several states during their lifecycle:| State | Description |
|---|---|
ready | Initial state when bot is created |
joining | Bot is attempting to join the meeting |
joined_not_recording | Bot has joined but isn’t recording yet |
joined_recording | Bot is actively recording the meeting |
waiting_room | Bot is in the meeting’s waiting room |
leaving | Bot is leaving the meeting |
post_processing | Bot is processing recordings and transcripts |
ended | Meeting ended, all data is available |
fatal_error | Bot encountered an unrecoverable error |
Code Examples
Next Steps
Authentication
Learn about API key management and security
Bot Lifecycle
Deep dive into bot states and lifecycle management
Webhooks
Set up webhooks for real-time bot state notifications
API Reference
Explore the complete API reference
Troubleshooting
Bot stuck in 'waiting_room' state
Bot stuck in 'waiting_room' state
The bot needs to be admitted to the meeting by a host. Either:
- Have a meeting host manually admit the bot
- Disable the waiting room in your meeting settings
- Configure automatic leave settings to exit after a timeout
Authentication failed
Authentication failed
Verify that:
- Your API key is correct and active
- You’ve entered valid Zoom OAuth credentials in Settings
- Your Deepgram API key is valid
Transcript is empty
Transcript is empty
Check that:
- The meeting had actual speech (silence won’t produce transcripts)
- The
transcription_stateiscompletebefore requesting the transcript - Your Deepgram API key has sufficient credits