Scheduling future meetings with variable hosts - web

I am building a webapp that hosts expert guest meetings. There are 3 types of users in the system -

  • Admins, who should have host permissions for all meetings
  • Speakers, who should have host permissions for only the meetings assigned to them
  • Attendees, without host permissions
    (Note - user X can be a speaker in meeting A and attendee in meeting B)

Intended workflow of app

  • speakers and audience agree for a meeting.
  • the backend SCHEDULES a future meeting with list of email IDs of participants who should have host permissions (i.e. speakers)
  • the backend receives the joining link - one for hosts requiring using the registered email ID, and another for attendees (login optional, asks for name if not logged in)
  • users join through the links on my website itself without any redirecting
  • recording is auto enabled, even better if transcription also available

Tech stack
Frontend - HTML, CSS, Javascript (JQuery), Bootstrap
Backend - Python (Flask)

My first query is, does the web SDK and API have features to cover all of these requirements? I have gone through the docs for 2 weeks only to realise that there must be a license for every host, which is not financially realistic for the project.
If indeed all these are possible, I would require a bit of handholding to go about the project.

Hey @pranayan1506

Yes, you can absolutely accomplish this with the Web SDK. If you wish to embed Zoom on your site or app, you will likely want to use a combination of our APIs (for creating and scheduling live meetings) and our Web SDK (for embedding the Zoom Meeting/video experience on your site/app). Details below on each of these.

API and SDK Overview
We offer both APIs and SDKs for you to consider when planning an integration/implementation in an application. You may find the below information helpful for your web developer.

Here are some APIs that you can consider using within your application:
Create Meetings: To create a meeting (including instant meetings)
List Meetings: To Display the schedule Meetings
Retrieve Meeting: To get a specific meeting

Some additional tips:
Once the meeting is created you can send the “start_url” to the hosts and “join_url” to the participants.
To get a list of past meeting participants, you can use this endpoint.
To display live meetings you can use the meeting started webhook.

To get real-time participant events, please use:
https://marketplace.zoom.us/docs/api-reference/webhook-reference/meeting-events/participant-joined-meeting and
https://marketplace.zoom.us/docs/api-reference/webhook-reference/meeting-events/participant-left

You can find our webhook meeting events here and a list of all our APIs here.

We also have a Web SDK that you can consider integrating into your website:
https://marketplace.zoom.us/docs/sdk/native-sdks/web

Authentication Methods
We have two authentication types:

JSON Web Token (JWT):
JWT is an account-wide app and is available to all the admins and owners of the account. You can have only 1 JWT marketplace app registered in your account. You can generate multiple JWT tokens using the JWT keys, and the tokens operate independently of each other until expired or the credentials have been changed.

A JWT token will contain all the permissions, and there is no way to restrict it. A JWT token is only valid for your account.

To know more, please visit: https://marketplace.zoom.us/docs/guides/auth/jwt

OAuth 2.0:
You can use an OAuth App if you want to have limited permissions for your token. To set up access credentials and request scopes for your app, create an OAuth app on the Marketplace. Follow the Create an OAuth App guide for a full walkthrough.
OAuth2 endpoints are located at https://zoom.us/oauth/.

Depending on the App type (Account Level or User Managed), the app needs to be authorized by either the account admin or the user. To know more, please visit: https://marketplace.zoom.us/docs/guides/build#understanding-app-types

That’s correct, each host of the meeting would need a license if you expect the meetings to go over 40 minutes.

Thanks,
Max

Hi @MaxM thanks for such a detailed answer. Since the number of speakers will be in 100s, a license for everyone is not financially possible right now. I wish to know what other alternatives can I have?

  • One alternative I came up with is, to not provide speakers host privileges. In this case, speakers and attendees will join through the same non-host link. Now my doubts in this are, 1) Can a scheduled zoom meeting be carried out without the host? [I saw that people can join zoom without host if the settings are configured for the same… but is the same possible for SDK and API controlled meetings?] 2) Most probably the admin (who has license) will just schedule the meeting, but won’t join. In that case will auto-recording be possible? If not, can we provide recording privileges to non-host participants?

  • Second alternative, although a bit tricky realistically, is that if the above alternative is not possible, can the admin start the meeting, start the recording, and leave without ending? And in that case what will happen with the recording? Will it continue till the last member leaves?

In both of my options, since the admin will be scheduling the meeting, I suppose we will get 40+ minutes, right?

I know this is not your work but if any quick idea comes to your mind do share.

Thanks a lot for your troubles

Hey @pranayan1506,

You could schedule a meeting with the Create a Webinar API under Host A and then start that webinar with the Web SDK by changing the role that’s used in the zoommtg.join() function to 1.

All of your meetings could be hosted by this user if they are at different times. You would only need a different licensed user to host the meetings if you plan to have concurrent webinars. Then, you can basically see the number of licenses you need as the number of concurrent webinars you expect to have at one time.

To answer your question, yes you can pass off the host role when you leave a webinar. However, if you wanted another user to start the meeting you would want to assign them as an alternative host

I hope that helps!

Thanks,
Max

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