Los Angeles, CA
All case studiesCase study · HubSpot · 2026

AI-first onboarding for HubSpot

I led the design of HubSpot's AI-first onboarding from one experiment to 100% of customers, free and paid. The people who finished AI setup activated at 3× the rate of the people who skipped it.

Then I spent a year finding out why most of them never finished — and redesigning the experience until they did.

Agentic AIOnboardingGrowthExperimentation
A new customer goes from signup to a configured portal in about four minutes.
Impact
15% → 25%
Setup completion, after I moved data sync behind the goal step
3×
Better activation rate for AI setup finishers vs people who skipped
6.0% vs 3.1%
Free-to-paid conversion for finishers, versus skippers at 3.1%
My role
Product Design Lead — agentic intake
Timeline
  • The beta rollout of the intake flow went out in March 2026, after 3 months of work
  • Ongoing improvements and experiments throughout 2026
Scope
  • Day 0 and day 1: the first session, from signup to a configured portal
  • What happens after the first week is a separate body of work
Scale
  • 100% of free customers, shipped March 2026
  • Paid tiers shipped across all hubs by May 2026
  • 84K+ customers entering the funnel in a single reporting window
Team
  • 2 product managers
  • Backend and front-end engineering across 3 teams
  • UX research and data science
What I owned
  • The intake redesign
  • The experiment designs
  • The goal-capture model
  • The data-sync component
  • The skip path
Tools
  • Figma
  • Amplitude
  • Loom
  • Claude
Platform
SaaS web application
01 · The problem

New customers needed help in the first fifteen minutes and we made them wait two weeks

A small business owner signs up for HubSpot on a Tuesday night because they just lost a deal they should have won. They have a spreadsheet of contacts, a Gmail account, and no RevOps team. They want to know, tonight, whether this thing is going to work for them.

What we gave them was a blank CRM and a calendar invite for an onboarding call one to two weeks out.

The numbers said what you’d expect. About 85% of signups never came back after day zero. Only 3.5% hit their first real milestone within 30 days.

The HubSpot home a new customer landed in on day one: one suggested task, "Add your existing contacts", and an empty day-at-a-glance panel
What a new customer saw on day one before any of this work.
02 · Defining success

Nobody could tell me what a finished setup was, so I defined it before designing anything

This was new surface area. No pattern library for agentic flows, no definition of done, and three signup paths — free, paid, and upgraders — that had drifted into different shapes.

The biggest gap was underneath all of it: we were measuring whether people finished the flow. Finishing a flow is not the same as getting a result, and optimizing for it would have pushed me toward trapping people rather than helping them.

Three calls I made and wrote into the experiment design:

  • Activation is the measure, and activation means they got what they came for. I defined it as completing a task that accomplishes the primary goal they told us about, within 30 days. Not steps finished, not screens seen. What that meant in practice depended on the goal: close more deals meant a first deal created in the first week and a first closed-won deal inside 60 days; generate leads meant a first contact in the system; improve marketing meant a first marketing email sent to five or more people. Onboarding should guide people toward measurable outcomes tied to their growth, which is why a first closed-won deal is the strongest evidence the work succeeded — it’s the point where the product has paid for itself. Completion of the flow became a secondary metric: a signal that activation is moving, never a substitute for it.
  • Design the guardrails, not just the target. I named free-to-paid conversion as the metric that must not decline. Any version that bought completion at the cost of revenue was disqualified before we ran it. Teammate invites sit underneath that as a leading indicator, because a team that invites colleagues is a team on its way to paying — which is exactly why cutting invites from the skip path did the damage in section 08.
  • The agent configures, it doesn’t just recommend. A recommendation the customer has to go act on themselves is a to-do list with extra steps. Concretely: the agent reads the Get to Know Me business context the customer gave at signup, works out that they run a three-stage consulting sale, and builds those pipeline stages — named for their business — rather than showing a tip that says "set up your pipeline." Nothing is written to their portal without a review-and-confirm step, and no step runs automatically until acceptance data shows people consistently approve it. I argued for 85% as that threshold.
  1. 01
    North star

    Activation

    The customer completes a task that accomplishes the primary goal they told us about, within 30 days.

  2. 02
    Secondary

    Setup completion

    A signal that activation is moving. Never a substitute.

  3. 03
    Guardrail

    Free-to-paid conversion

    Must not decline. Completion bought at the cost of revenue is disqualified.

  4. 04
    Leading indicator

    Teammate invites

    A path to monetization, not a target of its own.

03 · The intake

I designed an agent that asks what you’re trying to do before it asks for your inbox

The intake opens with a goal, not a feature checklist. The customer answers in business language — generate leads, close deals, improve marketing — and that answer sets the order of everything after it.

From there the system works from whatever it can already see, so the customer types as little as possible:

  • Their domain and website
  • The business context they gave at signup
  • Spreadsheets, documents, or screenshots they upload
  • Their email and calendar, once connected
  • Whatever already exists in the portal
  • How they corrected the agent on earlier steps

What comes out is a working starting point rather than an empty CRM: pipeline stages, properties, reports, and a first recommended action.

Three decisions I made and defended:

  • Goal first, always. Every data request comes after the customer has said what they want.
  • The goal is the one thing we don’t let people skip. This is the call I changed my mind on. We started with the goal step skippable like everything else, and it didn’t hold up: the goal sets the tone for the entire setup, and guessing — defaulting someone into a sales or a marketing goal — produces a configured portal that’s wrong for them, which is worse than no portal at all. So the "set up manually" button now appears after goal capture, not before it. People can still leave. They just can’t leave without telling us what they came for.
  • Review and confirm is the default. The agent proposes, the customer approves. We only automate a step once acceptance data proves people consistently approve it.
04 · The beta rollout

The beta rollout showed we were asking for the most before we’d given anything

We shipped the beta to a limited cohort before going wide, which is the only reason I could answer the next question with data instead of opinion. Once it was live and collecting, I went through the Amplitude funnel step by step with our data partner, then watched session recordings of the people who dropped out.

Three things were going wrong, and only one of them was about the AI.

  1. We asked for data before we gave a reason. The flow opened by asking people to connect Gmail or Microsoft. Asking for data before capturing a goal caused roughly 30% drop-off. Email connection before the goal step had 10.7% fallout; after it, 5.8%.
  2. The exit was easier than the path. A "set up manually" button sat on screen from the first moment, before the agent had done anything worth staying for. 40% of people took it.
  3. Finishing wasn’t the problem — starting was. Of the people who did complete, the downstream numbers were strong. Only about 15% completed.

That reframed the project for me. We did not have an AI quality problem. We had a sequencing and motivation problem.

  1. Signup100%
  2. Welcome agent12
  3. Goal agent
  4. Integrations agent
  5. Completion~15%3
  1. 1Data requested before goal — ~30% drop-off
  2. 2Exit button on screen from step one — 40% skip
  3. 3Only 15% complete
05 · Sequencing

I redesigned the sequence, we reran the experiment, and completion went from 15% to 25%

I redesigned the flow around what the funnel had just told us, and we put it back into a test rather than shipping on conviction. The hypothesis I wrote:

People drop out because the experience asks for high-friction commitments — connecting data, picking a use case — before they have any sense of value or orientation.

Four cohorts, new free customers, 26 days:

Experiment variants
VariantWhat changed
ControlSkip button always visible. Data sync before goal capture.
AHide "set up manually" for the first two steps, until a goal is chosen.
BMove data sync inside the flow, after goal capture. Enrich the skip path.
CBoth.
Experiment variants

Moving data sync after goal capture lifted completion from 15% to 25% — a 10-point gain, the single highest-leverage change in the program. Quick-reply prompts cut the intended experience from about 13 minutes to about 4.

Before
  1. 1Connect your inbox
  2. 2Welcome
  3. 3What’s your goal?
  4. 4Configuring
  5. 5Done
15% complete
After
  1. 1Welcome
  2. 2What’s your goal?
  3. 3Connect your inbox
  4. 4Configuring
  5. 5Done
25% complete
Same steps. Different order. Ten percentage points.
06 · One column

Then I took the layout apart: two columns became one

The flow was right and people still weren’t finishing it.

The original intake was a two-column layout — the conversation on the left, a context panel on the right showing what the agent was building. It was built to reassure people by showing the work. In testing it did the opposite. Attention split between two places, the decision in front of the customer competed with a panel they hadn’t asked for, and on smaller screens the primary action got pushed down.

I rebuilt it as a single column. One conversation, one decision on screen at a time, the agent’s output inline in the thread where it was being discussed rather than parked in a sidebar. New gradient background, Trellis button hierarchy, and the quick-reply pattern moved to HubSpot’s native in-chat component.

The one-column flow, end to end.
07 · The reskin test

The reskin won on completion and told us nothing about revenue

We ran it as a four-way test. North star: free activation. Guardrail: monetization rate.

What the reskin moved:

  • Successful completion up 5.5 points, +13%, statistically significant
  • Skip and abandon rates down, statistically significant
  • Recommendation accept rates up, edit and skip rates down

What it didn’t move: nothing in monetization reached significance. Our analysis showed we’d need 25–30× more traffic to detect a monetization effect of that size. Slight directional declines in two variants, too small to separate from noise.

Successful completion rate, indexed to control = 100

100Control
113Reskin

+5.5 points / +13%, statistically significant

Monetization: no significant change in any variant.

The question that bothered me most: accept rates went up, but we hadn’t changed the recommendation logic at all. The agent wasn’t giving better recommendations. So either we’d removed real friction, or people were now breezing through and accepting without reading.

I didn’t want to answer that with a completion number. I pushed to look at transcripts and at whether we could isolate satisfaction for intake specifically, and argued we should be optimizing for trust rather than speed. That work is still open.

One more thing we caught: interaction with the welcome step dropped below 1% in the reskin, against about 11% in control, and people who skipped started skipping earlier. A layout change had quietly altered behavior in a step we hadn’t intended to touch.

We shipped the reskin to 100% of free customers. It won clearly on engagement, it was neutral on revenue, and we accepted that we couldn’t measure a small revenue effect at our traffic.

08 · The skip path

I designed the skip path to matter as much as the happy path

The most useful thing we learned all year came from an experiment that went backwards.

When data sync and teammate invites were stripped out of the skip path, monetization fell 22%, data connection fell from 26% to 18%, and the invite rate halved. A related readout had data connection collapsing from 22.9% to 1.9%.

People who skip the agent are not low-intent. They’re busy. They still connect their inbox and still invite their team, if you give them somewhere to do it.

So I designed skip as a warm handoff instead of an exit: confirm the skip, then still offer data sync and invites, and keep a way back into the agent later. Both paths carry the same value moments. The agentic path is faster; the skip path is not a dead end.

What I traded for it: a longer skip flow. Adding steps after someone has already said they want out risks losing them twice, and we accepted that risk because the alternative — a skip path that quietly costs 22% of monetization — was worse.

Skip
Skip flow · v1
  1. Skip confirmation
  2. Goal capture
  3. Empty portal
Skip flow · updated
  1. Skip confirmation
  2. Goal capture
  3. Data sync
  4. Invite team
  5. Partially configured portal

If goal capture or data sync was already captured, that step isn’t shown in the flow.

Skip confirmation, then the same opportunities — not an exit.

The cost of getting it wrong. Removing these from skip: −22% monetization, data connection 26% → 18%, invites −50%.

09 · Upgrades

I made the system carry what it already knows across upgrades

Onboarding that forgets you is worse than no onboarding.

When a customer upgrades, the system now carries their goals, progress, and context forward. An upgrade welcome step reconfirms what they told us rather than asking again, checks what’s already configured in the portal, identifies which limit triggered the upgrade, and routes them to the right sub-agent.

I also consolidated email and calendar sync, contact import, and enrichment into one component that works the same way inside onboarding, in Global Home, and in Settings — three places that had been drifting apart.

The upstream and downstream effects I had to design around: changing the first screen changed behavior four steps later; a component used in three surfaces meant any change had three sets of edge cases; and the agent’s output had to land in product surfaces owned by other teams.

Upgrade welcome screen reconfirming the customer’s earlier goal
10 · The solution

The solution: one real outcome in the customer’s first session

The customer who signed up on a Tuesday night now has a working portal in about four minutes — pipeline stages, properties, connected inbox, and a first recommended action already in place. Not a configured CRM. A first win, and a reason to come back tomorrow.

The boundary I defined holds in the shipped version: the agent creates the warm start, then hands the customer into the product surface that owns the rest. The agent drafts; it doesn’t try to be the whole product. That’s what keeps it useful to the hub teams rather than competing with them.

What I’d point at as the design result, separate from the metrics: the experience asks for one thing at a time, in the order that makes sense to the person rather than the order that’s convenient for the system, and it still works when they skip it.

The Deals board after agentic setup, with the sales pipeline stages populated with deals and a welcome modal offering a quick tour
Day one, before
The empty day-one portal
Four minutes later
The same portal four minutes later, configured
Four minutes apart.
11 · Experiments

The experiments we ran, and what each one settled

A running log. This is the section that shows the work was a program, not a project.

Experiment log
ExperimentWhat I was testingResult
Sequencing and skip placementMove data sync after goal capture, delay the skip button, and enrich the skip path with goal, sync, and invitesCompletion 15% → 25% (+10pp). Variant productized. I designed the variants and wrote the hypothesis.
Reskin — one columnTwo-column layout vs oneCompletion +5.5pts / +13%, significant. Monetization neutral. Shipped to 100% of free customers.
Global Home redirectSend customers to a home surface after intake instead of a tourCut shallow post-tour activity, but reduced visibility of upgrade points. Not adopted on its own.
Direct-to-paid entryRoute new paid purchasers into agentic setupWon, graduated into the default paid flow. 35.2% completion.
Paid rollout, all hubsExtend agentic onboarding to paid purchasers and upgradersRolled out broadly.
Experiment log
  1. Mar 2026

    Beta rollout of the intake flow

  2. Apr 2026

    Sequencing and skip placement

    Completion 15% → 25%

  3. Apr 2026

    Direct-to-paid entry

    Won. 35.2% completion

  4. May 2026

    Paid rollout, all hubs

    Rolled out broadly

  5. Jun 2026

    Global Home redirect

    Post setup, redirected to Global Home vs in-app task

  6. Aug 2026

    Reskin — one column

    Completion +5.5pts. Monetization neutral. Shipped to 100% of customers at HubSpot’s annual product launch

  • Full flow shipped
  • Experiment
  • Experiment, not adopted
12 · Helping others

How my work helped other people do their best work

The part of this I’m proudest of isn’t a screen.

  • I built a UX copy tool the org adopted. A skill I made for my own team’s copy review got recommended by a PM as the standard QA step in a ten-stakeholder thread for a product outside my area entirely.
  • I kept the quality bar where AI makes it easy to drop. Agentic flows look finished long before they are. I ran independent QA on the intake flow across free, paid, and upgrader paths, and caught contact fields that silently failed to persist from intake into the CRM, a skip screen that shipped with the old two-column layout after the reskin, and button and copy inconsistencies across the three entry points before customers saw them.
  • I onboarded the people who came after me. Three designers and PMs joined this surface mid-project. Each one got the full state of the system from me directly, not a handoff doc.
Before the copy check

Hi there! Hello, I’m your HubSpot assistant. Tell me what you’re trying to get done, and I’ll set up your account around it.

Next →Skip for now
  • Double intro
  • Inconsistent button labels
After

Hi, I’m HubSpot’s AI assistant. Tell me what you’re trying to get done, and I’ll set up your account around it.

ContinueSkip
  • One intro
  • Consistent button labels
The copy tool, on a real agent message.

Agentic flows look finished long before they’re thought through.

  • Caught before launch

    Contact fields set during intake silently failed to persist into the CRM.

    Without the catchCustomers would have answered the questions and found their answers missing.

  • Caught before launch

    The skip screen shipped with the old two-column layout after the reskin went live.

    Without the catchAnyone who skipped would have landed in a layout we’d already replaced.

  • Caught before launch

    Button and copy inconsistencies across the free, paid, and upgrader entry points.

    Without the catchThree entry points would have read as three different products.

13 · What moved

What moved

15% → 25%

Setup completion, after data sync moved behind goal capture

+5.5pts / +13%

Completion from the one-column reskin, statistically significant

3×

Activation rate for customers who finished setup, versus those who skipped it

6.0% vs 3.1%

Free-to-paid conversion rate: 6.0% for finishers, 3.1% for skippers

+13% / +13%

First-goal achievement and conversion to paid, against control

~13 min → ~4 min

Time to get through setup

  • Customers who finished setup went on to book 77% more meetings and close 85% more deals in their first 30 days.
  • Usage of Breeze, HubSpot’s AI assistant, rose 22% among customers who came through agentic setup.
14 · What it doesn’t prove

What the numbers don’t prove

15 · How I’ve changed

How I’ve changed

What I stopped doing: treating every extra step as friction. The data doesn’t support it. Removing steps cost us 22% of monetization. Repositioning the same steps gained us 10 points of completion. Sequence beats subtraction.

What I do now: give the skip path the same design attention as the happy path. Most people take it, and it’s where the value quietly leaks out.

What I learned about AI products specifically: an agent that looks finished and an agent that’s been thought through are very different things, and only one of them shows up in the screenshot. Higher accept rates can mean we removed friction or that people stopped reading. I’ve stopped treating speed as a proxy for trust.

What I’d do differently: instrument acceptance before scaling, not after. We expanded to more hubs faster than we built the measurement to tell us whether people believed the agent.