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 in 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.
No-Code Alternative (Free)
This setup can be implemented in Make using Notion database actions combined with scheduled triggers or form inputs. It offers a free tier and allows you to design automation with simple drag-and-drop modules—useful if you want to add filters, branching, or additional app integrations later.
You can explore it here (free account): https://www.make.com/en/register?pc=rohit9910
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