Trigger: a new BizOS customer (self-serve signup, converted pilot, or white-label deal). Owner: Jonny Allum. Policy anchors: POL-02, POL-04.
A. Self-serve signup (the default — the product does this)
- Customer signs up at bizos.jonnyai.co.uk, picks a vertical;
/onboardingprovisions the workspace (core + preset + resolved dependencies) and makes them owner on a 14-day trial. No manual step. - Within 2 working days, send the welcome email: link to
docs/GETTING_STARTED.mdfirst-week plan, the DPA offer (mandatory proactive send for care-vertical tenants — POL-02 §3.6), and one direct question: "what does week one need to prove for you?" - Watch the new tenant in the workspace snapshot for the first fortnight: zero data entry by day 5 = a check-in call/email (trials die of silence).
B. Assisted / white-label onboarding
- Scope the module set with the client against their operations (the Southernbrook README is the worked example: needs → module mapping).
- Generate the tenant with
tools/tenant-provisioner(bizos-provision): vertical preset ±--add/--remove, producing dependency-complete<id>.json+ idempotent<id>.sql. Commit the client pack underdocs/clients/<name>/(no real personal data in the pack — structure and module fit only). - Apply the tenant SQL; create the owner login; verify role-gated access by logging in as each role (owner/member/portal) before handover.
- Branding: set name/logo/colours in C06; tune labels/nav in Section Builder. White-label domains get TLS via Caddy before anyone sees them.
- Data import: customers CSV first (B01), then sites (C03), assets (A01), contractors (P06) — the GETTING_STARTED day-order exists because it pays off fastest; follow it.
- Contract + DPA signed before real personal data is imported. Care-vertical clients: confirm in writing that special category data is in scope and the DPA covers it.
- Handover: 30-minute walkthrough (docs/WALKTHROUGH.md script), owner invited to billing portal, support route (SOP-07) stated in writing.
C. Every onboarding, before "done"
- ☐Tenant resolves cleanly through the dependency engine (no orphan modules)
- ☐Owner can reach billing customer portal
- ☐Portal roles verified live (contractor/tenant/client see only their slice)
- ☐DPA status recorded (offered / signed / n-a-trial)
- ☐Welcome + support email sent; onboarding noted in CRM