← Builds
Case study · self-directed concept

Activation Signal

A self-initiated lifecycle concept for a practice-management SaaS, the kind of business that lives or dies on new users sticking around. I treat onboarding email behavior as a health signal, not a vanity metric, to catch practitioners who are quietly stalling before they churn.

lifecycle & retention email as a churn signal HubSpot build AI-woven

The problem

A practice-management SaaS lives or dies on activation and retention, and the risk is rarely a dramatic cancellation. It is the solo physio who signs up, gets pulled back into seeing patients halfway through setup, never finishes their booking page, and goes quiet. By the time that shows up as a cancelled plan, the window to help has already closed. The data that could have caught them early is usually sitting right there, and usually ignored.

The signal hiding in plain sight

Most teams read open rate and click rate as performance metrics: did the campaign do well. I read them as health metrics: is this person okay. Onboarding email behavior is a leading indicator of activation. Someone who opened the first two setup emails and then went silent, or who never clicked "finish your booking page," is telling you they have stalled long before they contact support and long before they cancel.

The move almost nobody makes is connecting that email behavior to what actually happened next, whether the account activated or churned.

How I'd build it

Start by pulling the engagement events that already exist: opens, clicks, and which specific setup steps each practitioner interacts with. Map those against the real onboarding milestones, the setup wizard, the getting-started checklist, the point where a booking page goes live. Then tie each practitioner to the outcome that eventually happened, activated or churned.

With that history in place, build a simple at-risk score. It does not need to be exotic to be useful. As an illustrative example, the signal would weigh things like:

  • Opened the welcome email but no clicks at all after the first 48 hours
  • No engagement with any setup step in the first three days
  • A strong start followed by a sharp drop-off in engagement
  • Clicked into a setup step but never completed the milestone

The weighting matters more than the list. I would weight recent silence more heavily than early silence, because someone who started and then stopped is a different and more urgent risk than someone who simply has not begun yet.

How I'd know it's working

This is the part that separates a useful signal from one that just looks clever, so it is the part I am most disciplined about. I would take historical cohorts where I already know who activated and who churned, then run the signal against them as if I did not know the outcome.

A signal that flags everyone catches every churner and is useless. The real questions are narrower: of the accounts it flagged, how many were genuinely at risk, and of the accounts that churned, how many did it catch early enough to act on. I would tune for catching real risk early, accept missing a few rather than crying wolf constantly, and only trust the signal once it earns it on past data.

What happens when it fires

The point is never to send a stalling practitioner more marketing. An at-risk account gets routed off the standard path: a simpler next step, a short check-in, or a direct handoff to the human onboarding team for higher-value accounts.

It does not require building new machinery. It points the help the business already offers at the people who need it, at the moment they need it, instead of finding out months later that they were struggling.

Where AI does the work

AI is woven through this, not bolted on at the end. It handles pattern detection across the engagement and outcome data, surfacing the behavior combinations that actually precede churn rather than the ones I assume do. It generates and tests content variants for the intervention emails, so the check-in that reaches a stalling clinician is tuned rather than guessed. And it scales the personalization so the team is not hand-sorting accounts every week.

It is a tool inside a disciplined process, not a magic wand. There are places I would deliberately keep a human in the loop, especially when the practitioner is an older or less technical user struggling with the tool itself. Those people need a person, not a smarter automation.

How it lives in HubSpot

This is not a separate system. The engagement events become custom properties and list membership. The at-risk score drives workflow enrollment, so a flagged account automatically enters the right intervention path. The whole thing reports through dashboards the growth team can act on, so the signal is visible and accountable rather than buried in a model.

What I'd watch out for

  • False positives. A noisy signal that flags healthy accounts trains the team to ignore it. Better to flag fewer and be right.
  • Clean historical data. This needs enough past cohorts with reliable activation and churn labels to validate against. If that does not exist yet, step one is instrumenting it, not building the model.
  • Over-automation. The human-needed cases are exactly the ones a model should hand off, not absorb.
  • Privacy and trust. The intervention should feel like care, not surveillance.

An honest note

Any figures, thresholds, or weights here are illustrative. This is a thinking artifact built from outside research, not a claim that I ran it on live company data. What it shows is how I would approach a real retention problem, end to end.

Built with HubSpot lifecycle & retention churn signal AI-assisted workflows