Joining and Leaving Meetings

Description
If you happened to miss participants joining and leaving meetings (exact times) via Webhooks, can you still pick this information up through the API?

Which App Type (OAuth / Chatbot / JWT / Webhook)?
OAuth

Additional context
In general is most information that can be gathered through Webhooks not available through the API? Or visa versa? ‘Not available’ is my working assumption for the moment.

Hey @chrismurrph,

Thank you for reaching out to the Zoom Developer Forum. I would try using the Get Meeting Participant Report API or the Get Meeting Participants Dashboard API. You should be able to find participant data there that you may have missed.

Let me know if that helps. :slightly_smiling_face:

Thanks,
Max

1 Like

I can get a list of all the scheduled meetings (type “scheduled”) from /users/{userId}/meetings. Each meeting has an id and a uuid. I’ve tried the first one you gave: /report/meetings/{meetingId}/participants. My understanding is that for {meetingId} you can put either the id or the uuid from any of the meetings. The problem is that when I try one I get a code 3001, that “Meeting does not exist: {meetingId}”. I don’t understand this message. Can you help? Thanks.

Hey @chrismurrph,

Please provide the full URL that you’re using to make this request including the meeting ID/UUID and I’ll look into this further.

Thanks,
Max

Hi @MaxM,
The full URL starts with https://api.zoom.us/v2, so https://api.zoom.us/v2/report/meetings/{meetingId}/participants
is the API URL being used. I can repeat the problem using your interactive way of making the request as part of the API docs, so my thinking is it must be down to the the id number being used. It should not matter that the meetings have only been created, never had any participants, or whether they are in the past or the future. All of my test meetings are scheduled meetings.
I’ll pick a meeting now:

{:join-url "https://zoom.us/j/93232691725?pwd=VVhFQ0xaNUUyOVBRdU1vRTRGcVJ4dz09",
 :timezone "UTC",
 :start-time "2021-02-25T18:00:00Z",
 :type 2,
 :duration 60,
 :topic "Leaning Pile of Turrets",
 :agenda "Watch them topple",
 :id 93232691725,
 :host-id "dLmWWRsDTrK6zlQ9WVNxKg",
 :uuid "I19KVxE2SHifIci41O3egA==",
 :created-at "2021-02-09T06:24:52Z"}

So now I’m going to use I19KVxE2SHifIci41O3egA== in your interactive API caller at
https://marketplace.zoom.us/docs/api-reference/zoom-api/reports/reportmeetingparticipants.

This is the result:
{
“code”: 3001,
“message”: “Meeting does not exist: I19KVxE2SHifIci41O3egA==.”
}

I needed to manually put in an up to date access token, but apart from that all I did was put I19KVxE2SHifIci41O3egA== in the meetingId Path Param. I’ve tried with many different scheduled meetings and even with a meeting I made and participated in myself. But always I get this same error message as a response.

Hey @chrismurrph,

Thank you for the update. I looked up this meeting in our system and I’m seeing that the instance related to that UUID has not started yet. When calling the Get Meeting Participants Report API, make sure that the meeting has started and ended and that there were at least 2 participants in the meeting.

I hope that helps! Let me know if you have any questions.

Thanks,
Max

I actually got teammates to enter a Meeting I setup. But it strikes me that I can probably and enter and leave a Meeting many times as myself to get above the threshold. In fact I’m going to want to enter and leave more than 30 times to get some participant data that will be paged. Is that possible? I’ll find out. Excellent if true because it will mean I can test without involving others.

Unfortunately not possible. I’m going to have to get other people involved again and ask them to enter and leave many times, so that can get more than 30 participants.

I did that and can get the first and second pages of participants. Only now do I realise I could have used a page_size query parameter to make the page size much smaller than 30 and thus not need to generate as much data.

Hey @chrismurrph,

If you have meeting_authentication enabled, you may see that each rejoin is seen as a new user, feel free to test this out. Another option is to join from your phone as a different user. You can also set up our Sample Web App and open multiple browsers to test this from one device.

Let me know if that helps.

Thanks,
Max

I setup “My Test Meeting Two” with all the participants. Is there any reason that a Meeting UUID will change? “My Test Meeting Two” used to have a UUID of “AifeWxrNRy2sBo3hDoE41w==”. If I look at the participants of “AifeWxrNRy2sBo3hDoE41w==” they are all there.

However if I use the API to list all the meetings now “My Test Meeting Two” now has a UUID of “G10KOvNsTHyBuD0eeVLKeg==” and no participants.

The good news for me is that the ID of “My Test Meeting Two” has not changed. So I can use ID in my code.

Hey @chrismurrph,

Thank you for your question. The UUID of a meeting is specific to a particular instance of that meeting. When looking into AifeWxrNRy2sBo3hDoE41w== I can see that this meeting has already occurred and therefore has participants for the meeting listed.

When it comes to, G10KOvNsTHyBuD0eeVLKeg==, it looks like that occurrence hasn’t started yet and therefore doesn’t have any participants listed.

Where are you retrieving these UUIDs from? I can offer advice on how best to obtain the UUID for the meeting you are working with.

Thanks,
Max

Hi @MaxM, I never intended there to be multiple instances of that Meeting - just one scheduled Meeting. I get a list of all Meetings of the Zoom user using /users/{userId}/meetings. I can see the name of it so know which one I want. I think we are just going to use id and that should be enough for now. Thanks for your reply.

Hey @chrismurrph,

Thank you for the update. It’s important to note that the List Meetings API only returns data for scheduled or live meetings.

If you want data from past meetings you may want to use the List Ended Meeting Instances API or the Get Past Meeting Details API

Let me know if that helps.

Thanks,
Max