Onboarding Flow
New users land on the onboarding flow the first time they sign in. The flow is two steps and is designed to take under a minute.
Step 1 — /onboarding
The first screen confirms the user's identity and org context.
The user sees:
- Their name and email, pulled from the identity provider (Firebase in SaaS, SSO or local auth in self-managed mode).
- The organization they are joining, either:
- a newly provisioned personal org (for new sign-ups), or
- an existing org if they were invited.
- A short value proposition reminding them what Control Zero does.
The only decision on this screen is: Continue to the next step, or Sign out if the identity does not match the user's intent.
Step 2 — /onboarding/product-select
The user picks the product shape they want to start with. The choice sets the default dashboard layout, the default policy template, and the tier recommendation. Options:
- Solo — individual developer, a single project, SDK-first flow.
- Teams — multiple users, fleet management, Scout and browser extension surfaced by default.
The choice is not permanent — an admin can change it later under
/settings/org via the PATCH /api/orgs/{orgID}/product-type
endpoint.
What happens on completion
When the user clicks Continue on step 2:
- The frontend calls
GET /api/users/ensureto confirm lazy provisioning is complete. If the user is not yet in the database, the call returns503and the frontend retries until ready. - The org, default project, and first API key are created if they did not exist already.
- The user is redirected to
/governance/home.
Recovery
If anything fails in step 2 (network hiccup, transient database
error), the user lands on /onboarding/recover. That page retries
GET /api/users/ensure on a timer and gives the user a Try again
button. Once provisioning succeeds, it forwards them to the home
page automatically.
Invited users
Invited users skip the org creation step; they inherit the inviter's org and jump straight to product select.
Related
- Governance Home — where the flow lands.
- Concepts: Projects — what a project is and why one is created automatically.