Participant_id inconsistency between webhook and API

Format Your New Topic as Follows:

API Endpoint(s) and/or Zoom API Event(s)
Link the API endpoint(s) and/orZoom API Event(s) you’re working with to help give context.

Details on your question, workflow or the problem you’re trying to solve.
We have a user-level zoom app and are trying to map participants to screen sharing. We rely on meeting.sharing_started and meeting.sharing_ended webhooks to get the screen sharing data because our user-level app does not give us the dashboard_meetings:read:admin scope to access the /metrics/meetings/{meetingId}/participants/sharing endpoint. We also rely on the /past_meetings/{meetingId}/participants API endpoint to get all participant data after the meeting has ended.

We then try to map each screen sharing segment to the participant that it belongs to. This works well for logged in zoom users within our account, but does not for external users.

The full error message or issue you are running into, where applicable.
Both the meeting.sharing_ended and /past_meetings/{meetingId}/participants docs state that the participant’s id field will be empty if the user is not logged in. However, we are seeing that field empty in the meeting.sharing_ended and meeting.sharing_started webhook payloads, but present in the /past_meetings/{meetingId}/participants API response payload.

example meeting.sharing_ended webhook payload for an external participant:

{"id": "", "user_id": "*****", "user_name": "E***** M*****", "sharing_details": {"source": "", "content": "*****", "date_time": "*****", "file_link": "", "link_source": ""}}

example /past_meetings/{meetingId}/participants API response for the same external participant in the same meeting:

{"id"=>"8Sf*******", "name"=>"E***** M*****", "user_email"=>""}

Is this expected? The docs make it sound like both id fields should be empty.

In addition, if we can’t use the participant’s id for mapping screen sharing to participant, how can we achieve this mapping for external/logged out users? The user_id field seems to always be populated in the meeting.sharing_ended webhooks, but not in the /past_meetings/{meetingId}/participants API response. The last thing I can think of is using name for the mapping, but that may not be a very unique identifier.


Hi @ryan.buchmayer
Hope you are doing great and thanks for reaching out to the Zoom Developer Forum.
After reading all the details you have shared with us, I would like to go ahead and do some testing on my end so I can provide you better guidance.
Please allow me some time to do so and I will come back to you with an update shortly.

1 Like


any updates on this?

Hi @Ryan
I am really sorry for the late reply on this!
You are right, in our Docs it is sated that the value of the field “id” will be empty if the user is not logged in.
But you are saying that when you are calling the Get Past meetings endpoint, you are actually getting an “id” value for non-logged-in users, correct?

I will go ahead and send you a private message so we can exchange more information since I am not able to replicate this behavior on my end.

Wrong Ryan :wink: cc ^ @ryan.buchmayer

Oh!!! @ryan thanks for letting me know!!! Have an amazing day!!!
I meant @ryan.buchmayer :slight_smile: