Skip to content
All work

The accounts most likely to leave were invisible

Our ClickUp automation was silently skipping paying customers. I built a Stripe-backed dashboard so at-risk accounts surfaced before they cancelled, not after.

Company
GoHighLevel · 2024
My role
Account Specialist — analysis, tooling, retention program
Focus
Retention, Churn analysis, Data, Automation
Inbound signal01 / where it started
Subject
why didn't we see this coming?
Account cancelled this morning. Paid, active, no open tickets, nothing in the queue flagged them. Looking back, they'd been running a build from months ago the whole time.
Composite of post-cancellation reviews. Written as a composite of the pattern, not a quote from an individual customer.

Where it ended up

  • $1M

    ARR brought under active monitoring

  • 150+

    Accounts tracked for staleness and payment state

  • Caught

    Churn, through outreach before renewal

02

Context

Retention on my book of accounts depended on knowing which customers were drifting. The system we had for that was a set of ClickUp automations meant to raise tasks when an account needed attention.

Between them, my accounts represented roughly $1M in ARR. The renewal conversation was the moment the relationship was decided, and by then it was usually too late to change the answer.

03

The problem

Cancellations kept arriving without warning. The accounts weren't loud — no escalations, no angry tickets — they simply went quiet and then left.

That's the hardest churn to catch, because silence reads as health right up until it doesn't.

04

What I found

I traced a few of the surprise cancellations back through the system and found the automation itself was the gap: it was failing on a subset of records and skipping paying clients entirely. The queue looked clean because those accounts had never entered it.

The second finding was the more useful one. The accounts that left had something in common — they were running old app versions. They'd onboarded, shipped once, and never come back to rebuild. Staleness was a leading indicator, and nothing in our tooling looked at it.

Together those explained the blind spot: we were monitoring activity in a queue that some paying customers couldn't reach, using no signal for the quiet ones who could.

05

Options I weighed

I built the dashboard. The automation could stay broken and this would still work, which was the point: I wanted a check that didn't depend on the system that had already failed.

  • Fix the ClickUp automation — necessary, but it restores a system I'd just watched fail silently, and it still only tracks tickets, not staleness.
  • Manual account review on a schedule — reliable while I did it, worthless the week I was busy, and impossible past a certain account count.
  • Build a dashboard from the sources of truth — payment state from Stripe, app version per account — so the signal is derived rather than reported.

06

What shipped

A Google Sheets dashboard integrated with Stripe, cross-referencing who was paying against which app version they were running. Accounts on stale builds surfaced as at-risk on their own, without anyone remembering to look.

I worked that list as an outreach queue — contacting accounts based on the risk signal instead of waiting for them to contact me.

07

Impact

Churn that would have arrived as a surprise cancellation turned into a conversation weeks earlier, while there was still something to do about it.

It also changed how I spent my week. Instead of distributing attention evenly across 150 accounts, I could aim it at the ones the data said were drifting.

08

What I'd do differently

Sheets was the right call for proving the signal — I had it running in days without asking anyone for resources. It was the wrong place to leave it. A spreadsheet has no owner, no tests, and no alerting, so it degrades quietly in exactly the way the automation it replaced did.

Once the signal proved out, I should have pushed to move it into the product as an account health field the whole CS team could see. I proved the hypothesis and under-invested in making it permanent.