Tracking Meeting Participants

getMeetingParticipants() seems to return much less information compared to what you might get with webhook events such as meeting.participant_joined

Is it possible to map participantId from getMeetingParticipants() to something such as user ID?

Also, it seems both getMeetingParticipants() and meeting.participant_joined both have meeting host requirements (e.g., you need to be the host to call getMeetingParticipants()). Is it strictly for the meeting host, or would a meeting co-host also qualify?

@greyoung Can you please outline use-cases for your application when you need to track this information? What problem are you trying to solve?

In general, if the application is used by a specific participant, that instance of the app can restore full information about the user. Is your app intended to be used by participants?

I’m actually trying to understand the bounds on what can be done in terms of obtaining participant information. We would ideally love the app to provide a consistent experience for all authenticated users, but at this stage, I’m trying to understand what’s possible. Let me break it down a little then into sub-questions and see where the discussions go from there:

a) (Assuming you’re the meeting owner) getMeetingParticipants() returns an array with participant IDs. Is it possible to map those participant IDs to user IDs (assuming the other users are authenticated and not just guests)?

b) For webhook-based meeting participant tracking, I see that there is meeting.participant_joined and its counterpart for when a meeting participant leaves, but these have a “meeting host” requirement. To clarify, would that requirement include or exclude meeting co-hosts?

@greyoung, assuming you’re the meeting owner, participant IDs will be known to you (the host) if the attendee is authenticated as a user on your own account. So, if user A is on your account, participant ID will match user ID. User B who is not on your account will use a meeting-specific unique/anonymous ID. The same applies for the meeting event webhooks.

That description of participant ID is very helpful!

I think this would be helpful to clarify in the Zoom App docs. Even the public docs for the webhook events do not explain the caveats of the participant ID in this detail (e.g., the fact that user IDs are not visible if they are not in the same account as the owner/host).

@michael.zoom: during testing, I’m not seeing the participant IDs match the user IDs when calling getMeetingParticipants. In fact, the participant ID of my own user is not even my user ID.

I’m currently on Zoom App SDK version 0.13.0. Is the behavior you’re describing part of a more recent release, and if so, where can I download the latest release (I used to check the Zoom Chat, but it looks like it stopped at 0.13.0, which was almost three months ago)?

@michael.zoom @evgeny.balashov: bumping this

Hey @greyoung, a Zoom user’s participant ID is independent of their user ID.

The participant ID is only useful in the context of a single Zoom meeting. There’s currently no way to retrieve user information from the Zoom Apps SDK. When installing, our app requests the permission “View your user information/user:read” (see “Scopes” under your app listing) and uses the user ID to make a request server-side to the /users/me endpoint on the Zoom API to retrieve user information.

The Zoom team has been working on shipping a participantUUID that will be consistent across breakout rooms (technically breakout rooms are different meetings, so a participant’s participant ID changes between rooms today)

Hope this helps.


1 Like

@om7 Thanks for your input here. Let me know if you have any questions @greyoung.

No questions here @MaxM, but as a whole I think it would be great to standardize the information/permissions needed for developers to access certain pieces of data, especially participants.

@greyoung Thanks for that feedback. I’ll work with our documentation team to have these details clarified in our docs.

In the meantime, you should be able to use the getUserContextAPI to to get the participantUUID which should limit the permissions you need to use for your app.