If a customer churns, you probably missed the signals.
Here's how to build a simple system designed to catch those signals early and alert you before churn happens.
Open PostHog. Go to: PostHog dashboard
Next, instrument your product to capture important customer activity events using the PostHog SDK or API.
Good examples:
* user_logged_in
* project_created
* report_exported
* teammate_invited
Avoid tracking random clicks that do not help you understand customer health.
Here are some examples:
Those usually create noise. The goal is to track the actions active customers do again and again.
Customers who are about to churn often stop paying attention to failed payments.
Inside Make:
Now, select these events:
* invoice.payment_failed
* customer.subscription.updated
These events help you catch accounts that may be about to churn. A failed payment is usually not just a billing issue. A lot of the time, a failed payment is a sign that the customer is disengaging.
Still inside Make:
Next:
IF:
- user has not logged in for 7 days
OR
- product usage decreases by more than 50% compared to the week before
OR
- team invites stop
OR- Stripe payment fails
THEN:
- Flag the account
- Notify the team
This becomes a simple churn agent. A simple churn setup is enough for most startups.
Now, add OpenAI to Make.
Inside Make:
Map the customer activity data into the prompt. For example:
Inside Make, map those fields directly into the OpenAI prompt. Use this prompt (or similar):
Analyze this SaaS account.
Signals:
- Days since last login: {days_since_last_login}
- Weekly exports: {weekly_export_count}
- Team invites this week:{weekly_team_invites}
- Failed payment status: {failed_payment_status}
Return:
- Churn risk
- Likely issue
- Suggested next step
- Short outreach email
This gives the AI enough context to generate much more useful recommendations.
Add another Make module.
Inside Make:
Now, send the OpenAI response into a Slack channel.
Here's an example alert:
HIGH CHURN RISK
Customer: {customer email}
Issues:
- Inactive for 9 days
- Exports dropped sharply
- Payment failed
Suggested next step: Reach out personally and offer the customer onboarding help.
Slack alerts work really well because most people already spend time in Slack.
Now, create an internal churn form in Jotform. Go to:
Name the form: Churn Review
Add a few fields:
After a churned account gets reviewed, fill out the form manually. This is less about documentation and more about learning. After a while, common churn reasons will become easier to spot.
Once people start filling out the form, create a Jotform AI Agent.
Inside Jotform:
Choose:
Next, add churn-related documentation and support materials to the AI Agent knowledge base.
In the agent setup, go to the Train or Knowledge Base section and add materials like:
Add instructions for how the agent should respond. Paste this (or similar):
Analyze churn feedback submissions.
Identify:
- most likely churn reason
- feature complaints
- onboarding issues
- pricing complaints
Keep the answers short
Now, the AI Agent can help review churn feedback submissions.
This is important. Do not fully automate retention. AI is useful for:
But customers still respond best to human outreach. Especially in B2B SaaS. Simple emails work best.
Here’s an example:
Hey Alex,
Noticed activity dropped recently.
Wanted to make sure the team is not running into any issues.
Happy to help if needed.
Messages like this sound natural, which is why they get replies.
And that’s it... a simple way to catch churn before it happens.
this is a good idea
The automation tells you when. A human still has to show up. Most teams nail the first part and skip the second.
Spot on about failed payments being an engagement signal, not just a billing issue. Love the Make + Slack setup to catch this early—super practical! Definitely bookmarking this.
At early stage I'd skip most of this stack and just call the accounts that go quiet. The signal that predicted churn best for us was never usage dipping, it was the champion who onboarded an account leaving the company or going dark. Usage drops are lagging, the person leaving is the leading indicator.
Thank you
This really resonates.
I've started wondering whether churn signals look a lot like sales signals—they're usually visible long before the outcome, but they rarely get noticed in time.
What's been the earliest predictor you've found?
the system for spotting the churn is what it's all about 100%
Yes, but many people aren’t concerned about this and continue to focus on acquiring new clients.