Uniquely identify user based on the URL they have joined

I have a requirement to uniquely identify who has joined the meeting based on a parameter in the URL. We currently subscribe to web hooks which provide us information such as:

{
  event: 'meeting.participant_joined',
  account_id: '[REDACTED]',
  object: {
    duration: 1,
    start_time: '2020-03-25T04:53:45Z',
    timezone: 'America/Los_Angeles',
    topic: 'Snacks',
    id: '[REDACTED]',
    type: 2,
    uuid: '[REDACTED]',
    participant: {
      id: '[REDACTED]',
      user_id: '[REDACTED]',
      user_name: 'Gajus Kuizinas',
      join_time: '2020-03-25T04:53:45Z'
    },
    host_id: '[REDACTED]'
  }
}

The challenge is that we don’t have any link between id or user_id and our database, i.e. Is there a way to add unique ID to the meeting invitation ID that would appear in web hook information about the participant?, e.g.

https://zoom.us/j/[REDACTED]?uid=foobar

when used should produce:

{
  event: 'meeting.participant_joined',
  account_id: '[REDACTED]',
  object: {
    duration: 1,
    start_time: '2020-03-25T04:53:45Z',
    timezone: 'America/Los_Angeles',
    topic: 'Snacks',
    id: '[REDACTED]',
    type: 2,
    uuid: '[REDACTED]',
    participant: {
      uid: 'foobar',
      id: '[REDACTED]',
      user_id: '[REDACTED]',
      user_name: 'Gajus Kuizinas',
      join_time: '2020-03-25T04:53:45Z'
    },
    host_id: '[REDACTED]'
  }
}

Hey @gajus,

There is no way to do this via a URL, but it is built in using the registrant and participant IDs.

Please see my posts here for more details:

Thanks,
Tommy

Very cool. Thank you

Unfortunately, that is not an option.

Turns out it only works for paid users.

{
    "code": 200,
    "message": "Only available for Paid user: [REDACTED]"
}

What are my options of users are not paid? (Which payment level does this require?)

Hey @gajus,

Correct, the dashboard endpoints requires a Business or a higher plan, and the report endpoints requires a Pro or higher plan.

The Get Past Meeting Participant endpoint also requires a Pro or higher plan.

Thanks,
Tommy

To map our application user with zoom meeting participant, we are thinking of below approach, let us know if this is correct

  1. Create meeting with registration enabled and automatic approval.
  2. Get a unique join url for every participant using ‘meetings/{meetingId}/registrants’ POST API. Participants will join using their respective join urls.
  3. Get meeting participant report using ‘report/meetings/{meetingId}/participants’ API. This provides the duration for which participant attended the meeting.

The ‘registrant_id’ returned in step 2 will be same as participant ‘id’ returned in step 3. Using this we will be able to map our application user with zoom meeting participant.

Also, can we restrict joining a meeting only through unique url obtained in step 2? Without a unique url, no user should be able to join the meeting.

Hey @VijayDwivedi,

Correct! :slight_smile:

Thanks,
Tommy

Thanks Tommy for confirming. Have couple of questions, which we are exploring to secure our meetings / webinars.

  1. For registration enabled meetings & webinars, can we enforce only participants with a valid registrant url are able to join ?

  2. Is it possible to hide meeting / webinar ID and password in the zoom client for participants?

Hey @VijayDwivedi,

Yes, you can do this with Registration:

For Zoom Client questions, please reach out to support.zoom.us. :slight_smile:

Thanks,
Tommy