Step 2: Create your first Zoom bot

The second step to building a Zoom meeting bot is to add your credentials in Recall's dashboard

⏱️ Estimated Time: 5 minutes

By this point, you should have:

  1. Created a Recall account
  2. Created a Zoom app in Zoom's app marketplace (if not, you can do so by following the steps found here) and have your Zoom app's development credentials

📘

Important Callouts

At this stage, zoom bots are only able to join Zoom meetings hosted by the user or organization that owns the Zoom app

Let's dive into creating your first Zoom bot! 👇


Implementation Guide

Step 1: Get your Zoom app's credentials

Head back to the Zoom Marketplace Dashboard and find your app under managed apps

Once there, find your app in the list of newly created apps. Then click on the "Basic Information" tab

There is a section that's called "App Credentials" where you can find your development credentials

Step 2: Add the credentials to the Recall Dashboard

Next, head to the Recall dashboard. From there, click on the Zoom SDK Credentials in the sidebar

Add the Zoom app credentials here

Step 3: Create a bot

Now that the dashboard is configured, you can call the Create Bot api

Here is a sample curl to help you get started

curl --request POST \
     --url https://us-east-1.recall.ai/api/v1/bot/ \
     --header 'Authorization: Token {RECALL_API_KEY}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "meeting_url": {MEETING_URL},
  "bot_name": "My First Zoom Bot"
}
'

Step 4: View your bot in the API Explorer

After you create a bot, you can head to the Explorer in the Recall dashboard

Click on the "Bots" button and it will take you to the Bot explorer

Once in the Bot explorer, find the bot that you just created and click the "view" button on the right side

The "view" button will take you to your bot where you can get details on the bot and debugging tools

Troubleshooting

📘

Have you checked bot in the Recall Dashboard's API Explorer?

You can get exact error details, bot statuses, live screenshots of the bot, and more right in the dashboard to help you debug

My bot isn't joining the call

There's a few things to check here:

  1. Is the bot in the waiting room?
  2. Did the host deny the bot from joining?

You can see the exact reason by finding your bot in the bot explorer from Recall's dashboard

My bot isn't recording

There's a few things to check here

  1. Is the host present? - In this case, the bot is requesting permission to record but no one is able to grant it recording permissions. You can use Recall's Zoom OAuth Integration to allow the bot to record without a host being present
  2. Did the host grant permission to the bot to start recording? - In this case, the bot is requesting permission to record but is waiting to be granted permissions to record. Ask the host to give accept the bot's request to record

You can see the exact reason by finding your bot in the bot explorer from Recall's dashboard

Bot can't join email-required meetings

Bot typeSupported?
Zoom Web (default)
Zoom Native

If a Zoom bot attempts to join one of these calls and isn't configured with an email, it will produce a fatal error with the following sub code: zoom_email_required.

To enable bots to join email-required meetings and webinars, you can provide a user_email in the zoom configuration object of your Create Bot request:

{
  "meeting_url": "meeting_url",
  "zoom": {
    "user_email": "[email protected]"
  }
}

If the meeting or webinar requires registration, this email does not have to match the email of the user that registered. You can use any email address.

Bot can't join registration-required meetings

Bot typeSupported?
Zoom Web (default)
Zoom Native

Recall supports sending bots to registration-required Zoom meetings and webinars.

Once a user registers for the meeting or webinar, they will receive a meeting URL from Zoom that contains a tk parameter in the meeting URL

When calling the Create Bot api, you should ensure:

  • The meeting URL contains the tk parameter
  • The zoom.user_email field is set
    • Note: This email does not have to match the email that was registered for the event. For simplicity's sake, you can provide a hard-coded email address such as [email protected]
    • This can be provided regardless of whether the meeting is a registration-required Zoom meeting or not.
{
  "meeting_url": "meeting_url", // Includes `tk` param
  "zoom": {
    "user_email": "[email protected]"
  }
}

*For Zoom webinars, the bot must be added as a panelist.