Disclosure: this post was written with AI assistance.
Freelancers usually run their business across five tools: a spreadsheet for clients, a to-do app, a folder of invoices, an email inbox and their own memory. Notion can replace several of those, but only if you set it up around a few linked databases rather than a pile of pages. Here's a structure that works for most solo freelancers and stays simple enough to maintain.
The core idea: four linked databases
Everything hangs off four databases, connected with Notion's Relation property:
- Clients – one row per client.
- Projects – one row per engagement, linked to a client.
- Tasks – one row per piece of work, linked to a project.
- Invoices – one row per invoice, linked to a client and one or more projects.
Create each one as a full-page database (type /database and choose "Database – full page"). Then put them all on a single "HQ" page with linked views, so you have one place to start every day.
Clients database
Useful properties:
- Name (title)
- Status (Select: Lead, Active, Paused, Past)
- Contact email (Email) and Website (URL)
- Rate (Number, formatted as currency)
- Projects (Relation to Projects)
- Total billed (Rollup from Invoices, sum of Amount)
The rollup is the payoff: open any client and you see what they've paid you to date without opening a spreadsheet.
Projects database
- Name (title)
- Client (Relation to Clients)
- Status (Status property: Not started, In progress, Waiting on client, Done)
- Start and Deadline (Date)
- Budget (Number) and Pricing (Select: Fixed, Hourly, Retainer)
- Tasks (Relation to Tasks)
- Progress (Rollup from Tasks, "percent checked" on a Done checkbox)
Add a Board view grouped by Status. "Waiting on client" deserves its own column, because that's where projects silently stall.
Tasks database
Keep it lean:
- Task (title)
- Project (Relation)
- Due (Date)
- Done (Checkbox)
- Time spent (Number, hours) if you bill hourly
Create a view called Today filtered to "Due is on or before today" and "Done is unchecked", sorted by due date. That single view replaces most to-do apps.
Invoices database
Notion isn't accounting software, and it won't calculate tax or send invoices for you. Use it to track invoices, and generate the actual documents in your invoicing tool or a template.
- Invoice # (title, e.g. 2026-014)
- Client (Relation) and Projects (Relation)
- Amount (Number)
- Issued and Due (Date)
- Status (Select: Draft, Sent, Paid, Overdue)
- File (Files & media) for the PDF
Add a formula property called Days overdue:
if(prop("Status") != "Paid" and now() > prop("Due"), dateBetween(now(), prop("Due"), "days"), 0)
Then create a view filtered to "Days overdue > 0". Check it every Monday.
The HQ page
On your HQ page, add linked views (/linked view of database) of:
- Tasks → Today view
- Projects → board, filtered to not Done
- Invoices → overdue view
- Clients → Active only, as a compact list
This is the only page you need to open in the morning. Pin it to the sidebar under Favorites.
Templates that save real time
Notion's database templates let you pre-fill a new row. Two worth creating:
- New project template: a page body with headings for Scope, Deliverables, Out of scope, Key dates and Notes, plus a starter set of tasks (Kickoff call, First draft, Revisions, Final delivery, Send invoice).
- Client onboarding template on the Clients database: a checklist for contract signed, deposit received, access granted, kickoff scheduled.
The "Send invoice" task in every project template is small but effective; it stops finished work from going unbilled.
Automations, honestly
Notion has built-in database automations and recurring templates on some plans. They're useful for things like "when Status changes to Done, set a date". For anything involving email, payments or other apps, you'll need an external tool such as Zapier or Make, or Notion's API. Don't build these on day one. Use the system manually for a month first so you know which steps are genuinely repetitive.
Weekly 15-minute review
Every Friday:
- Clear the Today view or reschedule what's left.
- Move projects stuck in "Waiting on client" for over a week to the top and send a nudge.
- Check the overdue invoices view.
- Change any finished client to Past so your Active list stays honest.
Common mistakes
- Building pages instead of databases. Pages can't be filtered, sorted or rolled up.
- Too many properties. If you never fill a field, delete it.
- Treating Notion as your accountant. Keep proper records for tax in an appropriate tool; Notion is your operational view.
- Storing sensitive client data carelessly. Check sharing settings and avoid storing passwords in pages.
Summary
Four linked databases (Clients, Projects, Tasks, Invoices), one HQ page with filtered views, two templates and a weekly review give most freelancers a clear picture of their work and money. Start with this skeleton, use it for a month, and add complexity only where you feel friction.
If you want a starting structure instead of a blank page, I put together a small, inexpensive, AI-assisted kit on this topic: Notion workspace systems for freelancers. Everything above works without it. Other kits: all products.
Top comments (1)
Solid structure, and the "Send invoice" task in every project template is a great habit.
One addition that pays off at tax time for US freelancers: give Invoices a Paid on date, separate from Issued. Most freelancers use the cash method, so income counts when the money arrives, not when you send the invoice. A December invoice that gets paid in January belongs to next year's taxes.
With that date in place, two more properties go a long way:
A Clients rollup of this year's paid amounts also gives you a quick cross-check against the 1099-NEC and 1099-K forms that arrive in January.