An onboarding flow that guides trial users to value
A redesigned SaaS trial onboarding experience with progressive checklists, sample data, and inline guidance that turns signups into active subscribers.
The shape of the work
- Industry
- Professional Services
- Duration
- 10 weeks
- Cooperation model
- Fixed price, phased
- Services
- UX auditOnboarding flowActivation design
- Integrations
- HubSpotDocuSignXeroGoogle Workspace
- Technologies
- Next.jsTypeScriptTailwind CSSPostgreSQLMixpanelSegment
- Team
- 1 Project lead2 Product designers1 UX researcher
Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.
Every surface, in order
Step one: three sources connected and 12,400 rows in, before anything has to be configured.
Step two: picking a starter workspace, with what you'll see first spelled out beside it.
The sample workspace: a full dashboard of plausible numbers, labeled as sample, before any live data has landed.
Step three: three invitations sent, and what each role can actually do stated on the page.
Step four: nine reports, each described by the question it answers, with the chosen one previewed.
The walkthrough on live data: one tip pinned to the control it's about, never a wall of text.
The brief
The product had signups, but users dropped off before reaching their first dashboard. We redesigned onboarding to guide people directly to value.
An analytics product with healthy trial signups and an activation rate under forty percent, which the team had been treating as a pricing or an audience problem for two quarters. The engagement started by auditing a thousand trial signups end to end, which located the loss precisely. It wasn't spread across onboarding. It sat on the first screen after signup.
Product Design
What people were running into
- 01
New users were greeted by an empty workspace and complex setup steps, causing over 60% of trial signups to abandon before completing setup.
That first screen was an empty workspace with a connect-your-data button. To see anything at all, a new user had to obtain API credentials from a system they might not administer, so a meaningful share of trials ended at a task the trialist couldn't personally complete. Sixty percent abandoned before finishing setup, and most of those never returned.
We built a progressive onboarding flow featuring interactive setup checklists, pre-populated sample data, and contextual in-app guidance.
Design decisions
Audited user activation friction across 1,000 trial signups
Tracing a thousand signups put the loss on one screen, not spread across onboarding where the team had been looking for two quarters.
Designed a progressive checklist UI with sample data workspaces
New workspaces seed with a realistic quarter of sample data, clearly labeled and removable in one action, so the first screen is a working dashboard.
Built contextual walkthrough tooltips for key configuration steps
Guidance fires on funnel milestones, appears once, and is instrumented so a prompt nobody acts on gets removed before it accumulates.
Measured activation lift via Mixpanel funnel cohorts weekly
Activation was read weekly per signup cohort, and the sample-data change ran to half the cohort for three weeks before it went to everyone.
Phase by phase
Phase 1: Onboarding Friction & Funnel Audit
User Drop-Off & Usability Analysis
Audited first-run user experience, account activation drop-off points, and initial configuration friction across 1,000 new signups.
- Funnel Friction Audit
- Drop-off Heatmap
- Usability Matrix
Phase 2: Progressive Setup Checklist UX
Progressive Setup & Sample Data UI
Designed an interactive progressive setup checklist giving users immediate time-to-value with sample data dashboards.
- Progressive Onboarding UI
- Figma Design Specs
- Sample Workspace Mockups
Phase 3: In-App Walkthrough Engine
Contextual Guidance & Tooltips
Built interactive in-app walkthrough steps and contextual helper tooltips for complex workspace settings.
- Interactive Walkthrough Engine
- Tooltip Component System
- Micro-animations
Phase 4: Funnel Launch & Cohort Tracking
Production A/B Trial & Activation
Shipped new onboarding flow, driving a +34% lift in 14-day trial activation rates and 45% fewer support tickets.
- Activation Analytics Dashboard
- A/B Test Sign-off
- Production Release
The experiment readout: each weekly signup cohort split half sample workspace, half empty workspace for three weeks before everyone got it, the audit that located the loss, and the result at rollout.
Progressive Setup Checklist
Guides new users step-by-step through workspace configuration with visual completion progress.
The checklist is derived from the workspace's actual state, so a step completed in passing is already ticked and nothing asks twice. Progress persists per workspace, not per session, which is what let a setup started on Friday finish on Monday. Steps can be skipped and returned to; the previous linear wizard trapped anyone missing a credential.
- Steps derived from real workspace state
- Progress persisted per workspace, so setup survives the weekend
- Every step skippable and returnable
The setup checklist read from the workspace itself: “Save a view” ticked in passing from a report, the warehouse skipped and waiting, and progress that started on Friday and finished on Monday.
The sample banner with its one-action remove open, and the sample chart beside the live chart that replaces it when the first sync finishes. The two never mix.
Pre-Populated Sample Workspaces
Provides instant interactive analytics dashboards so users see value before connecting live data.
A new workspace is seeded with a realistic dataset (a quarter of plausible traffic, a funnel, a cohort), so the first screen is a working dashboard instead of an empty state asking for an integration. The sample is clearly labeled and removable in one action, and connecting real data replaces it outright. Keeping the two from mixing was the risk this approach had to close.
- Workspaces seeded with a realistic quarter of sample data
- Sample clearly labeled and removable in one action
- Real data replaces the sample, never mixes with it
Contextual In-App Guidance
The saved-views prompt pinned to its button when the third report is built, with a permanent dismiss, beside the rule that fires it once and the events it sends to Mixpanel.
Surfaces subtle feature walkthroughs and tooltips exactly when users reach key milestones.
Guidance fires on milestones taken from the funnel, never on a timer or a first-login flag: the tooltip about saved views appears when someone builds their third report, which is exactly when it's useful. Every prompt is dismissible permanently, appears at most once, and is instrumented in Mixpanel, so a prompt nobody acts on gets removed before it can accumulate.
- Prompts fire on funnel milestones
- Each appears once and is permanently dismissible
- Instrumented, so unused prompts get removed
What moved after the redesign
+34%
Activation rate
-64%
Time to first report
+19%
Trial-to-paid conversion
Activation is fourteen-day, measured per signup cohort so a marketing push can't flatter it. Time to first report is the median from signup to a rendered report, including the sample workspace. That's the point: seeing a report is the activation event whether or not the data is yet the user's own. Trial-to-paid is measured at thirty days.
Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.
Principles that held
Interactive progressive setup checklist lifted 14-day trial activation by +34%.
Activation moved because the first screen stopped asking for something many trialists couldn't personally provide. The blocker was permissions, not motivation.
Sample data workspaces reduced initial setup friction down to under 3 minutes.
Three minutes matters because it fits inside one sitting. A setup that spans two sittings depends on the user choosing to come back, and most didn't.
Contextual in-app tooltips reduced onboarding support inquiries by 45%.
The tooltips that reduced support were the ones tied to a milestone. The same content shown on first login had tested flat the previous year.
How design and engineering worked together
- 01
A cross-functional team of 3 worked on a fixed price, phased basis over 10 weeks, covering UX audit, Onboarding flow, Activation design. We ran a standing mid-week checkpoint and written decisions in place of status meetings. Nothing shipped that they had not seen working first.
Activation was tracked weekly in Mixpanel against the cohort that signed up that week, so each change was answerable within two weeks instead of at the end. The sample-data decision was the contentious one and was settled by measurement: it was shipped to half the cohort for three weeks before it was shipped to everyone.
The first screen after signup
The blocker was permissions, not motivation
A thousand traced signups put the loss on one screen. It asked for credentials many trialists couldn't personally create. Switch between the old first screen and the new one, or use the arrow keys once a tab is focused.
The first screen is a working dashboard, labeled as sample, with the checklist beside it. Credentials can wait; the step is skipped, not a wall.
One event stream behind the checklist and every prompt
Setup progress and guidance are both derived from what the workspace has actually done, so the checklist can never disagree with the product and a prompt can wait for the milestone it's about.
- 1 · SourceWorkspace eventsSignup, source connected, report created, invite sentEvery step is a fact about the workspace, never a click in a tour
- 2 · IngestionEvent streamSegmentOne stream feeds the checklist, the prompts and the funnel alike
- 3 · EngineChecklist state + milestone rulesNext.js · TypeScriptA step ticks from real state, so one done in passing is already ticked
- 4 · StateProgress & prompt historyPostgreSQL, keyed by workspacePersisted per workspace, and a dismissed prompt never shows again
- 5 · DeliveryChecklist, prompts, funnelIn-app · MixpanelSample data is replaced on connect, and every prompt is instrumented
What could go wrong
Sample data, guidance and measurement safeguards
Sample never touches real data
Every sample chart and total is labeled as sample, and the whole sample is removable in one action. Connecting a real source replaces the sample outright, so no figure is ever part sample, part yours.
Guidance that cannot nag
Prompts fire on funnel milestones, never on timers or a first login. Each one appears at most once and can be dismissed permanently, and each is instrumented in Mixpanel so a prompt nobody acts on is removed before it can pile up.
Measured so nothing flatters it
Activation is read per signup cohort, so a marketing push can't inflate it. The contested sample-data change went to half of each cohort for three weeks before it went to everyone.
Trial signups that never reach a first report? Scope your build in 3 minutes.
Scope your buildNearby engagements
AI & AutomationA private legal assistant grounded in verified precedents
A private knowledge assistant that searches internal case files and precedents, providing cited answers legal teams can verify in seconds.
Legal & Law Firms · 14 weeks
Product DesignA design system that brought speed and consistency to 4 product teams
A token-based design system in Figma and React that eliminated component duplication across 4 product squads and cut the time from design handoff to merged frontend.
Professional Services · 14 weeks
Web PlatformsThirty small tools behind one account, each one a template and a route
A Python platform where adding a tool means adding a template and a router, with no deployment of its own, and subscriptions, orders and webhooks shared across every one of them.
Professional Services · 20 weeks
Let's talk
Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.














