- Quickstart
- Prerequisites
- Step-by-step
- Step 1: Get your API keys
- Step 2: Clone the example repo and install dependencies
- Step 3: Configure environment
- Step 4: Start ngrok tunnel
- Step 5: Update Webhook URL
- Step 6: Start webhook server
- Step 7: Start the bot CLI
- Step 8: Join meeting and start transcription
- Step 9: Stop transcription
- Troubleshooting
- Environment Variable Errors
- RECALL_API_KEY not found in .env file
- RECALL_REGION must be one of: us-west-2, us-east-1, eu-central-1, ap-northeast-1
- Bot Creation Errors
- AssemblyAI not configured
- Webhook Issues
- No transcripts appearing
- ngrok connection refused
- Common network issues
- Timeout connecting to Recall.ai
- Bot appears to join but no transcripts
Build a Zoom Real-time transcription bot with Recall.ai
A real-time transcription bot that integrates Recall.ai with AssemblyAI to provide live transcription of Zoom meetings.
Quickstart
Prerequisites
- Node.js (v14 or higher)
- ngrok - Installation guide
- Recall.ai API key with AssemblyAI configured
Step-by-step
Follow this step-by-step guide to set up and run the transcription bot.
Step 1: Get your API keys
1.1 Choose your Recall.ai region and get your API Key:
1.2 Configure AssemblyAI in your Recall.ai dashboard:
- Get an AssemblyAI API key from assemblyai.com
- In your Recall.ai dashboard (same region as step 1.1), navigate to the transcription providers section
- Add your AssemblyAI API key to enable AssemblyAI as a transcript provider
This step is required for the bot to work with AssemblyAI transcription!
Step 2: Clone the example repo and install dependencies
Open a new terminal and run the following commands:
Step 3: Configure environment
Set up your environment variables using the example .env file in the repo:
Edit .env with your Recall values.
RECALL_REGION to according to your Recall region in Step 1.1Step 4: Start ngrok tunnel
In a new terminal, start ngrok to create a public URL for your webhook:
The output should look like this:
Copy the https URL (e.g., https://abc123.ngrok.io) - you’ll need this for the next step.
Step 5: Update Webhook URL
Edit your .env file and set WEBHOOK_URL to your ngrok URL:
Step 6: Start webhook server
In another terminal, start the webhook server (receives transcripts):
Step 7: Start the bot CLI
In another terminal, start the bot CLI (manages meeting connection):
Once you run this command, you’ll see this output:
Step 8: Join meeting and start transcription
Enter your Zoom meeting URL when prompted:
And your terminal will look like this:
In your second terminal (running webhook.js), you should see a meeting transcript of your participants:
Step 9: Stop transcription
To stop transcribing, type “STOP” to end transcription on your third terminal running node zoomBot.js:
Troubleshooting
Environment Variable Errors
RECALL_API_KEY not found in .env file
Solution: Make sure you copied .env.example to .env and added your API key.
RECALL_REGION must be one of: us-west-2, us-east-1, eu-central-1, ap-northeast-1
Solution: Check your .env file and ensure RECALL_REGION matches where you got your API key
Bot Creation Errors
AssemblyAI not configured
Solution: Configure AssemblyAI in your Recall.ai dashboard (Step 1.2)
Webhook Issues
No transcripts appearing
Solution:
- Verify
WEBHOOK_URLin.envmatches your ngrok URL exactly - Ensure ngrok is still running (it may timeout after inactivity)
- Check that the webhook server was started before the bot
ngrok connection refused
Solution:
- Restart ngrok:
ngrok http 8000 - Update
WEBHOOK_URLin.envwith the new ngrok URL - Ensure port 8000 is available
Common network issues
Timeout connecting to Recall.ai
Solution:
- Check your internet connection
- Verify your
RECALL_REGIONis correct - Try again after a few seconds
Bot appears to join but no transcripts
Solution:
- Ensure people are speaking in the meeting
- Check that meeting participants have unmuted their microphones
- Verify AssemblyAI is properly configured in Recall.ai dashboard
Stuck? Contact our support team at support@assemblyai.com or create a support ticket.