Need help understanding if zoom is right for an online fitness platform

Hello everybody.
I’m a developer at an online fitness/wellness platform, and we have a few objectives in mind. After reading the docs, I’m not sure about a couple of things, so will really appreciate your input.

What we need:

  1. One-on-one meetings between an instructor and a student.
  2. One-to-many stream, where an instructor can stream a fitness class to a bunch of members (thinking this is what a webinar is best for).

What we have:

  1. I’ve already implemented one-on-one by creating a JWT marketplace app. Using the api I create a user (type 1) for each instructor, and then this user can create meetings. All this works great. Please let me know if you think there is a better way to do it. Note that I do not want the user to login to zoom at any point, so everything is done via api.

  2. Here is where I’m having trouble.
    Judging from the docs, the same “type 1” user will not be able to create a webinar, because to create a webinar each user needs to be on a pro subscription with webinars addon, correct?

This doesn’t make sense for us from a business standpoint, because we have a lot of instructors but not all of them are active, some only do a class once a month, etc. So it is not profitable to pay the subscription fees for each instructor.

If I were to purchase the webinars license on the main account and then create webinars as the main user for instructors, I believe I will be limited to not having overlapping webinars?

Please let me know if I’m thinking about all of this correctly and if there is a way to create webinars for instructors without having a million subscriptions.

Hey @zentasticfit,

First, thanks for joining our Developer Community! You ask some great questions and I’m happy to help clarify your doubts. Generally speaking, you seem to be on the right path.

I’ve already implemented one-on-one by creating a JWT marketplace app. Using the api I create a user (type 1) for each instructor, and then this user can create meetings. All this works great. Please let me know if you think there is a better way to do it. Note that I do not want the user to login to zoom at any point, so everything is done via api.

This is a great way to handle this, and would be my recommendation as well. If you do not want the user to have to take any actions on their end, provisioning users for them on your end is the best approach.

Here is where I’m having trouble.
Judging from the docs, the same “type 1” user will not be able to create a webinar, because to create a webinar each user needs to be on a pro subscription with webinars addon, correct?

For Webinars, this is correct. In order for a user to schedule a webinar, they will need to meet these requirements:

  • Be a licensed user
  • Have the Webinar Add-On enabled in their settings

This doesn’t make sense for us from a business standpoint, because we have a lot of instructors but not all of them are active, some only do a class once a month, etc. So it is not profitable to pay the subscription fees for each instructor.

Understood. Have you considered provisioning licenses only when you need them? Perhaps you could consider handling license assignment programmatically, based on when you think a given user will need the capabilities of hosting. You could leverage the Meeting Created webhook to keep track of which users/hosts have meetings at which time:

And based on when hosts will be using licenses, you can then assign/un-assign licenses as needed.

Here is a quick run down of handling license/webinar assignment programmatically:

You can follow this workflow to assign licenses to a user via API:

  1. Create a user or update a User via one of these endpoints:
  2. POST Create User
  3. PATCH Update User
  4. For either of these endpoints, to apply a license, pass the appropriate value (2) to the type field:
    1.
  5. Once the user is created or updated, update their Webinar feature via their User Settings:
  6. PATCH Update User Settings
    1.

I hope this information is helpful!

Best,
Will