Setup dashboard
Contents
▶ Live prototype: setup-welcome.carlosmccoy.xyz, on the real product chrome. Open a flow: Calendar · Team · Clients. Inbox and Payments are being added.
Wave 1 of the per-feature first-run experiences. We give five feature pages a focused first run: one modal (or, for Payments, a checklist) on landing that states the value and routes to the single action that creates it. Three are the core flows (Calendar, Team, Clients); two are low-lift adds that reuse work already done (Inbox rides the Calendar connect modal, Payments reuses the getting-started checklist). We ship fast, keep each flow skippable, and read a 2-week pre/post on each.
Goal: more new accounts take the core first-session action on each feature: connect a calendar, connect an inbox, invite a teammate, add a real client, connect payments.
Hypothesis: a focused first run lifts first-session activation, and activation is the leading indicator that drives trial→paid conversion and early retention. We optimize and measure activation now; conversion is the lagging signal we expect to follow.
Early proof this works.
We already tested a connect modal on Calendar and Inbox. New users who reached those pages were 66% more likely to connect an account within 3 days (11.54% → 19.12%). Inbox connections rose the most, up 83% (8.39% → 15.38%). Wave 1 sharpens that modal and extends the pattern across all five flows.
New users sign up, then stall before they hit value. On most feature pages the first run drops them on an empty or fake-populated screen, with the one valuable action buried and the value never stated. Where we have already added a guided moment (the Calendar/Inbox connect modal) it works, but it is transactional and generic. The opportunity is to give every Wave 1 feature a focused first run.
| Flow | Today | Baseline |
|---|---|---|
| Calendar | Connect modal is live and working, but transactional. | 19.12% connect (was 11.54%) |
| Inbox | Shows the exact same generic connect modal as Calendar. | 15.38% connect (was 8.39%) |
| Team | A fake demo member ("Wendy Smith") sits in front of a buried, email-only invite. | 5.4% invite ≥1 |
| Clients | Import and add are a corner button; switchers get thin guidance on exporting from their old tool. | 21.5% add/import |
| Payments | Payments page shows an empty billing overview with no guidance. | ~0.1% Stripe connect (new event) |
Baselines: PostHog Production 10924, core-market completer cohort (n=4,572). Calendar figures from the connect-modal test (connect within 3 days).
Goals
Non-goals (out of this wave)
Primary = the real first-session action on each flow, read as a 2-week pre/post:
| Flow | Action we count | Event | Baseline | Goal |
|---|---|---|---|---|
| Calendar | Connected a calendar | syncCalendar |
19.12% (was 11.54%) | 25% |
| Inbox | Connected an inbox (Gmail/Microsoft) | Create inbox |
15.38% (was 8.39%) | 20% |
| Team | Invited ≥1 teammate | create staff |
5.4% (team accounts) | 8% |
| Clients | Added or imported ≥1 client | create client / import client data |
21.5% | 27% |
| Payments | Connected Stripe | Stripe Connect onboarding completed |
~0.1% (new event) | Set baseline |
Calendar and Inbox = connect within 3 days among users who reach the page (from the modal test; all-account Create inbox wk1 is ~8.7%). Team, Clients and Payments = week 1 across all new accounts. Team's rate is team accounts only. Stripe Connect is a new event (~23 days old), so the Payments baseline is thin and will firm up.
Wave roll-up: share of new accounts that complete ≥1 of the flows in their first week.
Downstream (the bet): trial→paid conversion and early retention, activated vs not, read on a lag.
Read it carefully: a pre/post is directional, not a clean A/B: signup-mix and seasonality also move these numbers. Guardrail: overall onboarding completion must not drop.
The waves
How each Wave 1 flow ships: build and ship at 100%, then read a 2-week pre/post and decide keep / iterate / kill.
Handoff: Carlos (product brief) → Nanz (design refinement, adds to this spec) → Leah (front-end build). Engineering then adds the technical layer to the same doc. Bulk team invite released ~29 June (so the Team modal can live in the dashboard). Leah picks up ~Wed, Thu at the latest. Daniel owns the Team invite modal.
Shared pattern (see the prototype): a modal on landing over a demo-populated page (never an empty screen). It states the value, offers the action, and is skippable. On dismiss the action stays on the page and the modal re-shows the first 3 landings, then stops once the action is done. In-product brand, one primary CTA, no fake states.
The connect modal already exists and works; the change is making it benefit-driven, not transactional. Add three benefit call-outs that answer the real objections: it syncs both ways, it stays private (teammates can't see your calendar), and it prevents double-booking. Plus a trust badge, a refreshed header, and a clear skip. Google or Microsoft in one tap. → See it
The Inbox connect modal is the same modal as Calendar today. For this wave it gets its own copy tweaks so it speaks to inbox value rather than calendar. It will diverge into its own first-run when the unified-inbox redesign lands (~29 July); SMS setup follows the Gmail/Microsoft connect later.
First time a team account lands on the Team page, the new invite modal opens as a takeover (copy invite link, or email + permissions). The demo "Wendy Smith" is removed; no changes to the modal's design. One requirement: the invite link defaults to active so copy-link works immediately (otherwise a message says it is inactive, turn it on first). → See it
Matches Nanz's embedded checklist import/add flow almost exactly: import from a source (SimplePractice, TherapyNotes, and the rest) or a spreadsheet, or add manually; a trust badge; the "how do I import?" link opens the Intercom widget; the modal is suppressed if a client has already been added.
One addition from the review: when a user picks a source (e.g. SimplePractice) they land on the import step with too little guidance on how to export from their old tool, on a page with lots of empty space and the help link buried top-right. Surface the platform-specific export guide prominently (a banner, not the corner icon) to cut support tickets and speed migration. Open UX question: whether to auto-open the article on landing (Nanz to decide; Carlos may mock it). → See it
The payments page currently shows an empty billing overview with no guidance. Reuse the existing getting-started checklist content (connect Stripe / start getting paid) on the page so there is a clear first action.
| Item | Owner | Note |
|---|---|---|
| Bulk team invite release (enables the Team modal in the dashboard) | Daniel / eng | Aimed to ship ~29 June; Leah needs it landed |
| Team invite modal must be the one in staging | Daniel | Build on it, don't rebuild; link defaults to active |
| Clients: platform export guide content to surface on the import step | Nanz / Carlos | The one net-new content addition from the handover |
| Payments content reuses the getting-started checklist | Nanz | If it surfaces the "$1,000 free processing" offer, verify that's live |
| Inbox is light this wave | Product | The 29 July unified-inbox redesign will supersede this first-run |
| Pre/post is confounded (signup-mix, seasonality) | Carlos (analysis) | Report as directional; watch the completion guardrail |