Built a bi-directional Notion database sync system that gives a business owner full visibility across all users while enforcing true data isolation through separate MASTER and RESTRICTED databases.
The Problem
Drawboard needed each team member to work in their own private Notion database while the owner maintained a single source of truth across all of them. Notion's native permissions don't support true data isolation. There was no way to let users see only their own records, sync changes both ways, or add new users without rebuilding the system each time.
What I Built
A two-way sync system between a private MASTER database and per-user RESTRICTED databases:
- Dynamic Database Search - the Make scenario automatically finds the correct user database by name, so adding a new user requires zero changes to the automation. Just duplicate a template and rename it.
- Upsert pattern - each sync handles both creates and updates in a single scenario using search-then-route logic.
- Loop guard - a "Last Edited By" filter prevents infinite sync loops by only allowing human-originated edits through.
- Soft delete - a "Hidden/Seen" property lets the owner hide records from specific users without actually deleting data.
- Sync Button - batches MASTER edits into a single sync to save Make operations.
- Error recovery - Break handlers with automatic retries on API failures, plus a visual "stuck sync" indicator for manual triage.
<aside>
Tech Stack
Notion, Make, Notion API (webhooks via native automations)
</aside>
<aside>
Documentation
SOP
System Architecture & Maintenance
Make Blueprints
Database Templates
</aside>
Screenshots
Master → Restricted Sync
