Most churn prevention programs I have seen are not programs. They are a quarterly review meeting where someone shows a chart, says churn ticked up, everyone nods, and three people get assigned to "reach out to at-risk customers." Two weeks later those three people have not reached out because they were never told which customers, why, or what to say.
A churn prevention workflow fixes that. It is a system, not a meeting. The system watches your customer base for signals every day, scores accounts on risk, routes each at-risk account to a specific intervention, and tracks whether the intervention worked. When it works, you typically recover 10-30% of the customers who would have otherwise churned. That is real money — for a $50k MRR business with 3% monthly churn, recovering a quarter of those cancellations is roughly $4,500 of saved annual recurring revenue per year, every year, compounding.
This post is the operator's blueprint for building that system. It works for SaaS, subscription products, membership businesses, and recurring service contracts. I will use Deelo's apps as the example stack because that is what I know best, but the architecture translates to any platform that has a CRM, an automation engine, an email tool, and a helpdesk.
Step 1: Define what churn actually means in your business
Before you can prevent churn, you have to define it precisely enough that two people on your team cannot argue about whether a given account churned. The number one cause of broken retention programs is fuzzy definitions.
There are four events most subscription businesses should treat as churn or near-churn:
- Voluntary cancellation: customer clicks the cancel button. Subscription ends at the period boundary.
- Downgrade past a threshold: customer moves from a paid tier to free, or drops below a defined floor (for example, fewer than two seats on a per-seat plan). Treat this as soft churn — partial revenue loss with high risk of full churn within 90 days.
- Involuntary churn (failed payment that does not recover): card declines and dunning fails. Often 20-40% of total raw churn for SMB SaaS. Most of this is recoverable with the right workflow.
- Inactivity churn: customer has not logged in or used a paid feature in 30+ days but is still on the bill. They have not cancelled yet, but they will the next time they look at their corporate card statement.
Pick the definitions that match your product, write them down, and put them in a shared doc. Every metric and trigger downstream depends on these definitions being stable.
Step 2: Pick the detection signals
Churn does not happen on the day the cancel button gets clicked. It happens 30 to 90 days earlier, in a series of small signals. Your job is to detect those signals and act on them while the customer is still on the bill.
The signals that actually predict churn fall into five categories. Pick at least three for your initial workflow — more than five and you will spend more time tuning the score than acting on it.
- Declining usage: weekly active sessions down 40% or more over a rolling 30-day window. Most predictive single signal for product-led businesses.
- Failed payment: any invoice that has failed at least once in the last 14 days, even if it eventually recovered. Recovery the first time does not mean recovery the second time.
- Support ticket sentiment: an unresolved ticket open more than seven days, or a ticket where the CSAT response was 1 or 2 out of 5, or any ticket containing keywords like "cancel," "refund," or "alternative."
- NPS / CSAT drop: most recent score below 6 (NPS) or below 3 (CSAT). Detractors churn at roughly 3-5x the rate of promoters in most consumer SaaS.
- Login lapse: no login by any seat on the account for 14+ days on a Starter plan, 30+ days on a Business plan, 45+ days on Enterprise. Tune these thresholds to your product — a weekly-cadence tool sets shorter windows than a quarterly-cadence tool.
Step 3: Build the risk score
Each signal gets a point weight. Sum the weights for an account, and you have a churn risk score. Keep it simple — three buckets is plenty. Here is a starter weighting that you can tune after the first 60 days of data.
- Declining usage (>40% drop): 30 points
- Failed payment in last 14 days: 25 points
- Open support ticket >7 days old: 15 points
- NPS detractor in last 90 days: 15 points
- Login lapse past threshold: 15 points
Sum the score, then bucket: 0-29 is Healthy (green), 30-59 is Watch (yellow), 60+ is At-Risk (red). Refresh the score nightly. In Deelo's CRM, this lives as a `churnRiskScore` field and a `churnRiskTier` enum on the Account record, both written by the Automation engine on a nightly schedule.
Step 4: Build the at-risk pipeline in CRM
Open Deelo CRM and create a new pipeline called "Retention" with four stages: Watch, At-Risk, In Recovery, Recovered/Lost. Configure the stages so that record movement between them is driven by automation, not by a CSM dragging cards around. The pipeline becomes the queue your retention team works from every morning.
Each card on the pipeline carries: the account name, the current risk score, the top two signals firing, the assigned owner (CSM or account manager), the date entered the stage, and a link to the most recent intervention activity. Sort the view by score descending and you have a prioritized worklist.
Step 5: Wire up the detection triggers in Automation
In Deelo's Automation app, build five workflows — one per signal. Each one runs nightly, looks for accounts that match its signal, and updates the relevant field on the CRM record. The Automation engine then runs a sixth workflow that recomputes the total score and moves the card to the right pipeline stage.
Here is the trigger and action structure for each signal workflow:
- Declining usage trigger: Schedule node (daily at 2am) → Query node (accounts where rolling30dayUsage < rolling60dayUsage * 0.6) → Update Account node (set `signalDecliningUsage: true`).
- Failed payment trigger: Event node (`invoice.payment_failed` from Invoicing app) → Update Account node (set `signalFailedPayment: true`, `failedPaymentDate: now`).
- Stale ticket trigger: Schedule node (daily) → Query node (helpdesk tickets where status='open' and lastActivity > 7 days ago) → Update Account node (set `signalStaleTicket: true`).
- NPS detractor trigger: Event node (`survey.response.submitted` where score < 7) → Update Account node (set `signalNpsDetractor: true`, `npsDetractorDate: now`).
- Login lapse trigger: Schedule node (daily) → Query node (accounts where lastLoginAt < threshold by plan tier) → Update Account node (set `signalLoginLapse: true`).
The score-recompute workflow runs after all five signal workflows complete. It reads the boolean fields, multiplies by the weights, writes the total to `churnRiskScore`, sets `churnRiskTier`, and uses a Conditional node to move the CRM card to the right pipeline stage. Total build time: about half a day if your event names and field names are already standardized.
Step 6: Design the interventions per tier
Detection without intervention is just a more expensive report. Each tier gets a specific, repeatable intervention. Resist the temptation to send the same generic "is everything okay?" email to everyone — it gets a 2% response rate and signals that you are not paying attention.
Watch tier (score 30-59): automated. A three-email nurture sequence over 14 days that surfaces relevant features the account has not adopted yet, plus an offer for a free 30-minute success review with a CSM. No human intervention required unless the score climbs.
At-Risk tier (score 60+): human-led. The assigned CSM gets a Slack notification and a task in their queue with a 48-hour SLA to call the primary contact. The call is a discovery conversation, not a pitch — the script is "we noticed [specific signal], wanted to check in." Anchor on the signal, not the cancellation.
Failed payment specifically: parallel track. Trigger an automated dunning email sequence (day 1, day 4, day 7, day 10) plus an SMS on day 4 if you have a mobile number on file. SMS dunning recovers roughly 20-30% more failed payments than email-only sequences in our customer data.
Step 7: Build the email and SMS sequences in Marketing
Open Deelo Marketing and build two campaigns. The first is the Watch tier nurture: three emails, sent 0/7/14 days after pipeline entry. The second is the failed payment recovery: four emails sent 1/4/7/10 days after the failure event. Wire SMS dispatches into the second campaign for accounts that opted in to SMS.
For the Watch tier nurture, the email content should reference the specific signal that triggered it. "We noticed your team's usage of our reporting features has dropped this month" lands very differently than "we hope you're enjoying the product." Pull the signal data into the email via a merge tag from the CRM record.
For failed payment recovery, the first email is purely transactional — your card declined, here is a one-click link to update it. The fourth email is the last-chance message before account suspension, and it should be from a human (the account owner or assigned CSM) not from a no-reply address. Personal sender increases recovery by roughly 15% in most B2B SaaS data.
Step 8: Log every intervention in Helpdesk
Every CSM call, email, and SMS related to a retention case should create or update a ticket in Deelo Helpdesk linked to the account. This gives you three things you cannot get from the CRM activity log alone: time-to-resolution metrics per case, a structured queue your CSMs can work from, and a complete history if the account eventually does churn (so you can debrief and improve the workflow).
In Helpdesk, create a queue called "Retention" and route every retention-tagged ticket to it. Use ticket types of "Risk - Usage," "Risk - Payment," "Risk - Support," and "Risk - NPS." These types feed directly into your retention reporting later.
Step 9: Measure what works
Build a dashboard with five views, refreshed nightly. These are the views that turn a workflow into a real program with a real ROI number you can defend.
- Pipeline volume: how many accounts are in Watch / At-Risk / In Recovery this week, last week, this month.
- Signal hit rate: of accounts in At-Risk, which signals are firing most often? Useful for tuning weights.
- Intervention coverage: of At-Risk accounts created this month, what percentage got their CSM call within the 48-hour SLA?
- Recovery rate: of accounts that entered At-Risk in a given month, what percentage moved to Recovered vs. Lost 60 days later?
- Saved MRR: total MRR retained from the Recovered cohort, monthly. This is the headline ROI number for the program.
Most teams see initial recovery rates of 10-15% in the first quarter and climb to 20-30% by month six as they tune the weights and the intervention scripts. If your recovery rate is below 10% after 90 days, the problem is almost always the intervention, not the detection — the right customers are being flagged, but the conversation when they get flagged is not landing. Re-script the CSM call and iterate.
What to do next
Start with one signal. Failed payment is the easiest to ship — the trigger is a clean event, the intervention is templated, and the ROI is immediate. Get that workflow live, prove it recovers measurable MRR for 30 days, then layer on the second signal. Trying to ship all five signals at once is how churn programs die in build mode.
If you are already on Deelo, the CRM, Automation, Marketing, and Helpdesk apps are all part of the same plan — there is no per-tool integration work. If you are stitching together separate point tools, budget a sprint for the event plumbing alone. And if you want help thinking through which signals to prioritize for your specific product, the Deelo AI Assistant can walk through your usage and billing data and suggest the three highest-leverage signals to start with.
Churn prevention workflow FAQ
- What's the single best churn signal to act on?
- Drop in core action frequency, not login frequency. Logins are a vanity signal — customers can log in and do nothing. The metric that actually predicts churn is the count of value-producing actions: deals created in a CRM, tickets resolved in a helpdesk, invoices sent in billing. A 50 percent drop from the customer's own 30-day baseline is the strongest single early-warning signal, typically firing 3-6 weeks before cancellation. Build your first churn workflow around this signal, then layer on payment-failure, support escalations, and exec-contact-changed.
- Should churn-risk customers get a discount or a human reach-out?
- Human reach-out, almost always. Discounts solve a price problem; most churn is a value problem. A short call or personal email from a CSM uncovers the real issue (unused features, wrong fit, missing integration, internal champion left) and lets you fix it. Discounts to retain unhappy customers create a worse cohort that churns six months later anyway. Reserve discounts for the narrow case where the customer explicitly cites budget and was otherwise getting value. For everything else, send a person.
- How early should the win-back sequence start after cancellation?
- Day 14 for the first touch, day 45 for the second, day 90 for the final. Day-zero win-back feels desperate and hits while the cancel feeling is fresh. By day 14, the customer has had two weeks of life without you and either solved the problem elsewhere or noticed the gap. Day 90 catches the people whose replacement didn't work out. Sequences that start sooner have lower reactivation rates. The exception is involuntary churn (failed payment) — that's a dunning sequence, not a win-back, and should start within 24 hours.
- What churn rate should I expect for a B2B SaaS?
- Healthy benchmarks depend on ACV. SMB SaaS (under 5K ARR per account) typically sees 5-7 percent monthly logo churn. Mid-market (5K-50K) sits at 1-2 percent monthly. Enterprise (50K+) is under 1 percent monthly. Net revenue retention is the better metric: above 100 percent NRR means expansion outpaces churn — that's the threshold for compounding ARR. If your monthly logo churn is above 8 percent in SMB, the problem is usually wrong-fit customers being sold, not a retention tactic gap.
Build the workflow in Deelo
Deelo's CRM, Helpdesk, and Automation apps share data natively, so churn signals trigger in real time. Build your first churn-prevention workflow free, no credit card required.
Start Free — No Credit CardRelated pages
Explore More
Related Articles
How to Start a Plastic Surgery Practice: Complete 2026 Guide
A step-by-step guide to launching a plastic surgery practice in 2026. Licensing, credentialing, facility setup, liability insurance, patient pipeline, operations software, and first-year revenue targets.
14 min read
How-ToHow to Schedule Plumbing Jobs Without Double-Booking
A practical guide to eliminating scheduling chaos in your plumbing business. Step-by-step strategies for online booking, buffer time, automated reminders, and route optimization.
10 min read
How-ToHVAC Business Software: What to Look for in 2026
A practical guide to choosing business software for HVAC companies. Covers scheduling, dispatch, maintenance agreements, marketing, and what features actually matter.
11 min read
How-ToHow to Send Professional Invoices as a Freelance Electrician
A step-by-step guide for freelance electricians to create professional invoices, get paid faster, and stop chasing payments. Templates, software, and automation tips.
9 min read