What you’ll build
-
A Habit Library in Notion that lists your habits.
-
A Habit Log in Notion that holds one row per habit per day.
-
One Make.com scenario that runs daily:
-
Reads active habits from the Habit Library.
-
Creates today’s checklist rows in Habit Log.
-
Prebuilt Notion views for Today, Week, and Month.
-
Lightweight formulas for streaks and completion rate.
Prerequisites
Step 1 — Notion structure
1A. Database: Habit Library
Create a database named Habit Library with these properties:
-
Name (Title) → e.g., “Meditate”, “Read 20 pages”
-
Active (Checkbox) → only habits with ✅ will be generated daily
-
Target (Number, optional) → e.g., minutes or reps
-
Category (Select, optional) → e.g., Health, Learning
-
Notes (Rich text, optional)
Add a few rows and mark Active = true for the ones you want.
1B. Database: Habit Log
Create a database named Habit Log with these properties:
-
Title (Title) → leave blank; Make will fill if you want, or keep derived
-
Habit (Relation → Habit Library) → relation to the library item
-
Date (Date) → the calendar day for the entry
-
Done? (Checkbox) → you tick this in the Notion UI
-
Notes (Rich text, optional)
-
Score (Formula) → if(prop("Done?"), 1, 0)
-
DayKey (Formula) → formatDate(prop("Date"), "YYYY-MM-DD")
-
Week (Formula) → formatDate(prop("Date"), "YYYY-'W'ww")
-
Is Today (Formula) → formatDate(prop("Date"), "YYYY-MM-DD") == formatDate(now(), "YYYY-MM-DD")
1C. Useful views in Habit Log
Step 2 — Connect Notion to Make
-
In Make, go to Connections → add Notion connection.
-
In Notion, open Share on both databases and invite the Make integration so it can read/write.
Step 3 — Build the one-scenario automation in Make
Scenario design
-
Trigger: Scheduler → every day at 05:00 (set your time zone in scenario settings).
-
Module 2: Notion → Search/Query database → Habit Library
-
Module 3: Tools → Iterator over the array of habits returned by Module 2
-
Module 4: Notion → Create a database item → Habit Log
Minimal flow diagram
![]()
Field mapping details
Note: Exact JSON paths depend on Make’s Notion module output. Use the mapper UI to pick fields.
Step 4 — Test
-
In Habit Library, ensure a few habits are Active.
-
In Make, Run once on the scenario.
-
Open Habit Log → you should see today’s rows created for each active habit.
-
Tick Done? as you complete habits. The Score formula should show 1 or 0.
Step 5 — Dashboards and streaks
Daily completion rate
Create a Notion view grouped by DayKey and add a Sum of Score at the group footer.
This shows how many habits you finished per day. If you want a percentage:
-
Add TotalHabits (Rollup) to count linked “Habit” items per day group, or simply divide by the number of active habits you keep in the library.
-
For a quick per-row indicator, use:
-
Score already equals 1 if done, 0 if not.
-
In a grouped Today view, use the group footer to show Average of Score to get completion %.
Weekly streak per habit
-
In Habit Log, create a view filtered by current week. Group by Habit.
-
Use Sum of Score in each group footer to see completions out of 7.
Optional extensions (still one scenario if you prefer simplicity)
-
Add a Time to Date and schedule at 00:05 for accurate day grouping.
-
Add a Category rollup or filter to focus on Health, Learning, etc.
-
Add a second branch in the same scenario to send a daily summary to yourself in Notion or Email after creation. If you want strictly one scenario, keep it inside this flow.
Maintenance playbook
-
To add or remove habits, just toggle Active in the Habit Library.
-
If you travel, change the scenario time zone or time to match your mornings.
-
If duplicate rows appear, check the Scheduler. Run only once per day.
Troubleshooting
-
Nothing gets created: The Make Notion connection might not have access. Share both databases with the integration.
-
Iterator shows empty array: Your Habit Library filter likely returns none. Set at least one Active habit.
-
Wrong date: Use formatDate(now; "YYYY-MM-DD")
and confirm scenario time zone.
-
Properties missing in mapper: Open Notion, create one example row manually, then refresh fields in Make.
Security and limits
-
You control the Notion data. Share integrations only with the needed databases.
-
Make’s free plan limits can change. This workflow is lightweight and typically fits free usage. Check current limits in your Make account if you scale up.
Copy-paste field helpers
Notion formulas
Score = if(prop("Done?"), 1, 0)
DayKey = formatDate(prop("Date"), "YYYY-MM-DD")
Week = formatDate(prop("Date"), "YYYY-'W'ww")
Is Today = formatDate(prop("Date"), "YYYY-MM-DD") == formatDate(now(), "YYYY-MM-DD")
Make date for “today”
{{formatDate(now; "YYYY-MM-DD")}}
Suggested Title for Habit Log items
{{formatDate(now; "YYYY-MM-DD")}} — {{3.current.properties.Name.title[0].plain_text}}
FAQ
1. Can I avoid the Relation field?
Ans: Yes. Store the habit name as plain Title text. You’ll lose easy rollups from the library.
2. Can I reset checkboxes automatically at midnight?
Ans: You don’t need to. You create new rows daily. Yesterday’s checkboxes stay as history.
3. How do I get a daily reminder?
Ans: Add another step in the same scenario to send yourself an email or a Notion mention with the Today view link.
4. How do I track partial targets (e.g., 30 minutes of reading)?
Ans: Add Progress (Number) in Habit Log. Compare to Target via a formula like min(prop("Progress") / prop("Target"), 1)
and compute partial credit.
Wrap-up
You now have a zero-cost daily habit tracker with auto-generated checklists, clear dashboards, and streak math—powered by one Make.com scenario and clean Notion views