Functional disparity between create webinar with template manually vs programmatically

When creating a webinar, one can choose a template to use - both in the UI and also now via the API webinar create end point. However the implementation of the API’s code doesn’t seem to match that of the UI.

Specifically, when creating a webinar with a template via the API, some fields are not read from the template and therefore not carried across into the new created webinar:

  • Video
    • Panelists (when tested 30/Apr/21: set to Off in the template, gets wrongly changed to On in the created webinar)
  • Invitiations
    • Approval (when tested 30/Apr/21: set to Manually Approve in the template, gets wrongly changed to Automatically Approve in the created webinar)
  • Webinar Options
    • “Automatically record webinar in the cloud” (when tested a few months ago, setting is ignored and drops to it’s default in the created webinar)
  • Q&A
    • “Allow anonymous questions” (when tested a few months ago, setting is ignored and drops to it’s default in the created webinar)


Which App Type (OAuth / Chatbot / JWT / Webhook)?

  • Using a custom c# app with JWTConnection (i.e. api key and api secret)

Which Endpoint/s?

How To Reproduce (If applicable)

  • Using a zoom pro account:
  • Create a webinar template and set as many options in the template as possible, save.
  • Create a new webinar from that template in the website / user interface.
  • Result: webinar has held the settings in the new created webinar
  • Pull all templates in use from the template list end point
  • Go to webinarcreate end point (see link above) and create a new webinar using template Id which references previously created template


Functionality matches that of the website - i.e. all the appropriate template field selected options have pulled through to the created webinar


Only some of the selected template options get set on the created webinar.

Hi @simon.crouch,

Thanks for reaching out about this and for sharing these details.

One point I wanted to confirm—are you passing a request body along with your Webinar Create request, in addition to the template ID? If you’re passing a request body, are the values the same as your template?

Or, are you just passing the webinar ID in the request URL as follows:{userId}/webinars?template_id={templateId}

Let me know when you have a chance—thanks!

So yes we always pass these below details - which use ZoomNet nuget package and these parameters match the API values and are always filled in:

public async Task<long> CreateWebinar(ZoomConnectionDetail connectionDetails, ZoomWebinar zoomWebinar)
    using (var zoomClient = new ZoomClient(new JwtConnectionInfo(connectionDetails.ApiKey, connectionDetails.ApiSecret)))
        var webinarResult = await zoomClient.Webinars.CreateScheduledWebinarAsync(
        templateId: zoomWebinar.ZoomTemplateId,
        settings: new ZoomNet.Models.WebinarSettings { ApprovalType = ZoomNet.Models.MeetingApprovalType.Automatic });

        return webinarResult.Id;

If you’re passing a request body, are the values the same as your template?

Hopefully the above answers your question - but it not, which values do you think conflict? To clarify, the template does apply correctly to the created webinar (e.g. with logos taken from the template etc) but the previously mentioned details don’t carry across. It’s like the implementation of the API uses different code to that created in the UI.
Our zoom user id matches that of the zoom template id (i.e. the template is against that zoom account) and all the other details in the code (event name, agenda, start date, duration, time) all get placed corrected in the created webinar.

Hi @simon.crouch,

Thanks for clarifying these additional details. I’m working on reproducing this locally, but was hoping you might be able to share the exact request you’ve tested on with me at — this would be helpful for taking a closer look at your API request/response and comparing to the same webinar in the UI. If you’re able to share this with me there, please reference this thread in your email as well.

Thank you,