How to build a Gamified Habit Tracker | Step by Step Guide

post type
created time
2024/02/18 07:07
3 more properties
Hey guys, welcome to my first blog post :)
Today, I'm going to provide a in-dept tutorial on how to make your own gamified habit tracker. This is the same tracker that got 90k views on TikTok. I've also made updates based on the new Notion formula release, and have included additional tips. Let's get started.
code index code Database Database property Name of the property Database view Menu Options

disclaimer & prerequisites

Today's tutorial focuses on creating one character. I'm currently devising simpler tutorials for creating multiple characters at the moment.
If you want a pre-made version now with two characters, you can visit my store to download it. Although not free, it would greatly support me in my mission to take Notion to the next level.
Additionally, you will need Notion . You can also download it using the link provided below or on my website.

step 1: setting up

The first thing you need to do is open up a blank page.
Then, create two columns. In each column, create a database: one named Habit Tracker and the other Character.

step 2: creating the habit tracker

In the habit tracker, rename the Title property to entries. Create new Checkbox properties for each habit you want to track. You can create as many as you want.

step 3: setting up formulas

Now, let's create a formula to accumulate points. I am going to name this Formula property, daily points.
We are using a function toNumber(), which returns 0 when the checkbox is unchecked and 1 when it is checked . So adding these values together will give the total number of checked boxes.
Simply type toNumber() and place your first habit inside it, type + and do the same for all habits! Replace {habit n} with the name of the habits.
toNumber(prop({habit 1})) + toNumber(prop({habit 2})) + … + toNumber(prop({habit n}))
Notion Formula

step 4: tracking and summing points

Now moving onto the character database, rename the Title property to character.
Next, create a new Relation property called habits related to the Habit Tracker. Toggle show on Habit Tracker. Type in “character” in Related property on Habit Tracker.
This will establish a connection between the two databases. You will also see a property character in Habit Tracker!
To accumulate points, create a new Rollup property called points. This will calculate the total points based on the completed habits.
Now, set the Relation to the Habit Tracker, property to daily points, and Calculate as Sum. This will sum up all the points from the connected habit tracker entries that are linked to the character.
Next, create a new character by creating a new entry in Character database. Name it howevery you like. I named it “daybunny” since this is the character I will be using to track morning habit.

step 5: customizing the character

Let's customize Character database.
Click on the database view, then Edit View, then Layout, and choose Gallery.
Next, select Card Preview and choose Page cover.
Set the Card size to Medium.
Upload a page cover for the character.
This will make the page cover appear as the image on the database. I am adding a gif that I created with my brand logo to give a more game-like feel.
Show points in character DB. Click on the three dots on the database. Then, select Properties and ensure points is displayed.

step 6: connect the habit tracker

Delete all entries in Habit Tracker.
Click on the Filter. Select character, then choose the character you created.
Next, create a new entry. You'll notice that this entry is linked to the character, in my case “daybunny”. Now, when you check boxes, the points will be accumulated in the character you've linked to.
Hide the character.
All set! You've successfully created a gamified habit tracker @using Notion. This allows you to monitor your habits, earn points, and level up your character

[optional] step 7: progress bar

If you want to convert daily points into a progress bar, it's very straightforward.
Just click on daily points, select Edit property, then in Show as choose bar.
Next, add the total number of habits into Divided by. Choose a color if you wish, and you're ready to go.

[optional] step 8: customise the tracker

Give your tracker a checklist-like feel.
Create a Created Time property and apply a filter for this week. This will display only the habits relevant for this week, preventing an excessively long list of habits in the future.
Second, change the habit tracker to a Gallery view. Set the Card preview to 'None', the Card size to 'small', and show all Checkbox properties. This will give it the feel of a notepad with checkboxes.
If your Habit Tracker doesn't match the example, follow these steps. First, click on the ••• symbol located in the top-right corner of the database. Then, select Properties. This should ensure that all Checkbox properties and the progress bar, daily point, are displayed.

[optional] step 9: automate the tracker

Start automating the tracker daily using the Repeat feature.
Simply click on the arrow next to New on the blue button.
Select +New Template.
Set the title to “@Today (date when duplicated)”. Link the character
Close the page, and locate this newly created template. Click the three dots next to it, select Repeat, then choose Everyday and save your changes.

[optional] step 10: motivational message

The final piece of tip I'll share involves incorporating motivational messages.
Begin by creating a new Formula property called msg to display a motivational message alongside character points.
First, we need to convert 'point', which is a number, into a sequence of characters using the format function. This will allow us to concatenate 'point' with a motivational quote.
I'm adding "points" as a unit, and using "|" as a separator for the upcoming motivational quote.
# Quick Note on How ifs Work ifs( condition_1, msg to show if condition_1 is true, condition_2, msg to show if condition_2 is true, ... condition_n, msg to show if condition_n is true, ... msg to show if every condition is false )
Notion Formula
format(prop("points")) + " points | " + ifs(prop("points") < 11, "you got this~", prop("points") < 31, "keep on going!", prop("points") < 101, "embrace the journey~", prop("points") < 200, "stay focused", if(prop("points") < 300, "almost there", if(prop("points") > 500, "almost there", "amazing")
Notion Formula
Implement an ifs statement to display varying messages based on whether the points are above or below a certain threshold.
The first 'ifs' parameter is the condition, such as if prop("points") is less than 11. Adjust the points as needed.
The second parameter defines the action when the previous condition is true. Here, it displays the message "keep on going".
I will include a third condition, which checks if prop("points") is less than 100. The fourth parameter dictates the message that is displayed when this condition is met. In this case, the message is "stay focused".
Continue adding more conditions, and explain what occurs when each condition is met.
When you are done, conclude with an 'else' expression, which is executed when ALL conditions are false.


Thank you for reading this tutorial! If you found it helpful, be sure to check out shop for my beautiful templates, which I am confident enough to say are a game-changer Subscribe to my newsletter and feel free to follow me on my social media for updates!
Happy Notion(ing)!