Unable to map meeting registrant id with live participant id

I was using zoom api to get live meeting participant details. Here are some of the observations that I made out of the responses returned with the API which are making it difficult to map registrants with their participant_id.

On registering and approving a participant through the API, we get a response which gives us a registrant id and join link for that participant.

During the meeting, I am using the api to get the live participants details.

When the participants joins through the join link from the API. This will launch the zoom client. But, If the participant is already logged in the zoom client with the same email that was used to register him to the meeting, in this case the “id” returned in the response of the live participant API is different than the registrant_id that I got from the API when the participant was registered for the meeting.

If the participant is not already logged in while joining from the link, the “id” from both the API response(api to register participant and the live participant api) matches, but not in the other case, inspite of the email for the logged in account being same.

Could you please tell me if something can be done so that the “id” for a registrant which is returned by the live meeting api always matches with the registrant_id.

Thank you.

1 Like

Hey @saurabh,

The reason the id is different if the user is already logged in, is because that is their unique user id across the entire Zoom platform.

That being said, the registrant_id should match with the user_id field for the List Meeting Participants API.

Can you use the user_name, or user_id field to match the registrant_id to the participant?

Thanks,
Tommy

Hey @saurabh,

Pardon my mistake with the user_id vs id on the List Meeting Participants API.

Have you tried matching via email?

After testing, if the user joins the meeting with their unique join_url (returned from response of create registrant and List Meeting Registrants endpoint) then the email can be used to match GET /meetings/{meetingId}/registrants to GET /report/meetings/{meetingId}/participants or GET /past_meetings/{meetingUUID}/participants.

Can you describe your full use case so I can work on a different solution if my email suggestion does not fit?

Thanks,
Tommy

Actually, I want to map participants in a live meeting using this API and track users who are live. Since this dashboard API doesn’t have the email field, there is no way of mapping the users when the “id” field mismatches with the “registrant_id”.

Thanks

Hey @saurabh,

I will add this as a feature request, to not override the registrant_id with the user Id when joining a meeting via the registrants join_url while being logged in.

Or maybe the best solution is to add a registrant_id field that always includes the registrant_id, or if registration is not required, is blank.

Per the description in the docs:

“Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.”

4 things can happen:

  1. User is logged in, will display the User ID as the id.
  2. User is not logged in, will display a blank user id.
  3. User registered for meeting and is not logged in, will display registrant_id as the id.
  4. User registered for meeting and is logged in, registrant_id is overridden by the User ID, will display the User ID as the id.

Case 4. is where the improvement needs to be made.

Does this sound accurate to what you are experiencing?

Thanks,
Tommy

Hey @tommy

Yes, exactly, case 4 is where the improvement needs to be made.

If the user joins via the registrants join_url, in both the case, if he is logged in or not, the Live meeting participants API should always return the “id” same as the registrant_id. This should not be overridden by the User ID which is the universally unique identifier of the participant.

Do let me know about any updates and if possible add me to the thread for this feature request so that I can follow.

Thanks

2 Likes

Hey @saurabh, I agree.

Thanks for confirming, I have forwarded all the details to the team and we will work on a solution.

Unfortunately we do not have a public thread/Jira for the updates, so I will post back here. Feel free to also ask for updates or follow our change log: https://marketplace.zoom.us/docs/changelog and upcoming releases page: https://marketplace.zoom.us/docs/guides/getting-started/stay-up-to-date/upcoming-changes/api

JIRA: ZOOM-126518

Thanks for your patience,
Tommy

1 Like

Hey @tommy

I just wanted to add one thing, can we also ensure that we get the same “id” irrespective of the user joining through web or from the zoom client?

Thanks

1 Like

Hey @saurabh,

Yes I will look into this.

Thanks,
Tommy

1 Like

Hey @tommy

By when should I expect these changes to be reflected in the API response?

Thanks

Hey @saurabh,

We don’t have a definitive timeline yet, but it is in our task list. Defiantly next year Q1 or Q2. I will keep you updated. You can also stay updated here.

Thanks,
Tommy

Hey @saurabh,

You can expect this change in our March release.

Thanks,
Tommy

1 Like

Great! Thanks for the update.

1 Like

You’re welcome! :slight_smile:

Thanks,
Tommy

Hey @tommy,

Moving forward, I was trying to use the Zoom WebHooks on end meeting for an OAuth app?
I didn’t get any request on my given Event notification endpoint URL.

Could you please clarify if we can use web hooks for an OAuth app as mentioned in this page or is it deprecated?

Hey @saurabh,

Yes you can use Webhooks with an OAuth application.

Make sure your http server accepts post requests. I am happy to debug Webhook receiving code if you post it here.

Here is an example in Node.js:

Thanks,
Tommy

Hey @tommy

I am able to make the post request to the same endpoint through postman. I am using a ngrok generated endpoint that is mapping to my localhost. I even tested by using a different endpoint from requestbin, I didn’t see any request being made to that endpoint as well when I click ‘End Meeting’. So it shouldn’t be an issue with the webhook receiving code.

As soon as I click ‘End Meeting for all’ in the zoom client app, no requests are made to the endpoint. Looks as if the event is not getting triggered at all.

Are we sure that the event gets triggered whenever the host clicks ‘End Meeting’ in the zoom app?
Do we need to regenerate oauth token for the app after I have made changes to the Feature section in the app and turned on the Event Subsciption?

Thanks

Hey @saurabh,

Double check you have all the Pre Reqs listed here:

https://marketplace.zoom.us/docs/api-reference/webhook-reference/meeting-events/meeting-ending#prerequisites

If you are still having trouble, please schedule a Zoom meeting with me so I can help further:

Thanks,
Tommy

Hey @tommy,

Yes I have checked, all the pre reqs are done from my side.

  1. Given a valid Event Notification Endpoint URL in a features section of the app.
  2. Enabled the event subscription.

Hey @saurabh,

Apologies I had to cancel your scheduled meeting. Please schedule again:

Double check your firewall settings are not blocking requests to your endpoint url.

Thanks,
Tommy