Three months ago, I was tracking clients in a Google Sheet with columns named “maybe?” and “owed $$ ???”. One client slipped through the cracks completely — I forgot to send a final invoice for $2,400 because I couldn’t see my pipeline at a glance.
That was the week I built a Notion CRM for my freelance copywriting business. Not a complex Salesforce clone — a simple, four-database system that shows me every client, every project, every invoice, and my total revenue in one dashboard. The whole thing runs on Notion and took 20 minutes to set up, because I used AI to generate the database structures and templates.
Here’s how to build the same system, step by step. I’ll show you the exact prompts that create each piece, the real output they produce, and how the four pieces connect into a system that tracks your entire client lifecycle.
Why Spreadsheets Fail Freelance Copywriters
You’ve tried tracking clients before. Maybe you used a spreadsheet. Maybe you used Trello. Maybe you had a system for two weeks before it collapsed under its own weight.
The problem isn’t discipline — it’s architecture. Spreadsheets are flat. Your freelance business isn’t. A client has multiple projects. Each project has deliverables and deadlines. Each project generates an invoice. Each invoice has a payment status. When you flatten all of that into rows and columns, you lose the relationships. You can’t click on a client and see every project, every invoice, and their total lifetime value in one view.
Notion fixes this with linked databases. One client record connects to all their projects. Each project connects to its invoices. Change a project status, and it shows up everywhere that project appears. It’s not flat — it’s relational, which is exactly how your business actually works.
The trick is setting up the right databases with the right properties and the right relations from the start. That’s where most people get stuck — and where AI saves you hours of planning.
The Four-Database Notion CRM System
Here’s the architecture. Four Notion databases, each connected to the others:
- Clients — Who you work with (name, company, contact info, status, lifetime revenue)
- Projects — What you’re doing for them (scope, timeline, deliverables, status)
- Invoices — What they owe you (amount, status, due date, payment date)
- Dashboard — A linked view that rolls everything up into your revenue numbers
Each database is simple on its own. The power comes from the relations between them. Let’s build each one using AI.
Step 1: Generate the Client Database With AI
This prompt creates your complete client database structure in one shot.
I'm a freelance copywriter building a CRM in Notion. Create a detailed database schema for a "Clients" database with these properties:
1. Client Name (title)
2. Company (text)
3. Contact Email (email)
4. Phone (phone)
5. Status (select: Lead, Active, Paused, Completed, Lost)
6. Source (select: Referral, Cold Outreach, Inbound, LinkedIn, Other)
7. Industry (select: SaaS, E-commerce, Agency, Professional Services, Healthcare, Finance, Other)
8. Monthly Retainer (number, currency)
9. Notes (rich text)
10. Last Contact Date (date)
11. Follow-up Date (date)
For each property, explain:
- Why it matters for a freelance copywriter specifically
- What to put in it when you first add a client
- One common mistake to avoid
Also suggest 5 filtered views I should create (e.g., "Active Clients", "Needs Follow-up") with the exact filter criteria.
Here’s what Claude returns:
Clients Database Schema
1. Client Name (Title property)
- Why it matters: This is your primary identifier. For copywriters, use the decision-maker’s name, not just the company — you’re building a relationship with a person.
- First entry: Full name of your primary contact.
- Mistake to avoid: Don’t use company name here. You’ll have clients who move companies and bring you with them. The person is the relationship.
2. Company (Text)
- Why it matters: Links the person to the business for invoicing and project context.
- First entry: Legal business name (you’ll need this for contracts and invoices).
- Mistake to avoid: Don’t abbreviate. “ABC Corp” won’t help you when you’re searching for “Alphabet Business Consulting” later.
3. Status (Select: Lead → Active → Paused → Completed → Lost)
- Why it matters: This is your pipeline. At a glance, you see how many active clients you have, who’s in the lead stage, and who went cold.
- First entry: “Lead” for prospects, “Active” for signed clients.
- Mistake to avoid: Don’t skip “Paused.” Clients go quiet for a quarter and come back. Marking them “Completed” loses the thread. “Paused” means the relationship is alive but work is on hold.
4. Source (Select: Referral, Cold Outreach, Inbound, LinkedIn, Other)
- Why it matters: After six months, this property tells you where your best clients come from. If 80% of your revenue comes from referrals, stop spending time on cold outreach. Data-driven marketing decisions.
- First entry: Be honest. If you don’t remember, pick “Other” — don’t guess.
- Mistake to avoid: Don’t over-categorize. Five sources is enough. You need patterns, not precision.
5. Monthly Retainer (Number, currency format)
- Why it matters: Retainers are a freelance copywriter’s best revenue. This field lets you calculate your baseline monthly income instantly.
- First entry: $0 for project-based clients. Actual amount for retainer clients.
- Mistake to avoid: Don’t include one-off project fees here. This is recurring revenue only.
Suggested Filtered Views:
- Active Clients — Filter: Status = “Active”. Sort: Last Contact Date, ascending. Your daily working view.
- Needs Follow-up — Filter: Follow-up Date is on or before today. Sort: Follow-up Date, ascending. Check this every morning.
- Leads Pipeline — Filter: Status = “Lead”. Sort: date created, newest first. Your sales pipeline.
- Revenue Overview — Filter: Status = “Active” AND Monthly Retainer > 0. Shows your recurring revenue base.
- Lost & Paused — Filter: Status = “Lost” OR “Paused”. Your re-engagement list — check monthly for opportunities to restart relationships.
Model comparison: Claude gives you more context on why each property matters for copywriters specifically — the explanations are more nuanced. ChatGPT-4 gives you a cleaner, more structured schema with less commentary but more complete property specifications. Gemini runs shorter on explanations but adds useful Notion-specific tips (like which property types to use for rollup compatibility). For the initial schema planning, I’d use Claude. For the technical setup details, ChatGPT.
Step 2: Generate the Projects Database and Link It
Now use the output from Step 1 to create a connected Projects database.
I've created a Clients database in Notion with these properties: [paste the schema from Step 1].
Now create a "Projects" database that relates to it. Include:
1. Project Name (title)
2. Client (relation to Clients database)
3. Status (select: Proposal, In Progress, Review, Completed, Cancelled)
4. Project Type (select: Website Copy, Email Sequence, Case Study, Blog Content, Brand Messaging, Sales Page, Ad Copy)
5. Start Date (date)
6. Due Date (date)
7. Fee (number, currency)
8. Deliverables (rich text — checklist of specific items)
9. Brief (rich text — paste or link to the project brief)
10. Revisions Remaining (number, default 2)
Also create:
- A "Revenue by Client" rollup property on the Clients database that sums all project fees from this relation
- 4 filtered views for this database (Active Work, Overdue, Completed This Month, By Client)
Show me the exact Notion setup steps for creating the relation and rollup.
The key here is that the output of Step 1 becomes the input for Step 2. You’re not building two separate databases — you’re building a system where clients flow into projects automatically.
When you create the relation property, every project links back to a client. When you add the rollup on the Clients database, each client’s record automatically shows their total project revenue. You never calculate it manually. You never update a spreadsheet. The data flows.
Step 3: Generate the Invoice Tracker
I have a Clients database and a Projects database linked by a relation property. Now create an "Invoices" database that connects to both.
Properties:
1. Invoice Number (title — format: INV-001)
2. Client (relation to Clients database)
3. Project (relation to Projects database)
4. Amount (number, currency)
5. Status (select: Draft, Sent, Paid, Overdue, Disputed)
6. Date Sent (date)
7. Due Date (date)
8. Date Paid (date)
9. Payment Method (select: Bank Transfer, PayPal, Stripe, Check)
10. Notes (rich text)
Create these automations or views:
- "Overdue" view: Status = "Sent" AND Due Date < today
- "Revenue This Month" view: Status = "Paid" AND Date Paid is within current month
- "Outstanding" view: Status = "Sent" OR "Overdue", sorted by Due Date ascending
- A formula property that calculates days until due (or days overdue)
Also add a rollup on the Clients database showing total paid invoices per client.
Here’s what the “Overdue” view produces after a few weeks of use — a single screen showing you exactly who owes you money and for how long:
Overdue Invoices View
Invoice Client Amount Due Date Days Overdue INV-012 Marcus Webb, TaskFlow $3,200 Mar 28 13 days INV-015 Jennifer Ramirez, BrightPath $1,800 Apr 3 7 days INV-018 David Chen, GrowMetrics $950 Apr 7 3 days Total Outstanding: $5,950
That table is generated automatically by Notion’s filtered view. No manual tracking. No “I think someone owes me money” gut feelings. You open Notion, you see who’s overdue, you send a follow-up. Speaking of which — you can chain this with a prompt to generate the follow-up email:
A client's invoice is overdue. Write a professional follow-up email.
Client: [NAME] at [COMPANY]
Invoice: [NUMBER] for [AMOUNT]
Due date: [DATE] ([X] days overdue)
Project: [DESCRIPTION]
Relationship: [NEW / ONGOING / VIP]
The email should:
- Be under 100 words
- Lead with a friendly check-in, not "your invoice is overdue"
- Mention the specific invoice and amount
- Make it easy to pay (include a "reply to confirm" CTA)
- Not damage the relationship
That’s the system in action — your Notion CRM flags the overdue invoice, you run one prompt, and the follow-up is sent. Two minutes, not twenty.
Step 4: Build the Revenue Dashboard
The final piece connects everything into a single view.
I have three Notion databases: Clients, Projects, and Invoices, all linked by relations. Create a dashboard page that shows:
1. Revenue Summary (current month)
- Total invoiced this month
- Total collected this month
- Outstanding amount
- Number of active clients
- Number of active projects
2. Pipeline View
- Leads (count and potential value)
- Active projects (count and total fees)
- Invoices sent but unpaid (count and total)
3. Monthly Revenue Chart Data
- A table I can use to track revenue by month for the past 6 months
4. Quick Actions Section
- Clients needing follow-up (linked database view, filtered)
- Overdue invoices (linked database view, filtered)
- Projects due this week (linked database view, filtered)
Show me exactly how to set this up in Notion using linked database views, rollups, and formulas.
The dashboard gives you your entire business state on one screen. Open Notion on Monday morning, and you know: how much revenue you’ve collected this month, which invoices are overdue, which clients need follow-up, and which projects are due this week. No digging through spreadsheets. No mental math.
Common Mistakes When Building a Notion CRM
Starting too complex. You don’t need 15 databases. You need four. Clients, Projects, Invoices, Dashboard. Add more only when you feel genuine friction — not when you imagine future needs.
Not using relations. If your databases aren’t linked, you don’t have a CRM — you have four separate spreadsheets that happen to live in Notion. The power is in the connections. Every project must link to a client. Every invoice must link to a project and a client.
Skipping the views. A database without filtered views is just a long list. The “Needs Follow-up” view and “Overdue Invoices” view are the two that make the system actually useful for daily operations. Set them up on day one, not “later.”
Building it all manually. The four prompts in this post generate the complete database schemas in about 10 minutes. Without AI, you’d spend 2-3 hours researching Notion property types, figuring out relations, and setting up formulas. Use the prompts. Edit the output for your specific niche. Ship it.
Not putting your existing clients in immediately. A CRM with zero data is a CRM you’ll abandon. Before you do anything else, add your current clients. Even if the data is incomplete. Three clients with partial data is infinitely more useful than a perfect empty database.
Advanced Moves: Automating Your Notion CRM
Once the four databases are running, here are three automations that make the system self-maintaining:
Weekly review prompt. Every Friday, run this:
Based on my current Notion CRM data, generate my weekly freelance business review.
Active clients: [NUMBER]
Projects in progress: [LIST WITH DUE DATES]
Invoices outstanding: [TOTAL AMOUNT]
Revenue collected this month: [AMOUNT]
Monthly target: [AMOUNT]
Tell me:
1. Am I on track for my monthly revenue target?
2. Which projects need attention this week?
3. Any clients I haven't contacted in 2+ weeks?
4. What's my one priority action for next week?
Client onboarding template. Create a Notion template in your Projects database that auto-fills the deliverables checklist, sets revision count to 2, and adds the standard communication schedule. When you win a new project, you click “New from template” and the structure is already there.
Quarterly pipeline analysis. Every quarter, export your Clients database as CSV and feed it to AI with this prompt: “Analyze my client portfolio for concentration risk, revenue trends, and opportunities for upselling.” The output tells you if you’re too dependent on one client (dangerous) or if you have paused clients worth re-engaging.
Model comparison for CRM prompts: For database schema generation, ChatGPT-4 gives you the most complete and technically accurate Notion property specifications — it understands rollups and formulas better. Claude gives better strategic advice on which properties to include and why they matter for your specific workflow. Gemini is the fastest for generating simple schemas but sometimes misses Notion-specific property types. Use ChatGPT for the technical setup, Claude for the strategic decisions.
Start Building Your Notion CRM Right Now
Here’s your action plan:
- Open Notion. Create a new page called “Freelance CRM.”
- Paste Prompt 1 into Claude or ChatGPT. Create your Clients database with the suggested properties.
- Paste Prompt 2 with your Clients schema. Create the Projects database and link it.
- Paste Prompt 3. Create the Invoices database and link it to both.
- Add your current clients — right now, even with incomplete data.
- Paste Prompt 4. Build your dashboard page.
Total time: about 20 minutes for the setup, plus 10 minutes to add your existing clients.
By next Monday morning, you’ll open Notion and see your entire business in one view — active clients, project deadlines, outstanding invoices, and revenue tracking. No more lost invoices. No more forgotten follow-ups. No more “who owes me money?” panic.
Want the complete system already built? The Freelancer OS — Notion System comes with all four databases pre-configured, 8 dashboard views, 5 pre-loaded SOP templates, and a setup guide that gets you running in 15 minutes. It’s the same system described here, but you skip the building and go straight to using it.