API registration form

I am an healthcare API client with sub accounts. My one sub account is NOT HIPAA compliant and i would like all guests to fill out a 7 question registration form before entering the video meeting.  This non HIPAA api account will have 10 users and all of those users require the same questions for guests who enter their scheduled calls.  I have had 3 zoom techs say no problem just enable the feature via API, fill out the registration questions within “my meetings” for the api users and zoom will send out a link for registration after the info is filled out it will send out the video call invitation… This method will allow for more in depth reporting of who was on the call and specific questions in the registration form.  Please help

@Tyler, you can enable registration for a meeting, please refer to https://zoom.github.io/api/#update-a-meeting

Hello,
I know there is a separate API that allows us to update registration questions and fields of a scheduled Webinar: /webinars/{webinarId}/registrants/questions.

Is there a way we can define the list of registration questions and fields at the time of scheduling the Webinar using this single API(/users/{userId}/webinars)?

Hey @arjun.bsci,

No, you need to use the Update Webinar Registration Questions endpoint. :slight_smile:

Thanks,
Tommy

1 Like

Hello Tommy,

We have a default webinar template with a Registration form set at the Account Level.

When we schedule the Webinar via the Web Interface without selecting any webinar template. Default Registration form(with 5 standard and 2 custom questions) is getting set.

But when we are scheduling a Webinar via API, the Default Registration form is not getting set.

We are using this WebinarCreate API with template_id param as blank.

Please advise how to set the default Registration form when scheduling the webinar via API. This is a blocker for us.
Webinar Scheduled from Zoom Web Interface: zoom.us/j/98257692720
Webinar Scheduled from API: zoom.us/j/92425145721

Also, another thing is when we are trying to pass “template_id” as a param using this WebinarCreate API, we are getting the following error: “Only the template owner has the permission to use this template for Webinar creation.
I am using webinar template Id#: “-EzPXp3aRDqk8SCviWIJTg” which is created under my user account only.

Hi @arjun.bsci,

Can you provide a copy of the request URL/payload you’re using to create a webinar via API, which is throwing this error? This will be helpful for me to take a closer look at what exactly is being passed. If this contains sensitive information, you can email this to developersupport@zoom.us and reference this thread.

In the meantime, you should also ensure you’re setting the Registration option for Webinar as required in order to utilize registration questions.

Thanks, and I’ll keep an eye out!

Best,
Will

1 Like

Thank you Will for replying back.
Please refer to the request and response below.

1. I am using JWT token with “template_id”:“lYSi9364Rhi5R-iPnjpHhQ” and template_id exists under the zoom user account.
Issue: Receiving error: "Only the template owner has the permission to use this template for Webinar creation."

request===System.HttpRequest[Endpoint=https://api.zoom.us/v2/users/arjun.srivastava@bsci.com/webinars, Method=POST]

requestBody==={“uuid”:null,“type”:5,“topic”:“09/09/2020, Dr. Strange, Community Event”,“timezone”:“America/New_York”,“template_id”:“lYSi9364Rhi5R-iPnjpHhQ”,“status”:null,“start_url”:null,“start_time”:“2020-09-09T08:02:00”,“settings”:{“watermark”:null,“waiting_room”:true,“use_pmi”:null,“show_share_button”:null,“registration_type”:2,“registrants_email_notification”:true,“registrants_confirmation_email”:null,“practice_session”:null,“participant_video”:false,“panelists_video”:null,“mute_upon_entry”:false,“join_before_host”:false,“in_meeting”:null,“host_video”:true,“hd_video”:null,“global_dial_in_numbers”:null,“global_dial_in_countries”:null,“enforce_login_domains”:null,“enforce_login”:false,“contact_name”:null,“contact_email”:null,“cn_meeting”:null,“close_registration”:null,“auto_recording”:null,“audio”:“both”,“approval_type”:0,“alternative_hosts”:null,“allow_multiple_devices”:null},“recurrence":null,“password”:null,“occurrences”:null,“join_url”:null,“id”:null,“host_id”:"arjun.srivastava@bsci.com”,“duration”:60,“custom_questions”:null,“created_at”:null,“agenda”:null}

response===System.HttpResponse[Status=null, StatusCode=400]

response.getBody()==={“code”:3003,“message”:“Only the template owner has the permission to use this template for Webinar creation.”}

2. Creating a webinar via API using JWT token without “template_id” parameter.
Issue: The default Registration form from the Zoom Account level setting is not getting set.
Note: If we schedule the Webinar via the Web Interface, the Default Registration form is getting set.

request===System.HttpRequest[Endpoint=https://api.zoom.us/v2/users/arjun.srivastava@bsci.com/webinars, Method=POST]

requestBody==={“uuid”:null,“type”:5,“topic”:“09/09/2020, Dr. Strange, Community Event”,“timezone”:“America/New_York”,“template_id”:null,“status”:null,“start_url”:null,“start_time”:“2020-09-09T08:02:00”,“settings”:{“watermark”:null,“waiting_room”:true,“use_pmi”:null,“show_share_button”:null,“registration_type”:2,“registrants_email_notification”:true,“registrants_confirmation_email”:null,“practice_session”:null,“participant_video”:false,“panelists_video”:null,“mute_upon_entry”:false,“join_before_host”:false,“in_meeting”:null,“host_video”:true,“hd_video”:null,“global_dial_in_numbers”:null,“global_dial_in_countries”:null,“enforce_login_domains”:null,“enforce_login”:false,“contact_name”:null,“contact_email”:null,“cn_meeting”:null,“close_registration”:null,“auto_recording”:null,“audio”:“both”,“approval_type”:0,“alternative_hosts”:null,“allow_multiple_devices”:null},“recurrence":null,“password”:null,“occurrences”:null,“join_url”:null,“id”:null,“host_id”:"arjun.srivastava@bsci.com”,“duration”:60,“custom_questions”:null,“created_at”:null,“agenda”:null}

response===System.HttpResponse[Status=null, StatusCode=201]

response.getBody()==={“uuid":“fNjeQS+eQteh2+FaziXC3Q==”,“id”:99095596572,“host_id”:“s8PmOOG_QDiDJF65rLI2Wg”,“host_email”:"arjun.srivastava@bsci.com”,“topic”:“09/09/2020, Dr. Strange, Community Event”,“type”:5,“start_time”:“2020-09-09T12:02:00Z”,“duration”:60,“timezone”:“America/New_York”,“created_at”:“2020-09-08T21:45:34Z”,“start_url”:“https://bsci-nm.zoom.us/s/99095596572?zak=eyJ6bV9za20iOiJ6bV9vMm0iLCJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJjbGllbnQiLCJ1aWQiOiJzOFBtT09HX1FEaURKRjY1ckxJMldnIiwiaXNzIjoid2ViIiwic3R5IjoxMDAsIndjZCI6ImF3MSIsImNsdCI6MCwic3RrIjoiU1l2NF9BUXE3U3V5OUlIRENlTTFvSGpVUGU5WWlES0tKWUlyOFJXNFg3US5CZ1VzV0VOTlozRkpRVnBGTjJGNU9FeENiM1Y2WnpCbFRFdzBVM2RIVG0xVFRsUXdTRUZWYkVnclRUQnliejFBTVRJNVlUbGlNVGszWVRSalpqRTBNR0l6TWpGbE56VXdPVEZtTkRSaVkyVXpPRFl5T0RSak1XSXpNbVJrTWpRMk16ZzFOR0k1T1RNMVkySTJPR0kwTUFBZ2RFNXNSVzVtYVROWVRFMXhiV1JrUTFGSmJreEVTR1J1ZW1WYWEyMWpVRFVBQTJGM01RIiwiZXhwIjoxNTk5NjA4NzM1LCJpYXQiOjE1OTk2MDE1MzUsImFpZCI6ImpnMlZ5amt2UmJlM05TUy1xYWtsUkEiLCJjaWQiOiIifQ.P-OtyUEImnMOCoACQsEvJxYNkqsAhvyJAwaQcqjMCUQ",“join_url”:“https://bsci-nm.zoom.us/j/99095596572”,“registration_url”:“https://bsci-nm.zoom.us/webinar/register/WN_9AOq7u2RSZShMMqxzRApNA”,“settings”:{“host_video”:true,“panelists_video”:false,“approval_type”:0,“audio”:“both”,“auto_recording”:“none”,“enforce_login”:false,“enforce_login_domains”:"",“alternative_hosts”:"",“close_registration”:true,“show_share_button”:false,“allow_multiple_devices”:true,“practice_session”:false,“hd_video”:false,“question_answer”:true,“registrants_confirmation_email”:true,“on_demand”:false,“request_permission_to_unmute_participants”:false,“global_dial_in_countries”:[“CA”,“US”],“global_dial_in_numbers”:[{“country_name”:“Canada”,“number”:"+1 2042727920”,“type”:“toll”,“country”:“CA”},{“country_name”:“Canada”,“number”:"+1 4388097799",“type”:“toll”,“country”:“CA”},{“country_name”:“Canada”,“number”:"+1 5873281099",“type”:“toll”,“country”:“CA”},{“country_name”:“Canada”,“number”:"+1 6473744685",“type”:“toll”,“country”:“CA”},{“country_name”:“Canada”,“number”:"+1 6475580588",“type”:“toll”,“country”:“CA”},{“country_name”:“Canada”,“number”:"+1 7789072071",“type”:“toll”,“country”:“CA”},{“country_name”:“US”,“number”:"+1 6699006833",“type”:“toll”,“country”:“US”},{“country_name”:“US”,“number”:"+1 2532158782",“type”:“toll”,“country”:“US”},{“country_name”:“US”,“number”:"+1 3462487799",“type”:“toll”,“country”:“US”},{“country_name”:“US”,“number”:"+1 3017158592",“type”:“toll”,“country”:“US”},{“country_name”:“US”,“number”:"+1 3126266799",“type”:“toll”,“country”:“US”},{“country_name”:“US”,“number”:"+1 6465588656",“type”:“toll”,“country”:“US”}],“contact_name”:“Arjun Srivastava",“contact_email”:"arjun.srivastava@bsci.com”,“registrants_restrict_number”:0,“registrants_email_notification”:true,“post_webinar_survey”:false,“meeting_authentication”:false,“additional_data_center_regions”:}}

3. Do you know the timeline for the resolution of the bug listed in the below post:

Hi @arjun.bsci,

Thanks so much for getting back to me with all of these details.

  1. I am using JWT token with “template_id”:“lYSi9364Rhi5R-iPnjpHhQ” and template_id exists under the zoom user account.**
    **Issue: Receiving error: “Only the template owner has the permission to use this template for Webinar creation.”

I’ve raised this issue with our Engineering team and they are actively looking into it. I’ll let you know as soon as I hear back. (ZOOM-195337)

  1. Creating a webinar via API using JWT token without “template_id” parameter.
    Issue: The default Registration form from the Zoom Account level setting is not getting set.
    Note: If we schedule the Webinar via the Web Interface, the Default Registration form is getting set.

Thank you for raising this—I’ve submitted a feature request to our team to ensure parity between the behavior in our API, compared to when you create a webinar in the UI. It’s a great point, and I’ll make sure to advocate for this. (ZOOM-195340)

  1. Do you know the timeline for the resolution of the bug listed in the below post

While we don’t yet have a specific timeline, we will be sure to update the post as soon as we have more details.


I hope this helps!

Best,
Will

1 Like

Hi @arjun.bsci,

I’ve heard back from our team in regards to point 1, and we can see that the JWToken that is being used when trying to apply the template isn’t associated with the account owner for this meeting. You will need to ensure that this request to apply the template is being made by the account owner associated with the JWToken and meeting in question.

In regards to point 2, our team confirmed that this is on our roadmap and will be part of an upcoming release.

Thanks!
Will

Hello @will.zoom,
Thank you for your reply.

I’ve heard back from our team in regards to point 1, and we can see that the JWToken that is being used when trying to apply the template isn’t associated with the account owner for this meeting. You will need to ensure that this request to apply the template is being made by the account owner associated with the JWToken and meeting in question.

That’s not true. There is little confusion here.

JWT app is an Account-based app, not specific to any zoom user account or owner.
JWT token cannot be generated by using any user credentials but simply gets generated using client key and secret.
JWT token can be used to make transactions against different user accounts.

While creating the webinar, we are already passing the userID as a param to specify the user context where we need to schedule the webinar.
Note: Userid passed as a parameter is valid and template_Id also belongs to the same zoom user account.

I have even tried to use the OAuth token instead of the JWT token and got the same error.

This is a blocker for us and we need to urgently work on this requirement. it would be great if we can get on a quick call to resolve this issue, please.

In regards to point 2, our team confirmed that this is on our roadmap and will be part of an upcoming release.

  • It will be very helpful if you could please confirm the specific date when this will be resolved?

Hey @arjun.bsci,

I have just private messaged you.

Thanks,
Tommy

1 Like