Giving new customers access to our Zoom stuff

Hello,

We develop a web application that we’ve got several customers using. For each customer, we set up a cPanel account, install our application to that account, and then they can use it. So, our application is installed once per hosting account/domain, and we’ve got around ~100 customers using it.

Part of our application involves scheduling live online meetings, and we’ve been asked to integrate Zoom into it to provide video conferencing and all of Zoom’s other features.

Once this is completed, how will new customers give our application access to their Zoom account? Do I just create a help guide showing the steps that I used to register the JWT app on the marketplace and get the API key and secret which they would then paste into the settings area in our application, or is there another way to do that?

This isn’t an app that they install on their Zoom account, no installation is required by them. Once we set up our application for them on our servers, they can go into the settings area to find the settings to get our application to work with their Zoom account, and then they can create and launch their meetings. This all happens within our application, there’s nothing for them to actually download or install themselves.

Since I went through the process to get my API key and secret, I’m wondering if they do the same thing or if there’s a different process when they’re consuming it instead of developing it.

Thanks

Hey @tcsteve,

This is a great question. Please let me know if my post here answers it :slight_smile:

Thanks,
Tommy

Thanks Tommy. I’ll try to describe our use case in case it helps with any planning on your end. If you have access to my email address in my account then feel free to follow up if you’d like specifics about us that I don’t mention here.

We’re an established company that produces an online training system, so the primary user groups are students, instructors, and administrators. The admins can upload their training content, so most of it is online courseware, but we also have a lot of features to support in-person classroom training and also webinars. Until now, setting up a webinar session meant just pasting in the URL of the actual webinar, so that when students click to launch it just redirects to that URL, so all of the webinar setup happens outside of our application.

One of our clients wants to greatly expand their webinar offerings, and they basically feel that they want their instructors to need to do as little as possible other than actually teaching, so they want to minimize the number of clicks that it takes to set up, schedule, and conduct a webinar. They wanted us to look into Teams, but the API for that is kind of a nightmare, and we suggested Zoom.

Normally when we add support for third-party features like this, we set it up so that our clients use their own accounts instead of our company having one large account that everyone uses. An example of that is Vimeo, people can upload videos and have them go to Vimeo to take advantage of their transcoding and bandwidth, but instead of putting all of those videos on our account, each customer uses their own account. Google Analytics is another example.

So, basically, having the meeting host create and/or join the meeting outside of our application is going to defeat the purpose for our client, because that’s basically what we have now (they would just paste the join URL into the webinar session setup).

Let me know if you want to follow up with any specific questions about us or our application, I’d rather do that privately though. In the meantime, I’ve got a couple additional questions:

If we create and host multiple meetings for a single user, will that cause any problems? Can they schedule and launch multiple meetings at the same time with the same host, or would we need to do something where we link individual Zoom users to individual instructors in our application? Currently the admin does choose the instructor when creating the webinar session. I was also thinking of just listing the Zoom users where they could choose both an instructor account in our application, and also a Zoom user to host. What are the implications around that though, for example would only certain Zoom users have access to certain transcripts or is that account-level? I did notice that with a free account a user can create only 100 meetings per day, are there any other restrictions like that which we need to be aware of in figuring out how to best implement this for our client?

I do see the issues around sharing the Zoom tokens with us, and I understand that we also need to make sure that data doesn’t leak anywhere on our interface, but it sounds like right now there’s not another way to basically have us write the software using the Web SDK, but have it use their Zoom account, is that correct?

A possible solution on your end might be to let people set up multiple apps, each with its own set of tokens. That would let your customers grant and revoke integration with third parties like us without invalidating their keys for the others.

Thanks

One additional question:

Some of our clients schedule these things way in advance, like maybe a year. At this point I’m thinking that the actual Zoom meeting isn’t going to get created at all until the first person (host or student) tries to launch it. At that point we would create the meeting and then launch it. If we did that, it would effectively mean that they couldn’t host more than 100 per day though if they’re all using the same host user. If we do create the actual Zoom meeting when the admin creates the webinar session, is there a time limit on how far out we can create the meeting? They can also change anything about the webinar at any time, so they might change the date and time, the instructor, etc, would we just update an existing Zoom meeting or delete the old one and create a new one? Could we change the host to another user, or does the host only matter when they’re actually joining the meeting?

Thanks

Hey @tcsteve,

Thanks for the explanation and I am happy to answer your API and SDK related questions.

Since you are building this for your client, it is okay to setup the JWT App portion for them. :slight_smile: Then your client will be able to start and join any meetings on their entire Zoom account.

For your running concurrent meetings checkout this support doc:

You will want the teacher to be the webinar / meeting host.

Webinars and meeting can always be updated before they start, and you can also change the hosts. For more answers to your general questions, feel free to search them here: support.zoom.us.

Thanks,
Tommy

Would it be problematic to use the API to create a new user, host a meeting, and then delete the user? That meeting would be limited to 40 minutes if we did that though, correct?

It looks like our clients are going to need some licenses, so we’re just trying to figure out how this is going to work in our application. It might be the case that we just need to associate our instructor accounts each with a licensed Zoom user, and then limit only those instructor accounts to be Zoom hosts, and keep track of overlapping sessions ourselves.

Thanks for your help, sorry about all of the questions. We’re just getting into this project and learning as we go with Zoom.

Hey @tcsteve,

You can do this, just remember you will need to confirm the users email each time you create one.

Yep, this is the standard flow for other learning management systems as well. :slight_smile:

Thanks,
Tommy

Thanks again for your help Tommy, we’ve got this working in our system now. We have some issues to iron out and a lot of testing, but we’re probably going to release this in a month or two and hopefully that eventually translates to some more licenses for you.

Is there a document you have online that spells out the differences between meetings hosted with the web SDK where the host is either a licensed or unlicensed user?

I noticed also that it looks like you can transfer your user to a new account, do you have anything online about how an organization would create a new corporate Zoom account and transfer their employees’ existing unlicensed Zoom users to it?

Thanks

Hey @tcsteve,

The standard pricing plans work the same as the Zoom App as the Zoom Web SDK:

Checkout this support article here:

For more questions not related to the Zoom Developer Platform, please reach out to support.zoom.us. :slight_smile: