Build a Free Freelance CRM with Notion + Google Sheets + n8n Automation

Manage clients, track projects, and send follow-ups automatically — without paying for expensive CRM software. Here's the setup we actually use.

👤 AutoDocAPI Team
automation freelance crm n8n no-code notion

If you’re a freelancer, you probably have some version of this problem:

  • Client requests scattered across email, Telegram, and WhatsApp
  • A spreadsheet “CRM” that you update only when you feel guilty
  • Forgetting to follow up with a lead you spoke to 3 weeks ago
  • No idea which projects are actually profitable

Expensive CRM tools (HubSpot, Pipedrive, etc.) solve some of this, but they’re overkill for most freelancers — and they cost money.

Here’s a free setup using Notion + Google Sheets + n8n that handles the most important CRM tasks automatically.


What you’ll end up with

  • Notion as your visual project/client board (kanban-style)
  • Google Sheets as a flat database for reporting and analytics
  • n8n automation that:
    • Sends follow-up reminders when a lead has been inactive for 7 days
    • Creates a task in Notion when a new client fills in your contact form
    • Sends a weekly summary of your pipeline to email or Telegram
    • Logs all status changes to a Google Sheet for history tracking

The architecture

Contact Form → n8n → Notion (create lead) → Google Sheets (log)

         Schedule (daily) → Notion (read stale leads) → Email reminder

         Schedule (weekly) → Google Sheets (read) → Weekly summary message

Step 1: Your Notion database

Create a Notion database with these properties:

PropertyTypeNotes
NameTitleClient or lead name
StatusSelectLead, Proposal Sent, Active, Completed, Lost
EmailEmailFor follow-ups
SourceSelectReferral, Upwork, Website, Other
ValueNumberEstimated or actual project value
Last ContactDateWhen you last interacted
NotesTextFree-form notes
Next ActionTextWhat needs to happen next

The Last Contact date is critical for automated follow-up reminders.


Step 2: Connect your contact form

When a potential client fills in your contact form (Typeform, Tally, Google Forms, or your own), n8n should:

  1. Receive the form submission (webhook trigger)
  2. Create a new entry in Notion with Status = “Lead”
  3. Set Last Contact = today
  4. Log to Google Sheets
  5. Send you a Telegram notification: “New lead: [name], [email]”

This means zero manual data entry when a new lead comes in.

Setting up the Typeform → Notion connection in n8n:

  1. Create a Webhook node in n8n (get the URL)
  2. In Typeform, add this URL as a webhook
  3. Connect a Notion node: action = “Create Page”, database = your CRM
  4. Map the form fields to Notion properties

Step 3: Automated follow-up reminders

The most valuable part. Every day at 9 AM:

  1. n8n reads all Notion entries with Status = “Lead” or “Proposal Sent”
  2. Filters for entries where Last Contact was 7+ days ago
  3. Sends you a list: “These leads need follow-up today”

The message looks like:

📋 Follow-up reminders for today

• Sarah M. (Lead) — last contact: 8 days ago
  Next action: Send revised proposal

• Tech Startup Inc. (Proposal Sent) — last contact: 12 days ago
  Next action: Check if they reviewed the proposal

Reply to this message or update Notion directly.

You still need to actually reach out — but you’ll never forget to.

The n8n logic:

const leads = $input.all();
const now = new Date();
const sevenDaysAgo = new Date(now - 7 * 24 * 60 * 60 * 1000);

return leads.filter(lead => {
  const lastContact = new Date(lead.json.last_contact);
  const status = lead.json.status;
  return (
    (status === 'Lead' || status === 'Proposal Sent') &&
    lastContact < sevenDaysAgo
  );
});

Step 4: Weekly pipeline summary

Every Monday morning, you get a summary:

📊 Weekly Pipeline Summary

🔵 Leads: 4
🟡 Proposals Out: 2 (total value: $6,800)
🟢 Active Projects: 3 (total value: $12,400)
✅ Completed this month: 2 (earned: $5,200)

This week's follow-ups needed: 3

This is built by reading your Google Sheets log (which n8n updates every time a status changes in Notion).


Step 5: Logging status changes

When you update a project status in Notion, n8n can automatically:

  • Log the change to Google Sheets (Date, Client, Old Status, New Status)
  • Calculate how long each stage took (useful for pricing and time estimates)
  • Send a congratulations message when Status changes to “Completed” 🎉

The Google Sheets log structure

This is what the auto-generated log looks like:

DateClientOld StatusNew StatusProject Value
2026-03-01Maria S.LeadProposal Sent$2,400
2026-03-05Maria S.Proposal SentActive$2,400

After a few months, you’ll have real data on:

  • Average time from Lead to Active
  • Your conversion rate (leads → active projects)
  • Average project value by source
  • Which client source is most profitable

Time investment

  • Setting up Notion database: 30 minutes
  • Building n8n workflows: 4–6 hours (first time)
  • Maintenance: Near zero once running

The biggest investment is the initial setup. Once it’s running, it runs itself.


Want us to build this for you?

If you’d rather spend your time on client work than building automation, we can set this up for you. You get:

  • Configured Notion template with all the right properties
  • Three n8n workflows (new lead intake, daily follow-up, weekly summary)
  • Google Sheets logging setup
  • Written documentation on how to maintain everything

Price: from $300 — complete setup with Notion template and three automations.

Fill in the brief form →


Limitations and honest notes

  • Notion API has a rate limit — fine for freelancers, could be an issue at scale
  • n8n requires some technical comfort (or someone to set it up for you)
  • This setup doesn’t replace email — you still need to actually write messages
  • Zapier/Make are paid alternatives to n8n if you prefer a hosted solution

This is part of our automation examples series. Browse more use cases in the blog.