11 SaaS retention techniques nobody is talking about

Joelle Goldman
Sep 7, 2016 · 11 min read
Image for post
Image for post

Gaining an additional $100 MRR each month is worth $7,800 after 12 months.

Here’s the silver lining:
Because of it’s involuntary nature, this is a solvable problem, and there is no reason to simply accept it as a cost of doing business. At Churn Buster we spend our days making sure no one loses another customer unnecessarily. And while it’s our job to continuously optimize the processes for doing so, there are basic guidelines that every serious business should establish right away.


1. Stop Pre-Dunning. Turn it Off. Now.

5 years ago, it was a good idea to give customers a heads up 30 days, 15 days, 3 days before their card expired. You could plug a potential leak before it became an issue.

Image for post
Image for post
See that “Source: Automatic” bit? That’s card updater at-work! 💳

Why does this matter?

Let’s say you are sending pre-dunning emails to warn customers their cards will expire without their prompt attention…

For every 10 customers you email, 7 would have completed a successful payment.

Their cards will be auto-updated, and their recurring billing won’t skip a beat.

  • Fewer cancellations

2. Go Beyond Emails Triggered by Payment Attempts✉️

Most in-house and free/cheap dunning solutions are set up “the easy way.”

Around 20% of your charges will clear within the first 5 days simply by retrying the card.

At Churn Buster, we typically hold off emailing customers until 5 days after the initial failed payment.

  • Segment customers and send different campaigns based on price point or other factors.

3. Optimize Your Card Update Page 📱

Image for post
Image for post
  1. For the same reasons, your page needs to be responsive and mobile-optimized. Remove navigation, remove unnecessary copy. Test across multiple browsers, devices, and screen sizes. At this stage, it’s most important to a) show the customer this isn’t a sketchy phishing campaign, and b) display cleanly and reliably in their browser.
  2. Host a dedicated page where customers can update their card.
    If you use a modal to show the form, it’s possible that other code on the page will interact/conflict with the billing code, and cause problems. If it there isn’t a conflict today, it may happen after a future website update when you least expect it.
  3. Routinely test your card update page.
    We’ve seen companies update their app or marketing site, and not realize the page they are linking customers to had been broken during the update—for several months! Once you’re at five-figure MRR, this is a problem that scales disastrously… and is well worth your effort to fix.
  4. Please, make sure your page is encrypted, and don’t store credit card details on your server. Pass them directly through to your payments provider.

4. Ensure Subscriptions Get Reactivated ✅

Specifically with Stripe (check with your payment processor on this), when the retry process wraps up a customer can either be marked as unpaid, or canceled.

When it’s set to “Mark as Unpaid”:

After a subscription is marked as unpaid…they won’t automatically reattempt payment of that invoice. So let’s say you have that set to happen on day 10. If the customer updates their card on day 11, you’re screwed. The new card will be stored on-file, but the subscription won’t have an automatic payment attempted.

When it’s set to “Cancel Subscription”:

This scenario isn’t much better. Let’s take the same schedule, and assume a card update happens on day 11. The new card will be stored, but since there is no subscription anymore, payment won’t be attempted and future renewals won’t occur.

In either of these cases, it will likely look like you saved the customer depending on your reporting tool. But they’ll never pay you again.

You either need to manually ensure all customers who update their cards get a subscription back into an active state. Or you need to write code that handles these scenarios.

5. Collect on Unpaid Invoices 💰

Whenever a card is updated, decide how far back you’d like to go for collecting unpaid invoices. Beyond re-activating the subscription, you can also collect for any invoices that went unpaid in that time frame.

6. Explore Edge Cases and Plug Leaks 🔍

There are various edge cases that can result in revenue churn. Here is a non-exhaustive list of some edge cases we’ve witnessed that you may want to consider, particularly if you are high-growth or at-scale:

  • Will payment be initiated if a customer updates their card after a subscription has been marked as canceled/unpaid?
  • How will customers with multiple subscriptions be handled? Customers with multiple customer IDs? Customers with discounts? In-trial?
  • What if a customer’s email changes in your app — does it change in your payment processor?
  • What happens when an email bounces?
  • What happens when someone leaves their position at their company?
  • If a customer updates their card multiple times will they be billed multiple times?
  • How far back will you collect on delinquent invoices? When collecting on multiple invoices, will you get notified of large balances so you can personally manage the customer experience?
  • (Stripe-specific) Will an invoice be auto-paid if it’s already been closed? What if it’s been forgiven?

7. Build in Visibility 📊

For several reasons:

  • Help customer support/success interact better with customers
  • Trust that the system is working as expected (we’re talking about emailing thousands of people about billing issues — you want to know that’s working as expected)
  1. Where is each person in your “funnel?” (i.e. emailed 3/5 times, next email on Friday)
  2. (important) How does our recovery break down over time? When a funnel ends in a “win,” what was the cause? Did they update their card? Was that before or after you emailed them? Was it reattempted successfully? When did it happen during the funnel timeline? Should you add another email to the end of the process?
  3. Are emails getting delivered?
  4. Are emails getting opened?
  5. Are people converting after clicking the link in your emails?

That can work for very early stage companies, but once you’re growing, visibility is critical.

8. Prioritize Regular Maintenance 🔧

Image for post
Image for post

That’s someone showing intent to reactivate, and then being failed by your system.

Reach out to them! Escalate it to customer success! Just don’t let them walk for good.

9. Set Up Emergency Handling 💣

You should not only be keeping an eye on Stripe’s (or other integrations) API uptime, but also that of your own dunning system.

These are the things your team can’t ignore when you build or update your dunning system.

10. Follow up!

If you ask Steli from Close.io to give you one tip, it’d likely be, “Follow up ’til you die!!”

Follow. Up. Relentlessly.

11. Get on the phone ☎️

Image for post
Image for post
Those are phones (for you kiddos).

When you’re beyond $20k MRR, optimizations have a huge impact when considered in terms of LTV impact.

If you found this guide helpful, please share so your friends can retain customers too :)


Churn Buster

Churn-prevention tips from the pros at Churn Buster

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store