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?

2 Likes

@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.

Oliver

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.

It seems the question about host requirements we’re not answered.

I’m wondering if a co-host can run the getMeetingParticipants() method and retrieve the same data as the meeting owner (host). This is crucial to our use case.

The co-host may not be logged in to a Zoom account either, but is assigned as co-host when joining the meeting.

We are working on allowing co-hosts to get more extensive meeting data. Can you please share more about your use-case?

It seems that the getMeetingParticipants() method now requires the owner role? This method returns Error: No Permission for this API. [code:80003, reason:require_meeting_owner_role] when calling it as a host.

The use case that I want to use this for is for providing a guided with a UI way to configure breakout rooms. When I am a host (and not an owner), I am unable to programmatically assign users to a breakout rooms, because their user info is not returned from the breakout room related methods either.

The method assignParticipantToBreakoutRoom says that it supports the host and co-host role. But I can’t find a way as a meeting host to get the participantIDs that to pass as a parameter for this method. Am I missing something?

This is frustrating because it will effectively make the my app unusable for any person who did not originally schedule the meeting, which is also unable to changed inside of a meeting. Shouldn’t having the host role be enough?

Please let me know if I am missing a way to do this, or if there is any way zoom can support this use case. Thanks

3 Likes

Considering that the participants list (at least display names) are visible even to guests, I can’t understand why this information is locked to the meeting owner only. Not even the host can retrieve it, claimed or assigned as host, as far as I understand it.

The Meeting SDK doesn’t have this type of restriction. The .getAttendeeslist() is available to guests, that is neither co-host nor host.

This is blocking my entire use case: counting the total number of attendees by a number in their display names.

I’m keen on building a Zoom App, to render my app directly inside the Zoom client. As of now, I have a web app which signs in an additional participant for this single purpose.

1 Like

According to this comment from a staff member, it seems like owner is synonymous to both host and co-host. Is this correct?

Edit: It is not correct. I tried it myself. Here’s what I found. tl;dr: owner means meeting owner, and is not synonymous with host nor co-host.

1 Like

We are aiming to shift the permission to host this year

2 Likes

Thank you Evgeny! This will be an important and dramatic improvement!

1 Like