Zoom doesn't know which user logged in with ZPK token


Hi community!

I’ve been talking with support and I couldn’t get a good solution for this problem.
I’m generating zoom meeting links with zpk tokens, so, I can control who is joining a meeting.

The link + zpk token is working fine, but it seems that Zoom is not able to understand from which user the zpk token was. 


  1. UserA is the host and he/she has a link with zpk token
  2. UserB has a join link with zpk generated to userB
  3. UserB joins the meeting before UserA
  4. Inside the zoom, UserB becomes UserA (On the participants list)
  5. UserA join the meeting using the link with zpk token. The name displayed for UserA will be a name that is not UserA (it seems it’s getting the name from the OS’s username0

So, the question is:
How do we control and monitor who joined a meeting?
If I can’t really rely on ZPK token to tell zoom what user is signing in, is there another way of doing it?

My ultimate goal is to integrate my app and zoom trough the webhooks, but so far, this experience is being quite frustrating.

I’d love to hear if anyone faced the same challenge and what kind of solution / way around you used



``Hi Rodrigo, 

When a user Creates or retrieves a meeting we will responed with two fields, start_url and join _url

The start_url is for the meeting host, and the join_url is for the meeting participants. Anyone can start the meeting with the start_url and will be the meeting host.

The zpk token has been deprecated, we now use zak (https://zoom.github.io/api/#retrieve-a-users-token). If the participant joins the meeting with their own zak, they will be seen as the login user joining the meeting (e.g.,https://{domain}/j?zak=xxx).

Does this helps?





Thanks a lot!
I’ll give a try on the zak token.






This is not showing much better results than zpk.

Once user joins with the zpk, I can see his name in zoom, but what the webhook is returning is this:

When the first user joins, I can see the following:

'participant': {
 'user\_id': 'ccHHfaF4SaiXuD...',
 'user\_name': 'user',
 'join\_time': '2018-06-24T19:16:30Z'

Though the second user is this:

 'participant': {
 'user\_id': '',
 'user\_name': 'rod cen',
 'join\_time': '2018-06-24T19:27:25Z'

There is no user ID
This is so frustrating, I have been trying to make this work for  a month.



Hi Rodrigo, 

Could you make sure that when scheduling a new meeting, be sure the check the option ‘’ Only signed-in users can join this meeting". The start_url with zak is only for the host to launch the meeting, and the join_url is for participants to join this meeting.



Hi Michael

Yeah, I’ve been using “enforce login” and “enforce login domains” since the beginning 

here are the settings:

“settings”: {
“host_video”: false,
“participant_video”: false,
“cn_meeting”: false,
“in_meeting”: false,
“join_before_host”: true,
“mute_upon_entry”: false,
“watermark”: false,
“use_pmi”: false,
“approval_type”: 2,
“audio”: “both”,
“auto_recording”: “none”,
“enforce_login”: true,
“enforce_login_domains”: “mydomain.io”,
“alternative_hosts”: “”


In my website, I’m providing a join link with a zak token to the participant.
The login process works normally, the user can see his/her name in the zoom window.

But when it comes to the webhook, there is an issue, the zoom webhook doesn’t send the participant ID to my endpoint, as I mentioned on the post above.


 'participant': {
 'user\_id': '',
 'user\_name': 'rod cen',
 'join\_time': '2018-06-24T19:27:25Z'