Create a meeting - join before host

When creating a meeting I have the option of “join_before_host”, the problem is that when I set it to true, it doesn’t work, it still ask for the host.

This is the API I’m using:

This is the json I’m sending:

{
“topic”: “Test”,
“type”: “2”,
“start_time”: “2020-07-18T19:30:00”,
“duration”: “60”,
“timezone”: “America/Mexico_City”,
“password”: “pass123”,
“agenda”: “Test”,
“settings”: {
“host_video”: “false”,
“participant_video”: “true”,
“cn_meeting”: “false”,
“in_meeting”: “false”,
“join_before_host”: “true”,
“mute_upon_entry”: “true”,
“watermark”: “false”,
“use_pmi”: “false”,
“approval_type”: “0”,
“registration_type”: “1”,
“enforce_login”: “false”,
“registrants_email_notification”: “true”
}
}

It doesn’t throw any error, zoom links work, the thing is what I said, it wont work if host don’t get into the call, even when I set ‘true’ the join_before_host.

What I’m doing wrong? thanks.

Hey @econsulo,

Please try the following request body JSON:

{
  "topic": "Test",
  "type": "2",
  "start_time": "2020-07-18T19:30:00",
  "duration": "60",
  "timezone": "America/Mexico_City",
  "password": "pass123",
  "agenda": "Test",
  "settings": {
    "join_before_host": true
  }
}

Also, double check the join before host settings are not set to off and locked at the account level.

Thanks,
Tommy

I updated this settings as you suggested:

And I even disabled the waiting room setting.

Then I created the meeting as follow:

{
  "topic": "Test 2",
  "type": "2",
  "start_time": "2020-07-20T15:15:00",
  "duration": "60",
  "timezone": "America/Mexico_City",
  "password": "pass123",
  "agenda": "Test 2",
  "settings": {
    "join_before_host": true
  }
}

And this was the result:

{
  "agenda": "Test 2",
  "created_at": "2020-07-20T20:13:59Z",
  "duration": 60,
  "encrypted_password": "d3ZoNXhpaEZuQno0MDg5T0I2UHVXUT09",
  "h323_password": "5466647",
  "host_id": "kSsTuaGTSASN9JJC87v8LA",
  "id": {id},
  "join_url": "{url}",
  "password": "pass123",
  "pstn_password": "5466647",
  "settings": {
    "alternative_hosts": "",
    "approval_type": 2,
    "audio": "both",
    "auto_recording": "none",
    "close_registration": false,
    "cn_meeting": false,
    "enforce_login": false,
    "enforce_login_domains": "",
    "global_dial_in_countries": [
      "US"
    ],
    "global_dial_in_numbers": [
      {
        "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",
        "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 6699009128",
        "type": "toll"
      }
    ],
    "host_video": false,
    "in_meeting": false,
    "join_before_host": true,
    "meeting_authentication": false,
    "mute_upon_entry": false,
    "participant_video": false,
    "registrants_confirmation_email": true,
    "registrants_email_notification": true,
    "request_permission_to_unmute_participants": false,
    "use_pmi": false,
    "waiting_room": true,
    "watermark": false
  },
  "start_time": "2020-07-20T20:15:00Z",
  "start_url": "{url}",
  "status": "waiting",
  "timezone": "America/Mexico_City",
  "topic": "Test 2",
  "type": 2,
  "uuid": "{uuid}"
}

Using the join URL, still ask me to wait for the host to start the call, Am I still missing something?

Thanks

Hey @econsulo,

It looks like you were successfully able to set the join before host to true, however, it looks like the waiting room option is still turned on. Please try disabling the waiting room in your account settings as well.

Let me know if that fixes it. :slight_smile:

Thanks,
Tommy

Thanks tommy for the information. I am facing the same issue. However, even after disabling waiting room option, the issue has not been solved. Like, the discussion above i have already kept “join_before_host” to false in api setting and in zoom account setting.

Hey @ashutosh2,

Thank you for reaching out to the Zoom Developer Forum. Just to make sure that I’m understanding your issue correctly, it sounds like you’re not able to Join Before Host even though you enabled this in the API call. Are you able to provide the request body as well as the response that you’re getting?

Thanks,
Max

We’re also seeing this with our integration. It seems to have just started in the last month.

Here’s an example:

Request body:
{
“topic”:“Bobby Meeting (Customer Care Representative Clone)”,
“type”:2,
“start_time”:“2020-12-16T15:45:00-05:00”,
“duration”:15,
“agenda”:"",
“settings”:{
“host_video”:true,
“participant_video”:true,
“audio”:“both”,
“audio_recording”:“cloud”,
“approval_type”:2,
“join_before_host”:true,
“enforce_login”:false,
“waiting_room”:false
}
}

This results in a meeting that looks like this:

{
   "uuid":"<REDACTED>",
   "id":95372028137,
   "host_id":"<REDACTED>",
   "host_email":"samiur@breezyhr.com",
   "topic":"Bobby Meeting (Customer Care Representative Clone)",
   "type":2,
   "status":"waiting",
   "start_time":"2020-12-16T20:45:00Z",
   "duration":15,
   "timezone":"America/New_York",
   "created_at":"2020-12-16T20:38:38Z",
   "start_url":"<REDACTED>",
   "settings":{
      "host_video":true,
      "participant_video":true,
      "cn_meeting":false,
      "in_meeting":false,
      "join_before_host":true,
      "mute_upon_entry":false,
      "watermark":false,
      "use_pmi":false,
      "approval_type":2,
      "audio":"both",
      "auto_recording":"none",
      "enforce_login":false,
      "enforce_login_domains":"",
      "alternative_hosts":"",
      "close_registration":false,
      "show_share_button":false,
      "allow_multiple_devices":false,
      "registrants_confirmation_email":true,
      "waiting_room":true,
      "request_permission_to_unmute_participants":false,
      "global_dial_in_countries":[
         "US"
      ],
      "global_dial_in_numbers":[
         {
            "country_name":"US",
            "number":"+1 3126266799",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 6465588656",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 3017158592",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 3462487799",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 6699006833",
            "type":"toll",
            "country":"US"
         },
         {
            "country_name":"US",
            "number":"+1 2532158782",
            "type":"toll",
            "country":"US"
         }
      ],
      "registrants_email_notification":true,
      "meeting_authentication":false,
      "encryption_type":"enhanced_encryption",
      "approved_or_denied_countries_or_regions":{
         "enable":false
      }
   }
}

This same user (and related auth token) is able to schedule in Zoom directly without any requirement for the host to join first.

Screenshot: https://share.bzy.hr/E0u4odKe

Hey @darren,

Thanks for sharing these details—I believe I can see why this is occurring.

In your request, you’re setting waiting_room false, but it’s automatically being set to true because there’s no password being passed for the meeting. Since Zoom now requires that either a password is passed or a waiting room is enabled for all meetings (see this announcement), if a password isn’t passed, the waiting room will be turned on by default for the meeting when it’s created.

If a waiting room is turned on, this will override the join_before_host option.

If you provide a passcode in your request, set waiting room: false, and set join_before_host: true, I believe this should work as intended.

Let me know if this helps!
Will

Thanks! Will report back.

Thanks, @darren! Keep me posted. :slight_smile:

I found that when attempting to use the “join_before_host” param, it was only observed when using a “type 2” scheduled meeting with a start time. In this case, the user settings for waiting_room and join_before_host are overridden by the corresponding parameters.

When using a “type 1” instant meeting the value of the parameter is not observed.

Hi @shaihulud,

Thanks for reaching out! Do you still have any questions about this or did my post above help? Note that you will need to use meeting type 2 to enable join before host. Instant meetings (type 1) don’t support waiting rooms.

Thanks,
Will