Zoom API for Multi-tenant Web App

Hi Everyone,

I have a multi-tenant application and I am trying to learn how to best approach our particular situation. Each tenant has X number of users and they would use the SaaS Zoom API to create one-on-one meetings with their clients. The SaaS would have the account with Zoom. How do I setup up Zoom to handle this functionality? Is their documentation on how this could possibly work?

Thanks, everyone!

Todd

hey @tmueller,

I suggest using the Create Meeting API, which will provide you a start_url and join_url that you can distribute / display to the respective meeting host, and participant. :slight_smile:

Let me know if you have additional questions! :slight_smile:

Thanks,
Tommy

Hi Tommy,

Thanks for your response. I do have another question. :wink:

Does this setup look correct?

Main – Zoom Account Subscription (SaaS)

  • Tenant 1
  • User1
  • User2
  • User3
  • Tenant2
  • User1
  • User2
  • Tenant3
  • User1
  • User2
  • User3

Each user can create a scheduled meeting for a future date or an on-demand meeting with a client. User’s within each Tenant can be on simultaneous calls. Potentially every tenant can have users on calls at the same time.

I can answer this question since we just implemented this for our SaaS app.

Because we have a large number of users, here’s how I think you should manage meeting creation and participation.

  1. We have one Zoom account which has accounts created on behalf of all “host” tenants.
  2. We use the ISV Partner API, so we can create users on the fly, but if you can’t, then I’d just recommend creating a fixed number of “basic” users (get a liberal estimate). You can make them with an email scheme similar to “zoom-user-1@yourdomain.com” etc.
  3. In addition to this, I’d recommend purchasing a fixed number of “Zoom Pro” licenses.
  4. This way, you can relate a zoom basic account to users within your tenant apps, and only attach a license to that zoom user once the meeting is about to begin.

For example, here’s how your structure could be.

table: zoom_users

id
tenant_id
user_id
zoom_user_id (id of the zoom user account)
licensed (whether the account is licensed or not)

So before a meeting begins, you then simply attach a pro license to the zoom account of the user who scheduled it, and everyone else joins that meeting as a guest.

After the meeting finishes, you can listen to the meeting ended webhook event and detach the license.

Your bottleneck is then simply the number of concurrent meetings you can have, which would be limited by the number of pro licenses that you have purchased. As you start requiring more, you can create more basic users and purchase additional user licenses.

That’s a great summary and helps me get me head around an approach we can take so thank you @hassan2 for posting this! :pray:

Thank you for providing this thoughtful guidance, @hassan2! :slight_smile:

Best,
Will

1 Like