5
4 Comments

7 steps to get more sales by building developer-friendly conversions funnel (part 1)

❗ TLDR; tracking where your users drop-off before converting is essential. The 7 steps funnel setup will bring you more business insights. ❗

UPDATE: see part 2 for setting up your dashboard with Grafana and a bit of SQL.

A conversion funnel is a series of important actions on your website. They lead visitors from one step to another to convert them into paying customers. It's essential to have some knowledge about it, as you can use the information to get more sales.

The steps below are well suited for smaller SAAS projects where you don't need to know all the details but can still take advantage. It's developer-friendly because they're well structured and logical, based on pure facts.

No extra stuff usually needed at the early stages at your startup. It assumes that you have a standard signup -> free trial -> conversion flow, but if not, it's easy enough to adjust.

  1. Create a facts table in your database. It's the heart of your conversions funnel, and all you're going to do is inserting things into it. As simple as that. You can do it in any technology; the facts table should contain:
  • unique ID/UUID field
  • created_at timestamp
  • user uuid/email
  • label as a string
  • value as a string
  • meta as a text/string
  1. Insert the very first record into the facts table when a user signs up and starts a free trial. Well, I know that now we're missing all the previous pages that lead to the signup. But I feel that it's a nice compromise for users' privacy and business metrics tracking. People expect that their info/email will be used once they signup and disclose it. Not so much beforehand. Furthermore, if you're small, it will be easier to focus from the signup step while leaving the top-of-the-funnel to another time/report. Don't try to track too much, as it will only distract you. So inserted data should have email=user@email.com, label=Free trial started

  2. Insert the second record if you have any sort of email validation. It can be email=user@email.com, label=Email confirmed

  3. You should add one more step for the first and core action in your project. What's the main offer of your SaaS? What should users do? Typically, it's some sort of CRUD action, so be sure to mark the first occurrence of it email=user@email.com, label=Used product

  4. Once the free trial ends, be sure to mark it email=user@email.com, label=Free trial finished

  5. Similarly, once the user converts, save it too. With extra info email=user@email.com, label=Paid subscription plan, value=PLAN_ID, meta=JSON(invoice_id)

  6. Store the price point too email=user@email.com, label=Paid subscription price, value=PRICE, meta=JSON(invoice_id)

...and that's it! 4 steps (signup - confirmation - action - upgrade/downgrade), 6 facts.

It will serve you long enough and, most importantly, will raise more questions down the road. It shouldn't be perfect tracking. But it must spark the curiosity inside you to optimize anything between those steps.

The next part will have examples of how to group the results with SQL. Few light queries to have a decent dashboard to check once in a while.


Bonus:

One of the easiest/most useful upgrades of this funnel tracking is grouping by the lead source. All the steps still apply, but you'd also check from where that person came from. Was it from google, social networks, or your ads? Every traffic source converts at different rates, so that it can be very insightful too. Usually, my way is to store this information in browser cookies. Later, attaching it to the Free trial started meta field, together with the first visited page.


Hey, to get notified when the next part goes live, follow me on IH and on Twitter!


on July 20, 2021
  1. 1

    I enjoyed reading this, but also wanted to suggest something easier.
    You can use a tool name Twik to track down your funnel, choose the elements and the type of data you want to measure and Twik will do it automatically.
    Create user segments that present all the relevant conditions and type of engagement and the BI dashboard will present the data there.

    1. 1

      Something similar I do with Google Analytics (with events).

      You basically have a "pageview" event (which is the default, triggered automatically). Then you have "view_item", "search", "begin_checkout", and conversion event - "purchase".

      There are more, of course, at https://developers.google.com/analytics/devguides/collection/gtagjs/events

      And then when you receive some traffic - you will receive funnel view right in Google Analytics.

      1. 1

        Yes I completely understand, and I'm aware of this. But not necessary every user who want to connect it's store would have the basic knowledge of configuring default events.

        That's why I suggested Twik, you don't need to configure those events, Twik will learn them by being installed on your site. So it makes it easier for users to connect GA on their site.

        Imagine yourself not knowing how to do event configurations, and now I'm telling you, don't worry it's a matter of plug n' play.

        Twik identify events automatically, and send them to your GA only if you turn the switch on for it. :)

        Anyway, I think that I have a lot to learn from you and excited to read more from your content.

        1. 1

          Twik identify events automatically, and send them to your GA

          That is indeed great selling point 💪

          I will add it to my list to try it out, thanks!