Role hierarchy
- 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 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 and Stripe Connect.
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 (REST + MCP).
Custom-domain verification
Add the full hostname under Tenant admin → Settings, for exampleapp.famulor.io. The platform then attaches it to its routing layer and checks two independent requirements:
- Ownership — when a challenge is requested, publish the exact TXT record shown in the settings page.
- 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.
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.