> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ouraicalling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tenants & whitelabel

> The role hierarchy, white-label workspaces, and impersonation

The platform is multi-tenant by design: agencies and resellers ("tenants") run their own branded instance on their own domain, with their own users, plans, and pricing.

## Role hierarchy

```text theme={null}
Platform admin (the operator)
├── Tenants (white-label customers: own domain & branding)
│   └── Tenant users (the tenant's end customers)
└── Direct users (no tenant; use the main domain)
```

* **One login for everyone** — the role decides what a user sees.
* **Platform admins** manage all users, tenants, platform plans, and the model catalog under `/admin`.
* **Tenant admins** (owner/admin of a tenant) get a dedicated tenant admin area: dashboard with tenant KPIs, calls history across their users, user management, prompt templates, plans, billing, data migration, and branding settings.

## Whitelabel

A tenant's workspace runs fully under its own identity:

* **Domain** — the app, login, API (`/api/v1`), and even the [MCP endpoint](/api/mcp) run under the tenant's domain.
* **Branding** — logo, favicon, colors, and app name; applied to the app, browser tab, login and registration pages, and OAuth consent screens. Tenant domains use their own favicon and fall back to the platform favicon when none is configured.
* **Support email** — shown to the tenant's users.
* **Plans & pricing** — tenants define their own plans and prices; see [Plans & limits](/admin/plans-and-limits) and [Stripe Connect](/admin/stripe).

Whitelabel administration is gated by a platform plan toggle (`whitelabel_enabled`), a booked platform add-on (`feature_key=whitelabel`), Domain/Connect grandfathering, or an admin workspace override. Tenant resale plans cannot grant or resell Whitelabel.

Resellers who want to manage their end-customers programmatically instead of through the tenant admin UI — building a custom admin console, automating onboarding, or wiring credit top-ups into their own billing — can use the [White Label API](/admin/whitelabel-api) (REST + MCP).

### Custom-domain verification

Add the full hostname under **Tenant admin → Settings**, for example `app.famulor.io`. The platform then attaches it to its routing layer and checks two independent requirements:

1. **Ownership** — when a challenge is requested, publish the exact TXT record shown in the settings page.
2. **DNS & TLS** — publish the recommended A record for an apex domain or CNAME for a subdomain. The page reads the live DNS configuration and only enables the domain after routing is correct and TLS can be issued.

Use **Check DNS** after making changes. DNS propagation can take time. The status is never inferred from a saved checkbox: the platform rechecks the live configuration and synchronizes `custom_domain_verified` only when both checks pass. Removing the domain detaches it and immediately disables host-based tenant routing.

The same lifecycle is available through `GET`, `POST`, and `DELETE /api/v1/custom-domain`, with `POST /api/v1/custom-domain/verify` for a fresh check, and through the corresponding MCP tools.

## Free accounts

Tenants can allow **free sign-ups** with configurable default limits (e.g. 1 assistant, 5 campaigns, 1 number) and a per-minute price for pay-as-you-go usage. The same mechanism exists at platform level for direct users. Registration on a tenant domain automatically creates the tenant membership with those defaults.

## Impersonation ("User view")

Admins can log in **as** a user to see exactly what they see — the core support workflow:

* Platform admins can impersonate any user; tenant admins only their own tenant's users.
* A banner shows "You are logged in as X — back to admin" the whole time.
* Every impersonation is **audit-logged**.

## Prompt templates

Platform admins manage **global** templates under `/admin/prompt-templates` (visibility: all workspaces, or platform-root workspaces only). Tenant admins maintain workspace templates under `/tenant-admin/prompt-templates` — visible to members of that workspace and to reseller customer workspaces.

End users open **Choose template** when creating an assistant or on the System prompt card (Prompt mode), filter by language / theme / branch, preview, and apply (copy-on-select into `system_prompt` and optional `first_message`). Same list: `GET /api/v1/prompt-templates` and MCP `list_prompt_templates`.

## Data migration

Tenant admins can transfer resources (assistants, tools, knowledge bases, numbers) **from one user to another** within the tenant — useful when an agency builds on a staging user and hands over to the customer account. Platform admins can do this globally.
