Skip to content

Tenants

A tenant is one company’s Motions: its members, its CRM connection, its motions and their batches, its source keys and secrets, and its spend. A consultant working for three clients belongs to three tenants, with one account.

Set in
Id, name and time zone tenant.yaml, pushed
CRM connection and field map crm.yaml, pushed; the HubSpot token in Settings → CRM
Fixture mode and fixtures tenant.yaml and fixtures/sources/, pushed
Motions and their versions motions/, pushed
Custom sources sources/, pushed; their secrets in Settings → Secrets
Members, roles and handles Settings → Members
Provider keys Settings → Source keys
API tokens Settings → API tokens
GitHub connection Settings → GitHub

Everything pushed lives in the tenant repository. Everything secret, and everything about people, lives only in the app.

A tenant’s id, such as v360, appears in the app’s addresses (/t/v360/…) and must match id in tenant.yaml. Pruma chooses it when creating the tenant. It doesn’t change.

timezone in tenant.yaml, such as America/Sao_Paulo, is the zone the app shows times in, and the zone a motion’s calendar is resolved in: { weekday: fri, at: "18:00" } means Friday 18:00 there. A motion can set its own timezone to override it.

Nothing crosses between tenants: not members, not CRM data, not facts, not secrets. The one thing shared is the cache of public lookups, such as a company registry or a web search, which holds no tenant’s data.

If you belong to more than one tenant, the app asks which to open after you sign in, and the tenant switcher in the top bar moves between them. Your handle and role are per tenant. API tokens are too: a token works only for the tenant it was created in.

Motions is built by Pruma. These docs describe what the platform does today; Limitations lists what it doesn't do yet. Open the app