Onboarding milestone ledger

Twenty-three weighted milestones across setup, integrations and getting value — every one derived from the table where the fact actually lives, never ticked by hand.

What it is

The ledger that answers 'is this account wired in yet'. Setup covers signing in, logo, business info and inviting a teammate. Integrations cover website form, whether it has ever fired, Meta and Google ads, texting applied and approved, email sending, SmartBuild connected and pulled, and leads imported. Value covers first estimate sent, a customer opening one, a customer approving one, email and text in both directions, and whether they have engaged enough to report a bug or ask for a feature.

Also called: setup checklist · have they finished onboarding · activation milestones · did they connect their lead source

See it
Onboarding milestone ledger
New lead 3
Marlin Hoover
$44k
Delia Yoder
$55k
Sutter Kline
$34k
Contacted 4
Sutter Kline
$57k
Ronan Petsch
$40k
Ivy Brubaker
$50k
Estimate 2
Ivy Brubaker
$32k
Gideon Alt
$43k
Sold 3
Marlin Hoover
$60k
Delia Yoder
$75k
The milestone ledger grouped Setup / Integrations / Getting value, each row ticked or not with its date and detail line. SuccessPanel.tsx. Sample data — no customer information appears here.
How it works
  1. 1Each milestone is a query against its own source: logo from invoice settings, website form from lead sources, texting from the A2P registration, email sending from the active provider binding, estimates from estimate links.
  2. 2Each carries a weight (first estimate 5, email sending 4, logo 3, bug reported 1) and a plain-English hint explaining why it matters.
  3. 3Conditional milestones only apply when relevant — SmartBuild milestones are skipped for an account that does not use it.
  4. 4Milestones show the date they were reached and a detail line, like '12 of 40 opened'.
  5. 5Only setup and integration milestones feed the 30-point score component; value milestones are scored separately through the value component.
Why we built it

The module lists them as the facts 'that make it stick… each derived from the tables where the fact lives, never hand-ticked'. Individual hints carry the reasoning: for the team milestone, 'Someone besides the owner is a member. Single-user accounts churn'; for first estimate, 'The moment they get value'; for bug reported, 'Engaged enough to tell us what's broken.'

The problem
  • Onboarding progress was tracked in a spreadsheet that went stale.
  • Half-finished integrations were invisible until the customer complained.
  • Irrelevant checklist items made every account look incomplete.
Sound familiar?
What you get
Setup status is always current because it is derived, not recorded.
The weighting reflects what actually predicts retention.
Accounts are not penalised for features they do not use.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →