How I'm improving user retention in my SaaS

Last updated

Antonio Ufano avatar

Antonio Ufano

I've read multiple times that it's better and easier to keep current users than finding new ones, especially when you're starting a new project.

theLIFEBOARD is the first project I've built from scratch. It's a weekly planner focused on helping people achieve their goals and create new habits. It's currently free but users have to request access to it. More than 150 people requested early access and more than 80 actually created an account and started using it. However I noticed that a lot of users stopped using it after a few days or that even some of them didn't finish the onboarding process, so in this article, I'm going to explain what I did and the things I plan to do to improve user retention in my project.

Identify the customer journey

This is the first thing I decided to focus on. Draw the customer journey and try to identify all key steps involved in using the product and find potential pain points. The customer journey for theLIFEBOARD is currently like this:

  1. Visit product website
  2. Request early access
  3. Receive email with invite
  4. Create account
  5. Define first goals and habits
  6. Create the first week
  7. Complete tasks during the week
  8. Week review
  9. Create next week
  10. Repeat from step 7

Anything can go wrong between these steps. In my case, I know I'm losing users at every step of the process: Not all website visitors request early access. Not all people that request early access create an account. Not all people that create an account define their goals and habits... etc. It's the typical sales funnel I'm sure you've read about multiple times. I'm not an expert in the field but I know there are a few things I can do to improve the current situation so let me tell you what I did and what I'm working on.

Simplify the onboarding

The first problem I wanted to solve was users not defining their goals and habits. At first, I was just throwing the users in the application dashboard without explaining to them how things work or some basic concepts. I'm not sure how many of them felt lost but I know it wasn't ideal so the first thing I did was to create a step-by-step onboarding process in which I explain the basic concepts of the product and how it works.

Step-by-step onboard process in theLIFEBOARD

It's better and easier to keep current users than finding new ones, especially when you're starting a new project.

Even though users are allowed to skip the onboarding, most of them follow all the steps so I know they're familiar with the main concepts of the app. An if they just went through it super fast without reading a word (as I did in the video above 😅), I take of that once they reach the first screen of the application (as detailed in the next step).

Guide the users

Once the users go through the onboarding process, they land on the Goals and Habits page of the dashboard. As these sections are empty, I added some cards with a description of what those are. This also helps in case the user skipped the onboarding 😉. In addition, I included two notifications on the top of the screen that guides the user to create his/her first Goal or Habit and install the application as a PWA. Even the buttons to add those have a small badge with an exclamation mark to draw the user's attention 😉.

Guiding new users in theLIFEBOARD

Once the user has created the first Goals and Habits, a new notification appears to guide the user to the week page where he/she just has to complete the details of the week. The week form contains descriptions for every field and even indicates the number of Goals and Habits the user has created.

So I think now I'm doing a better job guiding the users during their first minutes in the app.

Send email reminders

This is the one I'm still working on. As I mentioned earlier, I'm losing users in every step of the process and I've confirmed that sending a friendly email reminder when a user misses the next step of the customer journey, most of the time works. So I've defined the following table that indicates important steps in the customer journey, which email is triggered immediately, which reminders are scheduled to be sent in the following days and which ones have to be removed from the schedule.

Cust. Journey stepTriggered EmailScheduled Emails remindersUn-schedule email reminders
Request early accessInvite to signupforgot to signup (+1,+3 days)none
Sign upWelcome emailcreate first goals & habits (+1, +3, +7 days)forgot to signup
Create first Goal&Habitnonecreate first week (+1, +3, +7 days)create first goals & habits
Create first Weektips for first week (2 days later)week review (+1, +3, +5 days)create first week
Week reviewweek review
Create next Weektips/help for the week (2 days later)week review (+1, +3, +5 days)week review

For example, when a user signs up, I'll send him a welcome email and schedule emails to remind him/her to create the first goals and habits. These reminders will be sent 1, 3 and 7 days later unless the user completes the next step on the customer journey, which is to create a first goal or habit. When the next step is completed, new email reminders are scheduled and old ones are removed.

The email schedule is stored as records in a database that contains the email template to use, the user name, email address, and the date on which it has to be sent. A cron job runs every few minutes and processes records for the current date in batches. If the email is sent, the record is deleted from the database and if it fails, it's kept in the database with the error details so I can review it later on.

As mentioned, I'm still working on this email processor but I plan to write a full article with all the technical details so stay tuned 🤓

If you have any other tactics to increase user retention, feel free to send me a DM on Twitter, I'd really appreciate it!

Hope you find this useful.

Happy coding!

If you enjoyed this article consider sharing it on social media or buying me a coffee ✌️

Oh! and don't forget to follow me on Twitter where I share tons of dev tips 🤙

Other articles that might help you

my projects

Apart from writing articles in this blog, I spent most of my time working on my personal projects.

lifeboard.app logo

theLIFEBOARD.app

theLIFEBOARD is a weekly planner that helps people achieve their goals, create new habits and avoid burnout. It encourages you to plan and review each week so you can easily identify ways to improve your productivity while keeping track of your progress.

Sign up
soliditytips.com logo

SolidityTips.com

I'm very interested in blockchain, smart contracts and all the possiblilities chains like Ethereum can bring to the web. SolidityTips is a blog in which I share everything I learn about Solidity and Web3 development.

Check it out if you want to learn Solidity
quicktalks.io logo

Quicktalks.io

Quicktalks is a place where indie hackers, makers, creators and entrepreneurs share their knowledge, ideas, lessons learned, failures and tactics they use to build successfull online products and businesses. It'll contain recorded short interviews with indie makers.

Message me to be part of it