# Inconsistency between OAuth Installation and Webhook Data for User-Managed App

**URL:** <https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495>\
**Category:** API and Webhooks\
**Created:** [January 29, 2025, 8:46am UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495 "2025-01-29T08:46:06Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tamir](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tamir/32/66737_2.png) [@Tamir](https://devforum.zoom.us/u/Tamir)\
**Post date:** [January 29, 2025, 8:46am UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495/1 "2025-01-29T08:46:06Z")

</div>

Hi!  
I’m experiencing an inconsistency between the data received during app installation and webhook events for my user-managed Zoom app.

Current Behavior:

1. When a user installs the app (OAuth flow):

2. When receiving webhooks (e.g., meeting.started):

Issue:  
For a user-managed app, I need to retrieve the user’s access token when processing webhooks. However, the webhook primarily identifies the user by account\_id, while my stored OAuth credentials are mapped to user\_id.

Questions:

1. Is this the intended behavior for user-managed apps?
2. What is the recommended way to map between account\_id and user\_id in this scenario?
3. Can webhooks include the same user identification method (user\_id) as provided during OAuth installation?

Example Logs:  
[Webhook Payload]  
{  
‘event’: ‘meeting.started’,  
‘payload’: {  
‘account\_id’: ‘HUIB2tWdSTmoEUMiRJzO5w’,  
‘object’: {  
‘host\_id’: ‘Cbjk82LdRYeeMakV2Jo8eQ’,  
…  
}  
}  
}

[OAuth Installation Data]  
{  
‘id’: ‘25b0f32b-ee6e-4f14-b2b5-27b5d61809b2’,  
‘user\_id’: ‘Cbjk82LdRYeeMakV2Jo8eQ’,  
‘account\_id’: null,  
…  
}

Environment:

- App Type: User-managed
- OAuth Scopes:
  - meeting:read:local\_recording\_token (View a meeting local recording join token)
  - meeting:read:meeting (View a meeting)
  - meeting:read:list\_meetings (View all user meetings)
  - user:read:user (View all user information)
  - user:read:zak (View user’s zak token)

- Webhook Events: meeting.started

Thank you for your help in clarifying this behavior 🙂  
Tamir 🙂

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [February 3, 2025, 8:40pm UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495/2 "2025-02-03T20:40:42Z")

</div>

Hey @Tamir  
Thanks for reaching out to us!  
Allow me to troubleshoot this on my end and I will get back to you.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [February 5, 2025, 5:56pm UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495/3 "2025-02-05T17:56:26Z")

</div>

Hey @Tamir  
Thanks for your patience here.  
Since you’re working with a user-managed app, you’re actually doing the right thing by mapping the `user_id`. This is because you need the `user_id` of the specific user who authorized the app.

When you listen for events, you’ll receive the `account_id`, `user_id`, and `host_id`. You receive both the `host_id` and `user_id` because events are only triggered for actions that happen within that specific user’s account.

To map `account_id` and `user_id`, you’ll be able to do so when receiving events. You’ll notice that the `account_id` will never change, nor will the `user_id`.

---

<div class="post-metadata">

**Author:** ![Tamir](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tamir/32/66737_2.png) [@Tamir](https://devforum.zoom.us/u/Tamir)\
**Post date:** [February 16, 2025, 10:17am UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495/4 "2025-02-16T10:17:54Z")

</div>

Hi Elisa,

Thank you for your response! However, I think there might be a misunderstanding that I’d like to clarify.

You mentioned that “When you listen for events, you’ll receive the account\_id, user\_id, and host\_id.” However, looking at my webhook payload, I only receive:

- account\_id at the root level
- host\_id in the object payload (which matches the user\_id from OAuth installation)

More importantly, I have a fundamental question about my use case: How can I handle meetings where my authenticated user is a participant but not the host? The current webhook only tells me about the host, but not about other participants.

For example:

1. User A installs my app (I store their user\_id and access token)
2. User B starts a meeting where User A is an invited participant
3. I receive a meeting.started webhook, but it only contains User B’s host\_id
4. I have no way to know that User A (my authenticated user) should join this meeting

Is there a webhook event type that notifies about meetings where my authenticated user is an invited participant? Or is there another recommended approach for this use case?

Thank you for your help!  
Tamir

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [February 18, 2025, 9:06pm UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495/5 "2025-02-18T21:06:22Z")

</div>

Hi @Tamir  
Thanks for the clarification

If user B does not install your app, you won’t have a way to know that User A joined their meeting.

Because user A installed your app, you will receive events associated with User A’s account, so if user A starts a meeting on their end you will receive events; but for any action that occurs in user B’s account, you won’t receive those events because user B has not installed your app

Let me know if this helps to clarify your issue

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [February 22, 2026, 12:42pm UTC](https://devforum.zoom.us/t/inconsistency-between-oauth-installation-and-webhook-data-for-user-managed-app/125495/6 "2026-02-22T12:42:36Z")

</div>

Closed on February 22, 2026, 12:42pm UTC

This topic was automatically closed 368 days after the last reply. New replies are no longer allowed.
