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

When I try and create new users via the ā€˜custCreateā€™ method in the API I get a 2016 error. I need to create new users without the need to activate them via email. Is this error because of my basic account or am I missing something?

Todd

hi @tmueller yeah, unfortunately that feature is limited to ISV partners. A workaround for that would be to create your users manually, and have a fixed set of user licenses that you can rotate. You can create database tables to keep track of which user licenses belong to which users on your app.

Hey @tmueller,

Like @hassan2 said, you need to have an ISV account. :slight_smile:

Screen Shot 2020-11-09 at 2.25.31 PM

Thanks,
Tommy

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.