The Five Minutes Platform uses a three-layer tenancy model — the same across every module. Understanding it answers most of the “where do I find X?” questions in one go.
| Layer | What it means |
|---|---|
| Layer 1 — Five Minutes | Us. The platform operator. You won't see this in the UI. |
| Layer 2 — Tenant | The subscribing business. One row in the Platform tenants table. Owns module subscriptions, billing, and the custom-fields library. |
| Layer 3 — Client | A team, region, or pod under the Tenant. Owns the actual records — accounts, contacts, opportunities, activities. Watertight from other Clients. |
| Layer 4 — User | You. Belongs to a Tenant; may have access to one or many Clients within it. |
What “watertight” means
Every record carries both tenantId and clientId. Every API query, every database index, every agent run is scoped by both. There is no cross-Client read path anywhere in the app, by design.
We usetenantIdandclientIdconsistently. The CRM never usesorgId— that’s a different product’s convention and would be ambiguous here.
Why three layers?
A medical-centre group might subscribe as one Tenant with twelve Clients (one per location), or as twelve Tenants (one per practice). The Platform supports both shapes. The CRM doesn’t care which one your tenant picked — Client is the scope you operate inside, always.