Guide
Onboarding & Joining an Org
How a new user finishes setup, names their org or joins someone else's, and clears the onboarding gate.
01 · Overview
Overview
Authenticated users with onboarded_at null cannot use gated product routes until they complete the onboarding wizard at /onboarding. The wizard covers welcome, display name, optional BYOK, and organisation choice (name your solo org or request to join by owner email). Finish sets onboarded_at and lands them on /capture.
02 · Actors
Actors
- New user — just signed up or invited; must complete onboarding if the gate applies.
- Org Owner — receives join requests; may have invited the user (invited users see a "you've joined" org step instead of create/join choose).
- Squire — not an actor in the wizard; BYOK only stores the key the Squire will use later.
03 · Flow
Flow
- System redirects gated routes (
/home,/capture,/dashboard,/oversight,/accord,/team,/org,/settings, …) to/onboardingwhileonboarded_atis null. - User steps through: welcome → set display name → optional provider key (OpenAI / Anthropic / Google) or skip → org step.
- Org step (owner path) — rename the auto-created organisation, or request to join another org by entering the Org Owner's email (
requestToJoinOrg). Join stays pending until that owner accepts. - Org step (invited path) — if the user is not org owner (joined via invite), they see a read-only confirmation of the org they already belong to.
- User finishes —
completeOnboardingstampsonboarded_at; client navigates to/capture. Product surfaces unlock.
04 · Edge cases
Edge cases
- Join pending at finish — user can complete onboarding while a join request is still open; they remain on their original org until the owner accepts.
- Join accept later — owner accept moves organisation membership and default-team role; blocked if the requester still has Shrubberies on the old org.
- Invite vs join request — invite is owner-initiated (email magic from Supabase); join request is user-initiated by owner email. Different tables, same eventual membership goal.
- BYOK skip — Smart Paste needs a key later; skipping onboarding does not block finish.
- Re-entry — once
onboarded_atis set, the gate does not force the wizard again; profile and org settings remain editable in-app.
05 · Related
Related concepts
Last updated: 24 July 2026