Guides

How to Build a CRM in Notion for $0 (With Template)

Build a fully functional CRM in Notion without paying for HubSpot or Salesforce. Covers contact management, deal pipeline, activity tracking, and email templates.

·8 min read·By ToolPick
Quick Answer

Yes, you can build a fully functional CRM in Notion for $0. Create a contacts database with status, value, and last-contact-date properties, then add a formula for follow-up reminders. Handles 50-100 clients easily.

  • Total setup time: under 30 minutes with our template
  • Handles 50-100 clients before you outgrow it
  • Saves $15-30/mo vs paid CRM tools
  • Limitation: no bulk email or pipeline automation

↓ Keep reading for the full analysis

HubSpot Free? Still limited. Salesforce? $25/user/month minimum. For solo founders and small teams, a Notion CRM does 80% of what you need — for $0.

Here's exactly how to build one in 30 minutes.

What You'll Build

A complete CRM system with:

  • Contacts database — Track people, companies, and lead status
  • Deal pipeline — Kanban board for sales stages
  • Activity log — Record calls, emails, and meetings
  • Dashboard — At-a-glance view of your pipeline

When a Notion CRM Makes Sense (and When It Doesn't)

✅ Use Notion CRM If:

  • You're a solo founder or team of 2-5
  • You have fewer than 500 active contacts
  • You don't need email tracking or automation
  • You already use Notion for other work
  • Your budget is literally $0

❌ Use a Dedicated CRM If:

  • You have 10+ salespeople
  • You need email sequences and automation
  • You have 1,000+ contacts
  • You need call recording or VoIP integration
  • Revenue depends on CRM reporting accuracy

For dedicated CRM options, see our best CRM for small business guide or HubSpot review.

Step 1: Create the Contacts Database (15 minutes)

Create a new full-page database called "CRM: Contacts" with these properties:

Core Properties

| Property | Type | Options / Notes | |----------|------|----------------| | Name | Title | Contact's full name | | Email | Email | Primary email | | Company | Text | Company name | | Phone | Phone | Optional | | Role | Text | Job title | | Lead Status | Select | New, Contacted, Qualified, Proposal, Customer, Lost | | Source | Select | Website, Referral, Cold Outreach, LinkedIn, Event | | Deal Value | Number (Currency) | Expected deal value in USD | | Assigned To | Person | Who owns this contact | | Last Contact | Date | When you last reached out | | Next Follow-Up | Date | When to follow up | | Notes | Text | Free-form notes | | Tags | Multi-select | Industry, Size, Priority |

Calculated Properties

Add these formula or rollup properties for extra power:

Days Since Last Contact: Use a formula property:

dateBetween(now(), prop("Last Contact"), "days")

This shows how many days since you last reached out. Sort by this to find neglected leads.

Follow-Up Overdue:

if(prop("Next Follow-Up") < now(), "⚠️ Overdue", "✅ On Track")

Views to Create

  1. All Contacts — Table view, sorted by Last Contact (newest first)
  2. Pipeline — Board view, grouped by Lead Status
  3. Follow-Up Today — Table view, filtered: Next Follow-Up = Today
  4. Overdue — Table view, filtered: Next Follow-Up < Today
  5. By Source — Table view, grouped by Source (to see which channels perform best)

Step 2: Create the Deals Database (10 minutes)

Separate database for tracking deals/opportunities:

Properties

| Property | Type | Options | |----------|------|---------| | Deal Name | Title | e.g., "Acme Corp — Enterprise Plan" | | Contact | Relation | Link to CRM: Contacts database | | Stage | Select | Discovery, Demo, Proposal, Negotiation, Closed Won, Closed Lost | | Value | Number (Currency) | Deal amount | | Close Date | Date | Expected close date | | Probability | Number (%) | Win likelihood | | Weighted Value | Formula | prop("Value") * prop("Probability") / 100 | | Notes | Text | Deal-specific notes |

Views

  1. Pipeline Board — Board view, grouped by Stage
  2. Forecast — Table view showing Weighted Value, sorted by Close Date
  3. Closed This Month — Filtered to Closed Won in current month

Step 3: Create the Activity Log (5 minutes)

Track every interaction with contacts:

Properties

| Property | Type | Options | |----------|------|---------| | Activity | Title | Brief description | | Contact | Relation | Link to CRM: Contacts | | Deal | Relation | Link to Deals | | Type | Select | Call, Email, Meeting, Note, LinkedIn | | Date | Date | When it happened | | Outcome | Text | What was discussed/decided |

Workflow

After every call or meeting:

  1. Create a new entry in Activity Log
  2. Link it to the Contact and Deal
  3. Update the Contact's "Last Contact" date
  4. Set the "Next Follow-Up" date

Pro tip: Create a template button on your Contact pages that pre-fills a new Activity Log entry with the contact already linked.

Step 4: Build the Dashboard (10 minutes)

Create a page called "CRM Dashboard" with these embedded views:

Section 1: Pipeline Overview

Embed a linked view of the Deals database in Board view, grouped by Stage. This gives you the classic sales pipeline at a glance.

Section 2: Today's Follow-Ups

Embed a linked view of Contacts filtered to:

  • Next Follow-Up = Today OR
  • Next Follow-Up < Today (overdue)

Sort by Follow-Up Overdue first.

Section 3: Key Metrics

Create a callout block with manually updated metrics (or use rollup properties):

📊 Pipeline Snapshot
├── Total Pipeline Value: $XX,XXX
├── Deals in Pipeline: XX
├── Weighted Forecast: $XX,XXX
├── Closed This Month: $X,XXX
└── Win Rate: XX%

Section 4: Recent Activity

Embed the Activity Log showing the 10 most recent entries, sorted by Date (newest first).

Advanced: Email Templates

Since Notion can't send emails, create a "Email Templates" page with copy-paste templates:

Initial Outreach Template

Subject: Quick question about [their company's problem]

Hi [Name],

I noticed [specific observation about their company].

We help [target audience] do [specific outcome]. For example, [one-line case study].

Would a 15-minute call next week make sense?

Best,
[Your name]

Follow-Up Template (Day 3)

Subject: Re: Quick question about [their company's problem]

Hi [Name],

Just bumping this in case it got buried. I think we could help with [specific value prop].

Happy to share a quick demo — here's my calendar: [link]

Best,
[Your name]

After-Meeting Template

Subject: Great chatting — next steps

Hi [Name],

Thanks for your time today. Here's a summary of what we discussed:

1. [Key point 1]
2. [Key point 2]
3. [Agreed next step]

I'll [your action item] by [date]. Let me know if anything changes on your end.

Best,
[Your name]

Limitations to Be Aware Of

What Notion CRM Can't Do

| Feature | HubSpot Free | Notion CRM | |---------|-------------|-----------| | Email tracking (opens, clicks) | ✅ | ❌ | | Automatic lead scoring | ✅ | ❌ (manual only) | | Email sequences | ❌ (paid) | ❌ | | Contact data enrichment | ✅ (basic) | ❌ | | Pipeline reporting | ✅ | ⚠️ (manual) | | Mobile CRM app | ✅ | ⚠️ (Notion mobile, not CRM-optimized) | | Call logging | ✅ | ❌ (manual) |

Performance Limits

| Contact Count | Performance | |---------------|-------------| | 0-1,000 | ✅ Fast, no issues | | 1,000-5,000 | ✅ Slightly slower loads | | 5,000-10,000 | ⚠️ Noticeable lag, filtering slows | | 10,000+ | ❌ Switch to a dedicated CRM |

When to Graduate to a Real CRM

Outgrow Notion CRM when any of these are true:

  1. You have 5,000+ contacts — Performance degrades
  2. You need email automation — Sequences, drip campaigns, auto-follow-ups
  3. You have 3+ salespeople — Team features matter (territory management, leaderboards)
  4. Revenue depends on CRM data — Need reliable reporting and forecasting
  5. You need integrations — Connecting CRM to your website, ads, and support tools

Recommended graduation path:

  • Solo / 2-person team: Notion CRM → HubSpot Free → HubSpot Starter ($20/month)
  • Sales-focused team: Notion CRM → Pipedrive ($15/user/month)
  • Enterprise: Skip Notion CRM entirely → Salesforce or HubSpot Professional

For detailed CRM comparisons, check our best CRM guide or HubSpot review.

The Bottom Line

A Notion CRM won't replace Salesforce. But for a solo founder or small team that needs to track contacts, manage a deal pipeline, and never forget a follow-up — it's free, it's flexible, and it's already in the tool you use every day.

Build it in 30 minutes. Use it until you outgrow it. Then graduate to a dedicated CRM with confidence, knowing exactly what features you actually need.

Want more Notion insights? Read our Notion review, see if the pricing is worth it, or explore Notion alternatives.

Frequently Asked Questions

Can Notion be used as a CRM?

Yes. Notion's databases, relations, and views can replicate 80% of what HubSpot or Pipedrive offers for free. It works best for teams under 20 with fewer than 500 active contacts.

Is a Notion CRM as good as HubSpot?

No — HubSpot has email tracking, automatic lead scoring, and marketing automation that Notion can't match. But for solo founders and small teams who just need contact management and a deal pipeline, Notion's CRM is sufficient and free.

What are the limitations of a Notion CRM?

No email integration (can't send or track emails from Notion), no automatic data enrichment, no lead scoring, performance slows after 5,000+ entries, and no mobile app optimized for sales workflows.

How many contacts can a Notion CRM handle?

Notion works smoothly with up to 5,000 contacts. Between 5,000-10,000, expect noticeable lag. Beyond 10,000, switch to a dedicated CRM like HubSpot's free plan.

Join 500+ Solo Developers

Get monthly curated stacks, detailed tool comparisons, and solo dev tips delivered to your inbox. No spam, ever.

Related Articles