Guides

Onboarding

A new workspace picks the one problem it came to fix. The product opens on exactly that part, with a handful of believable example records that can be removed in one click; everything else is one “Turn on” away and nothing is ever deleted or charged for the choice.

Setup wizard

Opens once, for a brand-new workspace (organizations.onboarding_completed = falseand no stored progress). Six steps; progress is kept per step id, so a step added later never renumbers someone mid-way.

StepWhat it collectsRequired
1. WelcomeNothing — sets expectations—
2. ProfileFull nameYes
3. OrganizationName, currency, timezone, default bill and cost ratesYes
4. Business typePipeline stage labels that fit the work (personalisation only)No
5. The door“What do you want to fix first?” — Getting paid · Delivering work · Winning work · All of it — and “How many people work with you?” (1–3 · 4–12 · 13 or more)One card, or Skip = All of it
6. InviteTeam emails; who takes a seat and who is freeNo

Finishing the door writes org_settings.onboarding_door and team_size_band, switches off the parts the door does not need (rows in feature_flags, listed per door in docs/onboarding/door-ledger.md), loads the example records for the parts that are on, and lands on that part's page. The deployment switch is quattora.config.ts → onboarding.door (default on); off, the wizard has five steps and writes nothing.

To reset the wizard for testing or re-onboarding:

UPDATE public.organizations
SET onboarding_completed = false
WHERE id = 'your-org-uuid';

Example records

Fictive companies and people on example.com, invoices numbered EXAMPLE-001… (the real counter is untouched), a project with milestones, tasks and this week's hours, a signed retainer, a draft form. Every row carries a source_batch_id pointing at one import_batches row per workspace. They appear in lists, dashboards and reports with a banner that says so; they are excluded from the checklist, plan caps, exports, the accounting export, the receivables digest, the KPI snapshot and every scheduled job; sending, reminding, signing, paying or enrolling an example record is refused. Remove examples (owners and admins) deletes the batch child-first through one database function and keeps any example the customer built on, saying so. An owner can load them again later from any module's empty state.

Settings → Modules

Owners and admins switch parts on and off here — Clients (with Leads & deals and Email sequences as sub-switches), Invoicing (Invoices as a sub-switch; Smart Files follow the module), Projects, Resources, Contracts, Forms, Supplier bills, Reports, Analytics, Automation; Dashboard is always on. Turning off a part others need turns them off too after a confirmation; turning a part on brings its parents with it. A switched-off part is hidden from the sidebar, the command palette, search, quick-add, Reports and Analytics, the checklist, notifications and the Loop Health Score; owners and admins keep a “Turn on more” group at the foot of the sidebar, and a direct URL lands on a page that says “You switched X off” with a one-click Turn on. A part your plan does not include shows a lock and a plan badge instead of a switch.

Get-started checklist

Reachable from Settings → Get started. Shows only the steps for parts that are on and counts real rows only (example records never tick a box):

ItemHow it's completedShown when
Add a contactcontacts count > 0Clients on
Create a dealdeals count > 0Leads & deals on
Add a leadleads count > 0Leads & deals on
Create a projectprojects count > 0Projects on
Create a workflowworkflow_triggers count > 0Automation on
Set team cost ratesa member has hourly_cost_cents OR the workspace default cost rate is setalways

Server action: getOnboardingChecklistStatus(orgSlug)

Guided tours

Short walkthroughs powered by driver.js, on more than thirty pages. Three start by themselves, once: the door tour on the landing page right after the wizard (it ends on the page's “New …” button — Create your first invoice — and opens that dialog), and a two-step “{Part} is on” tour the first time a part is turned on. Every other tour is offered by a New to …? Take a tour banner on its page and can be re-run from the user menu (Show me around this page). Steps that point at a switched-off part, a part outside the plan, or anything not on screen are skipped. Progress is remembered for the person in user_tour_progress — a second device does not start over. Settings → Get started has the Guided tours on/off switch and Reset tours. The full list is docs/onboarding/tour-ledger.md.

Guides

A tour explains one page; a guide leads you across pages to a result — Create your first invoice, Win your first deal, Deliver your first project. Each step is done when the data says so (a company exists, a cost rate is set, an invoice exists — example records do not count), so a guide skips what you already have, can be stopped and resumed on any device, and ends by itself when the goal exists. Start one from the command palette (Guide: …), from Settings → Get started → Guides, or from a link: /org/<workspace>/dashboard?guide=create-invoice — the same link a support reply or an assistant can hand over. A chip at the bottom of the screen shows the goal, how far you are and the next step; on the step's page a popover points at the button and Let's do it opens the form. Steps whose part is not in the plan or switched off are left out; owner-only steps (cost rates, working hours) are left out for other roles and the chip says an owner is needed. The full list, with every check, is docs/onboarding/guide-ledger.md.

Recommended plan

The “Start free trial” dialog marks the plan that matches the team-size answer — Studio for 1–3, Team for 4–12, Firm for 13 or more — with a “Recommended for … people” badge. It is a hint, not a gate; nothing about the trial or the checkout changes.

Private instance customization

  • Skip the wizard entirely by setting onboarding_completed = true in SQL after seeding the client's workspace; set org_settings.onboarding_door to "all" so nothing is switched off.
  • Turn the door off for every new workspace with onboarding: { door: false } in quattora.config.ts.
  • Pre-populate the workspace name and logo before the client's first login.
  • On white-label paper the plan recommendation is never shown (one plan) and switched-off parts still get the “Turn on” page.