Build a client follow-up panel in Notion (for 20 clients or fewer)
The mistake most people make tracking clients in Notion is building one big table. One table works at five clients and collapses at twenty-five, because the thing you actually need is not a list of clients — it is an answer to one question every morning: who is waiting on me, and for how long? This setup builds that answer in about an hour.
Before you start
This design suits a service business with roughly 3–25 active clients. Below that, a sheet is fine (the graduation path is in spreadsheet to CRM). Above it — or when you need email threading, pipelines and per-seat sales views — you have outgrown this and the honest next step is a dedicated CRM; our Pipedrive setup is in the Pipedrive pipeline guide.
Step 1: three databases, not one
Create three full-page databases on one page (call the page Clients):
- Clients — one row per company or person you bill.
- Engagements — one row per project or retainer. A client can have several.
- Touches — one row per meaningful interaction: a call, a proposal sent, a check-in.
The separation is the whole trick. Engagements linked to Clients means "what's active for this client" is a lookup, not a scroll. Touches linked to both means your follow-up history attaches itself to the right places automatically.
Step 2: the properties that matter
Clients needs only: Name, Status (Active / Paused / Past — a select), Owner (if you are two people), and the relation to Engagements. Resist adding more; empty properties are how Notion workspaces rot.
Engagements needs: Name, Client (relation), Status (Not started / In progress / Waiting on client / Done), Value (a number, your currency), and a Next touch date. The Waiting-on-client status is the one that earns its keep — most "CRM discipline" is really just knowing which bucket each engagement sits in.
Touches needs: Date, Type (Call / Email / Meeting / Proposal), a one-line Summary, and relations to Client and Engagement. Two relations per touch feels like double entry; it is what lets the same history appear on both the client page and the engagement page.
Step 3: the view that runs your mornings
On the Engagements database, create a second view — call it Follow-up:
- Filter: Status is Waiting on client, OR Next touch is on or before today.
- Sort: Next touch, oldest first.
- Group: by Status.
That view is the panel. Open it each morning; everything on screen is something you owe or something owed to you, oldest debts first. When a follow-up is done, you do not update a dashboard — you just change the status or add a touch, and the view empties itself. The forcing function is the design, which is the same principle we applied to the Notion side of tracking clients in Notion and to the workspace-view question in Notion vs ClickUp.
Step 4: one formula worth adding
Add a formula property to Engagements called Age since touch: days between Next touch (or the last Touch date) and today. Format it as a number. Sorting Follow-up by it puts your longest-running silence at the top — the row that has been quietly dying while you were busy. Nothing else on the panel needs to be clever.
Step 5: the weekly ritual
- Monday: open Follow-up, clear it to empty. Anything you cannot clear gets a new Next touch date — a decision, not a deferral.
- Friday: scan Engagements grouped by Status. Waiting-on-client items older than ten days get a nudge or a kill decision.
- Monthly: archive Done engagements. Old rows in the active view are noise, and noise is what kills panels.
When to leave Notion for a real CRM
The honest exit signs: you want email conversations attached to records automatically, more than one person needs structured sales stages, or the Touches database needs reminders you cannot build without duct tape. Notion's free tier handles this design comfortably for one person, with the multi-user and history limits we covered in tracking clients in Notion; the day you need the tool to chase you instead of the reverse, graduate — and take the cost picture from what a CRM costs per year.
What we cannot verify
This is a design tutorial, not a price verification: it cites no vendor prices beyond links to breakdowns with their own dates. Notion's interface wording shifts between updates (relation and formula property names, view filters), so treat property names as intent rather than pixel-accurate labels. The 3–25 client range is our judgement from coaching this pattern, not a platform limit. See How We Test.