I find daily journaling and habit tracking very valuable, but impossible to stay consistent over a long period of time. I can do it well for a few weeks at a time, and next thing you know I haven’t journaled in two months.
When I do get around to journaling, I always find myself listing off things like everything I did in a day, the weather, or where I was. But it feels to me like it’s a waste of time and energy to have to remember about my day and then list it all out. Especially at the end of a long day when my brain is only half functioning.
I figured if I can reduce that friction, then I can keep up with journaling more consistently. I realized most of the information I write down is already found in other apps, like Calendar or Health. Automatically recording that type of information means that I don’t need to spend the mental energy remembering the details. I can put my full focus towards more important things, like writing about how I felt about a certain event, or thinking about what changes I need to make in my life. It also means that if I forget to open my journal for the day, it’s not just a wash. I’ll still have data that reminds me about what that day was like, and some of my habits are still tracked automatically.
The gist of it is that I have a microservice running on Google Cloud Functions called write-to-entry
. I send some data to this service from anywhere via HTTP request, and it will write the data to the entry in my journal db.
Since shortcuts allows you to send HTTP requests, I’ve found that to be a great way to connect other apps to Notion. This means I automatically aggregate data that I’m manually entering in other sources, like fitness data from my lifting tracker Strong, or events from Google Calendar.
Beyond that, I can connect pretty much any API to Notion. I just have another service that makes a request from said API and converts it to the expected request format from write-to-entry
, and we’re good to go. For example, I’m storing the top headlines from the News API every day.
I wrote another service called append-prompts
that will stick a different set of prompts into the journal depending on whatever logic I write.
For example, I came across this tweet by Sahil Bloom that suggested asking yourself these three questions every month:
So append-prompts
checks the day of the month, and if it’s the first of the month then it will append these prompts into that day’s journal.
What’s really nice about Notion properties is that you can use the formula property to automatically track habits.
For example, whenever I track a run with my Apple Watch, it will record my workout duration. I can use the formula before to create an “Exercised” checkbox property. I know I could figure out which day I’m working out or not by the Workout Duration alone, but the checkbox is nicer for monitoring progress.
equal(if(prop("Workout Duration") > 0, "true", "false"), "true")