Creating webinars using the API

Last updated: 2024-01-31Contributors
Edit this page

RingCentral Webinar APIs are in beta

The RingCentral Webinar API is currently in beta. Developers should be aware of the following:

  • While efforts will bbe made to notify developers of changes that may impact them, no guarantees are offered around backwards compatibility. Changes can be introduced at any time that may impact your applications.
  • Webinar APIs are not currently available in our sandbox environment and developers are asked to do development in our production environment.

Partners wishing to build products for RingCentral customers should apply to the Webinar Partner Developer Program to obtain a free Developer license for RingCentral Webinar.

Webinars can be created using the REST API, which can be helpful when integrating RingCentral Webinar with third-party systems like CRMs, and marketing tools in which campaigns are created an managed. For example, your company may have a standardized go-to-market process for introducing new products in which when a campaign is created in your CRM for a quarterly customer communication, you want to automatically create a webinar to correspond with that campaign.

When creating a webinar via the API, you will need to specify the webinar's title and description, along with any number of settings you wish the webinar to obey.

Webinar settings

The following selection of settings are some of the most commonly used by developers. For a complete list of all available settings, please consult the API Reference.

Setting Description
recordingEnabled Enables recording for the webinar. If set to false all other recording settings cannot be set.
autoRecord Starts the recording automatically when the webinar goes live.
panelistWaitingRoom Indicates if Panelists should be places to waiting room after joining
attendeeAuthentication Indicates if attendees have to be authenticated users. Values can include Guest, AuthenticatedUser, AuthenticatedCoworker
password A password used by attendees to gain entrance to a webinar.
qnaEnabled Turns on/off Q&A for a webinar.
pollsEnabled Turns on/off polls for a webinar.
registrationEnabled Turns on/off registration for a webinar. Set to false for internal webinars, and set to true for marketing webinars.
postWebinarRedirectUri Sets the URL to redirect webinar attendees to when the webinar comes to an end.

Remember, for a complete list of all webinar settings and preferences, please consult the RingCentral API Reference.

When to require registration for a webinar

The registrationEnabled setting is especially important depending upon your use case. For example, internal webinars such as a large internal company meeting should have registration disabled. When registration is disabled, a single join URL will be provided and shared across all attendees. Upon clicking this shared join URL each attendee will be prompted to enter their first and last name, but all other registration functions (i.e. registration questions) will be bypassed. This makes it a lot easier for you to share the webinar with your staff via a single email or a calendar invite.

If you are hosting an external or "marketing webinar," it is best to set registrationEnabled to true. Doing so will provide each individual attendee a unique join URL for enhanced tracking and analytics. However, this also means that there is more overhead in managing attendees as a separate email/calendar invite must be sent to each individual attendee.

Creating a webinar session

Webinars are currently limited to only one session.

It is the intention to support multiple sessions per webinar. However, during the early phases of the product, webinars are limitted to having a single session.

Once the webinar is created, it is time to schedule a webinar session. A webinar session is associated with a date and time, is what hosts, cohosts and panelists are invited to help facilitate, and is for which attendees will register.

Example code

const RC = require('@ringcentral/sdk').SDK

const WEBINAR = process.env.WEBINAR_ID

var rcsdk = new RC({
    'server':       process.env.RC_SERVER_URL,
    'clientId':     process.env.RC_CLIENT_ID,
    'clientSecret': process.env.RC_CLIENT_SECRET
});
var platform = rcsdk.platform();
platform.login({ 'jwt':  process.env.RC_JWT })

platform.on(platform.events.loginSuccess, function(e){
    create_webinar_session()
});

async function create_webinar_session(){
    try {
    let endpoint = '/webinar/configuration/v1/webinars/' + WEBINAR + '/sessions'
    platform.post(endpoint, {
        scheduledStartTime: "2023-05-10T09:00:00.000Z",
        scheduledDuration: 7200, // 2 hours, expressed in seconds
        timezone: "America/New_York"
    })
        .then(function(resp) {
          return resp.json()
        })
        .then(function (json) {
            console.log('Response: ', json )
        });
    } catch(e) {
        console.log("An error occured: ", e.message)
        process.exit(1)
    }
});

Inviting hosts, cohosts, panelists and attendees

Once a webinar sessions has been scheduled you can begin the process of inviting and recruiting people to help you facilitate the webinar. This is done through an invitation process. Those who accept your invitation will be given additional privileges during the webinar allowing them to share their video, screens and audtio.

Attendees of your webinar will be required to register prior to joining the webinar session. Registration can be done well in advance via a web-form, or can be handled just-in-time and on-demand. It is through the registration process that an attendee will obtain a unique join link to track their attendance.