Skip to main content

Zoom Integration

The Zoom app is provided by you, the developer, not by Attendee. When you input the Zoom client ID and secret, you’re specifying the Zoom app that your bot will use to join meetings.See the README for instructions on obtaining the client ID and secret.
Zoom bots must be approved by Zoom to join external meetings. Unapproved Zoom bots can only join meetings that are hosted by the same Zoom account that owns the bot.See the official announcement from Zoom for more details.
Check out our Zoom App Approval guide for step-by-step instructions on getting your bot approved. The process is straightforward!
Community members have also created helpful guides:
This usually happens when external participant recording privileges are not enabled in the Zoom account.The user hosting the meeting needs to enable this setting. See Zoom’s support article for instructions on how to enable external participant recording.

Self-Hosting

You may need to rebuild the Docker image. You can do this in one of two ways:Using Docker command:
docker compose -f dev.docker-compose.yaml build
Using Makefile:
make build
After rebuilding, restart your containers:
docker compose -f dev.docker-compose.yaml up
This may happen if the AWS_REGION environment variable is not set correctly. It defaults to us-east-1.You can set this in your .env file:
AWS_REGION=your-preferred-region
Make sure to restart your containers after changing the .env file.

API Usage

  1. Create an account in your Attendee instance
  2. Sign in and navigate to the API Keys section in the sidebar
  3. Click Create API Key
  4. Copy and securely store your API key
API keys are only shown once upon creation. Store them securely!
For more details, see the Authentication guide.
Rate limits vary by endpoint. Check your plan details in the Attendee dashboard for specific limits.If you need higher limits, schedule a call to discuss enterprise options.
Storage duration depends on your configuration:
  • Hosted instance: Contact support for retention policies
  • Self-hosted: You control the retention policy through your S3/storage configuration
You can delete bot data at any time using the Delete Bot Data endpoint.

Transcription

It depends on your needs:
  • Deepgram: Best price/performance ratio, fast, $200 free credits
  • OpenAI: Cheapest option but less accurate, can switch languages mid-sentence
  • Gladia: More expensive but supports more languages, 10 hours free/month
  • Assembly AI: Similar to Deepgram, very accurate timestamps, $50 free credits
  • Closed Captions: Free but lower quality, no word-level timestamps
See the Transcription guide for detailed comparisons.
Yes! Set up a webhook with the transcript.update trigger to receive real-time transcript updates as the meeting progresses.See the Webhooks guide for setup instructions.
Attendee provides perfect speaker identification (diarization) because it has access to per-participant audio streams. Each participant’s audio is processed separately, so speaker attribution is 100% accurate.This works for both third-party transcription providers and closed caption-based transcription.

Troubleshooting

Common causes:
  • Invalid meeting URL
  • Meeting requires authentication and bot isn’t signed in
  • Meeting has a waiting room (bot will move to waiting_room state)
  • Network connectivity issues
Check the bot’s events in the API response for more details on what’s happening.
Troubleshooting steps:
  1. Verify your webhook URL is publicly accessible via HTTPS
  2. Check that you’ve selected the correct triggers
  3. Review the webhook delivery logs in the Attendee dashboard
  4. Ensure your server returns a 2xx status code
  5. Check your webhook signature verification
See the Webhooks guide for more debugging tips.
Make sure:
  1. The bot is in the ended state (meeting has completed)
  2. The recording_state is complete
  3. You’re calling the correct endpoint: GET /api/v1/bots/{id}/recording
Recordings are only available after the bot has finished post-processing.

Getting Help

Join Slack Community

Ask questions and get help from the community

GitHub Issues

Report bugs or request features

Schedule a Call

Book time with the team for enterprise needs

API Reference

Explore the complete API documentation

Build docs developers (and LLMs) love