Skip to content
← Processes

Catch churn signals and answer them

Usage falling away shows up in analytics before anyone notices on a call, and the drop is read against the account's history into one reactivation email.

PostHog→HubSpot
Starts
Weekly schedule
Steps
4
Checks and gates
0
A person decides
Never, runs alone

Trigger · Schedule

Weekly schedule

A weekly pass over paying accounts, frequent enough to catch a slide and rare enough that the list stays worth reading.

Claude runs the rest autonomously

  1. 1

    AI flags accounts with falling usage.

    PostHog

    PostHog

    Each account's last thirty days are compared with the ninety before, and a fall in users, depth of use or feature breadth gets it flagged.

  2. 2

    AI sets aside explained drops.

    PostHog

    PostHog

    A drop explained by seasonality, a renamed event or removed seats is counted and set aside, not emailed.

  3. 3

    AI hands close renewals to the owner.

    HubSpot

    HubSpot

    An account renewing soon goes to its owner for a call instead of an email, and an unresolved ticket just before the drop is named as the likely cause.

  4. 4

    AI drafts an email naming what stopped.

    One held draft to the previously most active user names exactly what they stopped doing, with one easy question and no pitch.

Churn is visible in the product months before it is visible in a conversation. An account stops running the weekly export, then stops inviting new users, then renews out of inertia once and not twice. None of that reaches the team whose job it is to notice, because noticing means someone opening an analytics dashboard for every account every week and comparing it to what they remember.

The data is complete and already collected. What is missing is the comparison, run every week by an AI agent against a baseline that does not fire every summer.

What you get

A weekly list of accounts whose usage is genuinely falling, each with the reason visible in the data and one email written about what they specifically stopped doing.

How customer churn signals show up in usage

Each week, PostHog activity for every active paying account is compared across two windows: the last 30 days against the 90 before them. The comparison window is the entire difference between a list people act on and a list people mute. Thirty days against the previous thirty means every account with a European August looks like it is churning, and the first week of September fills the list with alerts that resolve themselves. Thirty days against the preceding ninety absorbs the holiday and still catches a genuine three-month slide, which is the shape actual churn has.

Three measures are kept apart, because they mean different things:

  • Active users. A fall here is an adoption problem.
  • Events per active user. A fall here means the people still using the product are doing less with it, which is usually worse.
  • Breadth of features used. Narrowing to a single feature is the clearest early signal there is.

An account is flagged when any of the three falls by more than 30% and it has more than a trivial baseline, since below that the percentages are noise. Breadth catches the case volume hides. An account whose event count is stable but which has narrowed from six features to one is in more trouble than an account that is down twenty percent across the board, because it has quietly become dependent on a single thing it could replace. Averaged into one health score, that account looks fine.

Telling churn apart from an ordinary drop

Before a drop counts as a signal, the explanations that are not churn get checked. Seasonality is compared against the same period last year where the data exists. An outage, or a release that changed how events are recorded, shows up next, since a renamed event looks exactly like abandonment. Fewer users because seats were removed is a contraction, and that is a different conversation from disengagement. Anything explained this way is counted and set aside, and never emailed.

When a churn signal needs a call

For the accounts still flagged, the HubSpot record comes in: plan, renewal date, owner, support tickets and the last contact of any kind. Two findings change what happens next. A renewal inside ninety days goes to the account owner as a call, with the reason attached. A support ticket that went unresolved shortly before the decline started is very likely the cause, and the handover says so plainly, since a reactivation email that ignores the complaint behind the problem makes it worse.

What the reactivation email says

Every other flagged account gets one email, drafted for the person who was most active before the decline, because they are the one who can say what changed. It names the specific behaviour. "You have not used the weekly export since March" invites either "we switched to doing it in the warehouse" or "it broke and we gave up", and both are worth knowing. "Your usage has declined" invites nothing, because there is no question in it, and it tells the recipient that somebody ran a report instead of looking at their account.

After that comes one question about what changed, cheap to answer, with no discount, no feature pitch and no calendar link. The draft is held, and nothing goes to a paying customer before a person has read it.

The prompt

The real prompt behind the steps above, detailed enough that an agent with the same tools can run it as written. The Run buttons copy the full version, which also carries the steps for connecting those tools.

# Catch churn signals and answer them

You have access to product analytics, a CRM, and email. Run this
weekly across **[active paying accounts]**.


## 1. Flag accounts with falling usage

For each account, compare the last 30 days of activity against the
preceding 90, not against the previous 30. A month-on-month comparison
turns every August and every Christmas into a churn alert, and after
two of those nobody reads the list.

Measure three things separately, because they mean different things:

- Active users. A fall here is an adoption problem.
- Events per active user. A fall here means the people still using it
  are doing less with it, which is usually worse.
- Breadth of features used. Narrowing to a single feature is the
  clearest early signal there is.

Flag an account when any of the three has fallen by more than 30% and
the account has more than a trivial baseline. Under that baseline the
percentages are noise.

## 2. Set aside explained drops

Before treating a drop as a signal, check the explanations that are
not churn:

- Seasonality. Compare against the same period last year where you
  have it.
- A known outage or a release that changed how events are recorded. A
  renamed event looks exactly like abandonment.
- Seat changes. Fewer users because they removed seats is a
  contraction, which is a different conversation from disengagement.

Anything explained here is dropped and counted, not emailed.

## 3. Hand close renewals to the owner

Pull the record: plan, renewal date, owner, support tickets, and the
last contact of any kind. Two things change what happens next.

If the renewal is inside ninety days, this is not an email. Flag it
for the account owner to call, and say why.

If they raised a support ticket that went unresolved shortly before
the decline started, that is very likely the cause. Say so plainly in
the handover; do not write a reactivation email that ignores the
complaint that caused the problem.

## 4. Draft an email naming what they stopped doing

One email, to the person who was most active before the decline rather
than to the billing contact.

It has to name the specific behaviour. "We noticed you have not used
the weekly export since March" is a sentence only someone reading the
data could write. "We noticed you have been less active" is a sentence
anyone could write about anyone, and it reads as automated because it
is.

Then one question about what changed, with a low cost to answering. No
discount, no feature pitch, no calendar link. The email is a question,
not a save attempt.

Draft it. Nothing sends to a paying customer without a person reading
it first.

## Output

Report: accounts measured, accounts flagged, how many were explained
away and by what, how many were escalated to a call because of an
imminent renewal, how many had an unresolved ticket preceding the
decline, and drafts written.

Why run it with Tulina

A prompt helps one person. A process moves a team.

Pasted into a chat, the prompt above works once, for whoever pasted it. In Tulina, "Catch churn signals and answer them" becomes a process the team shares, that keeps its history, runs on its own, and stays inside the same security perimeter as the tools it calls.

  • The whole team works on the same one

    PersonalTeamOrganisation

    A process lives where it belongs: yours, your team's or the whole organisation's. Whoever runs it can improve it, and everyone starts from the best version instead of explaining the job again.

  • Every edit is a version

    v1v2v3

    Each change is a new version with the previous one kept, so a bad edit is undone by restoring an earlier one. Every run records the version it followed, and what a run teaches goes back into the process.

  • It runs without you

    schedulewebhookon demand

    A hosted agent runs the process on Tulina's own infrastructure, on a schedule or when an event arrives, and keeps going when you close the chat. Nothing to host. Every run is tracked to its outcome.

  • Inside the same security perimeter

    vaultrolesrun log

    Credentials stay in the vault, never in the prompt. Roles decide who may run what, every call is logged, and a step a person has to approve waits for that person.

Questions about customer churn signals

By comparing the last 30 days against the preceding 90 instead of the previous 30, and checking seasonal patterns against the same period a year earlier. A rolling baseline absorbs holiday dips that a month-on-month comparison turns into alerts, and still catches a genuine three-month slide.

It rules out the ordinary explanations first, such as seasonality, an outage, a renamed event or removed seats. It also reads the account's support tickets, and when an unresolved ticket shortly precedes the decline, that is named in the handover as the likely cause instead of being ignored by a cheerful reactivation email.

The person who was most active before the decline, rather than the billing contact. The person who stopped doing something is the one who can say why, while the billing contact frequently has no view of daily usage and will forward the question, losing the specifics on the way.

No. Every email is drafted and held for a person to read, and an account renewing within ninety days goes to its owner for a call instead. These are paying customers, and one badly judged automated message to an account already drifting costs more than a minute of someone's reading.

Processes that share tools with this one. The shared tools are lit.

See Tulina in a 30-minute demo.

Book a demo