Onboarding Design
The first 15 minutes that decide 90 days of retention.
You have 15 minutes. The user has decided by minute 8.
- Design 1 onboarding path, not 5: Framer + Relume for UX, Attio for state, PostHog for truth.
- First 15 minutes decide 90 days: cut TTFV to under 7 minutes or churn will spike.
- Use Clay + Apollo AI to prefill roles, triggers, and ICP signals before the first login.
- 11x or Lindy should drive the 3-step activation chase; humans only handle edge cases.
- If onboarding needs 12 fields, it is broken; move to progressive capture in Attio.
- 01Day 1: Define 1 activation event and map it to 1 lifecycle stage in the CRM.
- 02Day 2: Enrich every new signup and backfill role, company size, and intent.
- 03Day 3: Redesign the first 3 in-product screens around 1 path to first value.
- 04Day 4: Write 3 nudge messages for stalled users and wire them into workflow automation.
- 05Day 5: Add 1 dashboard and 1 SQL query for activation by cohort.
- 06Day 6: Launch to a 10% rollout and monitor drop-off by step.
- 07Day 7: Decide 1 keep, 1 kill, and 1 rewrite based on 7-day retention movement.
Why onboarding is the product
In 2026, onboarding is not a tutorial; it is the first proof that the product can remove work. Framer + Relume should express the path in 3 screens, not 9, while Attio stores the onboarding state as a live workflow object. Use Clay with Apollo AI to infer role, company size, and urgency before the first click, then let PostHog confirm whether the user reaches first value in under 7 minutes. The winning rule is simple: if the first session cannot create a visible outcome, the user was never onboarded, only registered.
- 01
Map the 1 core outcome
Pick 1 job-to-be-done and delete every secondary path. Use PostHog funnels to find the single action that predicts 30-day retention, then mirror that in Framer + Relume.
If the retention driver is 'invite 1 teammate', do not optimise around profile completion.
- 02
Prefill the context
Run Clay enrichment at signup, pass the result into Attio, and preselect the right template, use case, and plan. A Claude 4.5 Sonnet prompt can compress this into 1 routing decision.
Prompt: 'Given role = RevOps and company_size = 120, return the most likely onboarding branch in 1 line.'
- 03
Instrument the truth
Use PostHog and June to separate intent from action. Every screen needs 1 event, 1 exit event, and 1 success event, or you are guessing.
Event names: `onboard_step_1_viewed`, `onboard_step_1_completed`, `first_value_reached`.
Agentic personalisation that does not feel fake
Personalisation in 2026 is not {{first_name}} in a headline; it is routing the user into the right path before they see friction. Clay + Common Room should score intent, while Keyplay or Ocean.io can identify segment patterns that matter to onboarding. Then an 11x or Lindy agent should trigger the right nudge sequence: email, in-app, or calendar prompt. Use Claude Code or Cursor for RevOps SQL when you need to verify which cohort actually converts, because dashboards without cohort logic are decorative. The sharp rule is this: personalise only when the data changes the next 2 clicks.
- 01
Score the user before the session
Use Clay Chat to enrich company, role, and trigger data, then write the score back to Attio. Common Room adds product-usage signals for PLG accounts.
Score fields: `buyer_role`, `urgency_7d`, `team_size`, `used_competitor`.
- 02
Route with an agent
Let Lindy or 11x send the correct onboarding message after each missed step. The agent should wait 12 hours, not 12 minutes, unless the user is high-intent.
Lindy prompt: 'If user has not completed step 2, send 1 concise email and log reply sentiment to Attio.'
- 03
Validate with SQL
Use Cursor against warehouse tables to compare converted cohorts versus vanity segments. RevOps SQL should answer 1 question: did the personalised branch lift activation by at least 8%?
Query target: `activation_rate by branch_name, signup_week, source_channel`.
Activation without friction
The best onboarding removes setup work, not just explains it. Framer + Next.js on Vercel should support progressive disclosure, while Attio stores only the minimum required fields and the rest is captured later from behaviour. Clay can pre-populate company metadata, and an OpenAI Agents SDK workflow can translate an account's intent into the next action in real time. Use PostHog to watch rage clicks and dead ends; if a field does not change the downstream decision, it is a tax. In 2026, the winner is the flow that feels like 1 conversation, not 1 admin form.
- 01
Remove mandatory fields
Delete every field that Clay can enrich or that usage can infer. Keep only the 2 fields needed to route the user into the right activation path.
Keep: `work_email`, `primary_use_case`; remove: `company_name`, `role`, `team_size`.
- 02
Use progressive capture
Capture missing data after the user gets value, using in-app prompts and Attio updates. Trigger.dev should fire the follow-up when the user completes step 1.
After first dashboard view, ask for industry with a 1-click selector.
- 03
Automate the rescue
If the user stalls, an 11x agent should intervene with 1 helpful message, not a sequence. Use Common Room and PostHog to decide whether the stall is product confusion or wrong segment.
Message: 'Need the fastest path? I can set this up in 90 seconds.'
Operating system for optimisation
Onboarding should run like a weekly revenue system, not a one-off UX project. PostHog and June give event truth, Attio holds lifecycle state, and Clay keeps segment data current. Use MCP servers for product, CRM, and warehouse access so Claude 4.5 Sonnet can inspect why a cohort stalled without manual exports. Then let n8n or Inngest trigger changes: copy tests, route changes, and agent follow-ups. The 2026 rule is ruthless: if a hypothesis cannot be tested in 5 days, it is not a hypothesis, it is theatre. Every experiment needs one owner, one metric, and one rollback path.
- 01
Build the experiment loop
Create a weekly loop: insight from PostHog, cohort analysis in Cursor SQL, ship in Framer or Next.js, measure again in 5 days.
Weekly cadence: Monday insight, Wednesday ship, Friday readout.
- 02
Connect systems with MCP
Use MCP servers so Claude can query Attio, warehouse tables, and Common Room without brittle manual handoffs. This replaces spreadsheet triage.
Prompt: 'Compare activation by source_channel and onboarding_branch for the last 14 days.'
- 03
Automate rollouts and rollback
Use Inngest or n8n to push changes to a small cohort first, then expand only if the metric clears target. Keep 1 rollback toggle in Framer or feature flags.
Rollout rule: 10% traffic first, 50% after 48 hours, 100% only if activation improves.
What goes wrong
Treating onboarding as copywriting instead of state design
Model the journey in Attio and PostHog first, then write Framer screens.
Using 9 fields when Clay can enrich 7 of them
Delete every enrichable field and capture it later with progressive prompts.
Running one generic email sequence for all segments
Use 11x, Lindy, or Relevance AI to branch by role and intent.
Measuring completion instead of first value
Make `first_value_reached` the primary event in PostHog.
Shipping onboarding changes quarterly
Use n8n or Trigger.dev to test 1 variation every 5 days.
Should onboarding be different for every persona?▾
Only when persona changes the next 2 clicks. Use Clay and Common Room to identify the few segments that matter, then keep Framer + Relume on 1 default path. If a persona does not change activation by at least 8%, it is not a segment, it is noise.
How much should AI personalise the flow?▾
Enough to remove friction, not enough to feel authored. Clay should enrich fields, 11x or Lindy should send the right nudge, and Claude 4.5 Sonnet should only decide branch logic when the data is strong. If the user notices the AI, you probably overfit.
What should the first success event be?▾
Pick the event that predicts 30-day retention, not the prettiest milestone. In PostHog, that is often invite sent, template published, or first workflow run. Use Cursor SQL to prove the correlation, then make that event the centre of the onboarding path.
When do we ask for more information?▾
After the user gets value, never before. Attio should start with minimum fields, Clay should fill the rest, and Trigger.dev should ask progressive questions only after the first meaningful action. If a question does not improve routing or activation, delete it.
How do we know the new onboarding is better?▾
Use a 5-day experiment window, a 10% rollout, and 3 metrics: time to first value, activation, and 7-day retention. If PostHog improves but June or retention does not, the win is fake. Keep only changes that move all 3 in the right direction.
Get one system like this in your inbox each week
No fluff, no upsell. Unsubscribe anytime.