How I'm improving user retention in my SaaS
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:
- Visit product website
- Request early access
- Receive email with invite
- Create account
- Define first goals and habits
- Create the first week
- Complete tasks during the week
- Week review
- Create next week
- 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.
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 😉.
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 step||Triggered Email||Scheduled Emails reminders||Un-schedule email reminders|
|Request early access||Invite to signup||forgot to signup (+1,+3 days)||none|
|Sign up||Welcome email||create first goals & habits (+1, +3, +7 days)||forgot to signup|
|Create first Goal&Habit||none||create first week (+1, +3, +7 days)||create first goals & habits|
|Create first Week||tips for first week (2 days later)||week review (+1, +3, +5 days)||create first week|
|Week review||week review|
|Create next Week||tips/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.
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
Apart from writing articles in this blog, I spent most of my time working on my personal projects.
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