Audit activation

Onboarding, the moment of value and the friction in between.

Single lit match against a blue background

An activation audit answers two questions: what do the accounts that stay do early on, and what stops everyone else from getting there. A signup costs you money until that first moment of value, so this is often the stage where a small product fix is worth more than a new channel.

Say a B2B SaaS at 2M ARR sells quoting software to companies of 50 to 500 people, with a self-serve trial and a sales team behind it. All numbers below are invented for the method.

Define activation from retention data

Most teams pick their activation event by intuition. Test it. List the five or six early actions that could plausibly matter, then compare later retention between accounts that did the action in their first week and those that did not.

For the quoting tool, the candidates might be creating a template, importing a catalog, inviting a teammate and sending a first quote to a real client. Run this once per candidate. It takes signups old enough for the 8 to 12 week window to be complete, and counts an account as retained if it is still sending quotes in that window.

WITH first_week AS (
  SELECT
    a.account_id,
    a.signup_at,
    coalesce(bool_or(e.event_name = 'quote_sent'), false) AS did_action
  FROM accounts a
  LEFT JOIN events e
    ON e.account_id = a.account_id
   AND e.occurred_at < a.signup_at + interval '7 days'
  WHERE a.signup_at BETWEEN now() - interval '9 months'
                        AND now() - interval '3 months'
  GROUP BY a.account_id, a.signup_at
),
retained AS (
  SELECT DISTINCT f.account_id
  FROM first_week f
  JOIN events e ON e.account_id = f.account_id
  WHERE e.event_name = 'quote_sent'
    AND e.occurred_at >= f.signup_at + interval '56 days'
    AND e.occurred_at <  f.signup_at + interval '84 days'
)
SELECT
  f.did_action,
  count(*) AS accounts,
  round(100.0 * count(r.account_id) / count(*), 1) AS retained_pct
FROM first_week f
LEFT JOIN retained r USING (account_id)
GROUP BY f.did_action;

Then compare the candidates side by side.

Action in week 1 Share of accounts doing it Retained if done Retained if not
Created a template 55% 34% 20%
Imported a catalog 18% 48% 24%
Invited a teammate 22% 52% 22%
Sent a quote to a client 40% 58% 9%

A good activation event separates the two groups clearly and is reached by enough accounts to act on. Here, sending a quote wins. The catalog import looks attractive but concerns too few accounts. This is correlation, so motivated accounts may simply do everything. Confirm with an experiment that pushes more accounts toward the action and see whether their retention follows.

Decide also at which level you count. In B2B, one person often signs up to evaluate for a team, so activation usually belongs to the account. Keep the user-level view for the onboarding steps themselves.

Walk the path as a new customer

Sign up from scratch with a fresh address, on the device your customers use, and write down every screen, field, email and wait. Then watch session recordings of 20 accounts that did not activate, and call a few of them. Report what you saw in a friction log.

Step What is asked Needed before value? Drop at this step Action
Signup form Nine fields, phone required No 22% Three fields, the rest later
Email confirmation Blocks access until clicked No 14% Let them in, confirm later
Company setup Legal details, logo, VAT Partly 18% Prefill, ask only what a quote requires
Empty dashboard No guidance No 25% Open on a sample quote
Add a client Manual form Yes 9% Offer an import or a test client

The “needed before value” column does most of the work. Friction is justified when it improves the outcome, like asking for the information without which the first quote cannot exist. Everything else moves to after the moment of value.

Sparkler burning in the dark

Measure time to value and where it stalls

Count how long accounts take to reach the event, and read the median and the slow tail separately. A long median points at a heavy setup. A long tail often means accounts waiting on someone else: IT, a colleague, a contract.

SELECT
  company_size_band,
  count(*) AS activated_accounts,
  percentile_cont(0.5) WITHIN GROUP (
    ORDER BY extract(epoch FROM activated_at - signup_at) / 3600
  ) AS median_hours,
  percentile_cont(0.9) WITHIN GROUP (
    ORDER BY extract(epoch FROM activated_at - signup_at) / 3600
  ) AS p90_hours
FROM accounts
WHERE activated_at IS NOT NULL
GROUP BY company_size_band;

Then split activation by acquisition source, persona and plan. A channel that sends many signups who never activate usually has a promise problem, and the fix belongs in the ad or the landing page. The funnel chapter has the method for comparing those segments, and the B2B SaaS chapter covers what shifts between product-led and sales-led motions.

Row of matches catching fire

Audit each onboarding element

Go through what the product and the team actually send to a new account.

Element Question to ask What good looks like
First screen Does it point to one action? One clear next step toward the event
Empty states Do they teach or just sit empty? Sample data, a shortcut, a short video
Checklist Does it lead to value or to setup? Few steps, ending on the activation event
Emails Are they triggered by behavior? Sent according to what the account did or did not do
Invitations Is inviting offered when it is useful? Prompted when the first quote needs approval
Human help Do the right accounts get it? Sales or CS step in for accounts that fit the target and stall

Look at sales-assisted accounts separately. If a demo happens before the account ever touches the product, activation can lag far behind the signature, and that lag tends to show up later as churn. Handing over to onboarding with a dated first goal is usually the fix.

What to deliver

The chosen activation event with its evidence, the step-by-step funnel, the friction log and a short list of experiments, each written with a target. For instance: “Open new accounts on a prefilled sample quote, expecting a rise in the share sending a real quote within seven days”. Pair every activation finding with what the retention chapter tells you about those same accounts, so you do not optimize for an event that fails to predict anything.

Your next step: pick your candidate actions today, run the comparison on accounts from three to nine months ago, and go through your own signup from a new email address before you read the results.