# How to determine user's cluster?

**URL:** <https://devforum.zoom.us/t/how-to-determine-users-cluster/81813>\
**Category:** Zoom Apps\
**Created:** [January 20, 2023, 2:34pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813 "2023-01-20T14:34:36Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![tkishkin](https://avatars.discourse-cdn.com/v4/letter/t/57b2e6/32.png) [@tkishkin](https://devforum.zoom.us/u/tkishkin)\
**Post date:** [January 20, 2023, 2:34pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/1 "2023-01-20T14:34:36Z")

</div>

**Zoom Apps Configuration**  
Our app is running on node.js backend and a combination of VanillaJS/AngularJS/React microfrontends.

We are now trying to add support for the Zoom Europe cluster. To comply with the laws, we now need to store data for EU-based users in a separate cloud. For example, for a ZoomX user (German Telekom version of Zoom; user is created here: [https://eu02web.zoom.us/](https://eu02web.zoom.us/) ), we need to keep their personal data in our EU cloud.

For that, we need to implement some routing which sends user to one or the other instance of our backend. We need to easily determine the type of user (normal [zoom.us](http://zoom.us) user or a user from the EU cluster).

**Description**  
Could you please recommend us, what are the ways to determine which cluster (US/EU) a user belongs to? I suppose that you can query user’s profile (/users/me API) and analyze the “cluster” property. However, this is not very convenient, as we’ll need to get user’s token before that - and for that we need to know which storage to get it from (we have two separate storages, for normal and EU users).

Maybe there are easier ways? Maybe we can determine the cluster before making any API requests, e.g. based on App Context token? Ideally we would like to understand the user’s cluster immediately in the **Home URL** and **Redirect URL for OAuth** handlers, to redirect to a correct backend at once.

Thanks!

---

<div class="post-metadata">

**Author:** ![michael.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael.zoom/32/37213_2.png) [@michael.zoom](https://devforum.zoom.us/u/michael.zoom)\
**Post date:** [January 20, 2023, 10:52pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/2 "2023-01-20T22:52:30Z")

</div>

Hey @tkishkin, thanks for bringing this up. You’re right, the primary way of identifying that user’s cluster will be in /users/me; but I see why you would want it prior to authorization (meaning the API is not available).

Those are good suggestions on the Home and Redirect URLs. Let me check with some folks to understand what our options could be.

---

<div class="post-metadata">

**Author:** ![michael.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael.zoom/32/37213_2.png) [@michael.zoom](https://devforum.zoom.us/u/michael.zoom)\
**Post date:** [January 23, 2023, 9:25pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/3 "2023-01-23T21:25:01Z")

</div>

Hi @tkishkin, @evgeny.balashov and I synced on this and believe at this time that the most likely solution will be to add context for the user’s cluster in the Home URL. We don’t have a committed release date for this, yet, but are aiming to release in the upcoming months.

---

<div class="post-metadata">

**Author:** ![evgeny.balashov](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/evgeny.balashov/32/35990_2.png) [@evgeny.balashov](https://devforum.zoom.us/u/evgeny.balashov)\
**Post date:** [January 24, 2023, 12:11am UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/4 "2023-01-24T00:11:03Z")

</div>

@tkishkin Please, check out this documentation page: [https://marketplace.zoom.us/docs/zoom-apps/zoomappcontext/#homeurl-template-parameters](https://marketplace.zoom.us/docs/zoom-apps/zoomappcontext/#homeurl-template-parameters)

Account id could be helpful to create interim fix.

---

<div class="post-metadata">

**Author:** ![tkishkin](https://avatars.discourse-cdn.com/v4/letter/t/57b2e6/32.png) [@tkishkin](https://devforum.zoom.us/u/tkishkin)\
**Post date:** [January 31, 2023, 6:23pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/5 "2023-01-31T18:23:38Z")

</div>

Hi @evgeny.balashov , @michael.zoom , thank you for the reply!

> [@evgeny.balashov](#):
>
> Account id could be helpful to create interim fix.

Could you please elaborate, how can we use account ID as a temporary fix? By having a static list of accounts which we know to be in the EU zone? Or you had something else in mind? Thanks!

---

<div class="post-metadata">

**Author:** ![evgeny.balashov](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/evgeny.balashov/32/35990_2.png) [@evgeny.balashov](https://devforum.zoom.us/u/evgeny.balashov)\
**Post date:** [January 31, 2023, 6:47pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/6 "2023-01-31T18:47:27Z")

</div>

> > By having a static list of accounts which we know to be in the EU zone?

Yes, that’s what I was thinking: once user signed up, get their profile using REST API, and match account\_id with cluster, then you can use account\_id for routing.

---

<div class="post-metadata">

**Author:** ![tkishkin](https://avatars.discourse-cdn.com/v4/letter/t/57b2e6/32.png) [@tkishkin](https://devforum.zoom.us/u/tkishkin)\
**Post date:** [March 24, 2023, 12:12pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/7 "2023-03-24T12:12:01Z")

</div>

That seems to work. Thanks!

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [March 28, 2023, 10:01pm UTC](https://devforum.zoom.us/t/how-to-determine-users-cluster/81813/8 "2023-03-28T22:01:51Z")

</div>

I’m glad to hear that you have a path forward!
