Loading tutorials…
Loading tutorials…
Notion as CRM works at small scale and stops working at medium scale. This walks the right build pattern, the rollups that make it useful, and the honest signals that tell you it is time to move to HubSpot or Pipedrive.
Who this is forFounders, solo operators, and 2-5 person teams who want a CRM without HubSpot's complexity or Salesforce's price tag. If your sales motion is 20-100 deals/year, Notion works. Past that, this tutorial also tells you when to migrate.
What you'll need
Step 1
Notion works as CRM up to roughly 100-200 active deals and 3-5 sellers. Beyond that, you need a real CRM. Decide before building.
Notion-CRM works if: you have <200 active deals at a time, <5 active sellers, your sales motion is consultative (long deal cycles, few stages), you do not need email integration, sequences, or call logging native to the CRM.
Notion-CRM does NOT work if: you have a high-velocity inbound motion (>200 deals/quarter), you need email tracking + sequences, you need pipeline-by-rep reporting at scale, you have a sales team that needs mobile-first UX.
Honest middle case: pre-revenue startup, solo founder doing sales, want one tool for everything. Notion-CRM is great here for 12-18 months. Plan to migrate when you hit ~5 sellers or ~150 active deals.
If Notion is the wrong fit, leave now. Start with HubSpot Free CRM (free up to 1,000 contacts) and use Notion for everything else.
Document the decision: 'We use Notion for CRM because [reason], and we will reevaluate at [milestone].' Future-you needs to know why.
Step 2
Companies, Contacts, Deals. Three Full Page databases. Relations link them. This is the non-negotiable structure.
Inside the Marketing or Sales Teamspace → create three Full Page databases: 'Companies', 'Contacts', 'Deals'.
Companies properties: Name (Title), Domain (URL), Industry (Select), Size (Select: <10 / 10-50 / 50-200 / 200-1K / 1K+), Owner (Person), Lifecycle (Select: Prospect / Customer / Churned), Notes (Text).
Contacts properties: Name (Title), Email (Email), Phone (Phone), Title (Text), LinkedIn (URL), Company (Relation → Companies), Owner (Person), Status (Select: Lead / MQL / SQL / Customer / Cold).
Deals properties: Name (Title — usually 'CompanyName — Product/Project'), Value (Number — format as currency), Stage (Select: New / Qualified / Discovery / Demo / Proposal / Negotiation / Closed Won / Closed Lost), Close Date (Date), Owner (Person), Company (Relation → Companies), Primary Contact (Relation → Contacts), Notes (Text), Closed Lost Reason (Select).
All three live as top-level pages inside a 'CRM' subsection of the Sales Teamspace.
Step 3
Relations link records across databases. A Deal belongs to a Company, has a Primary Contact, and may have multiple stakeholder Contacts. Get this right or the CRM is three disconnected lists.
On the Deals database, the Company property is a Relation → Companies. When you create a new Relation, Notion asks if you want a two-way (synced) relation. Choose Yes — this means from the Company page you can see all Deals.
On the Deals database, Primary Contact is a Relation → Contacts. Also two-way.
Add a Multi-relation property on Deals called 'Stakeholders' → Relation → Contacts. This lets you tag the Champion, Decision Maker, and Influencer on enterprise deals.
On Contacts, the Company property is a Relation → Companies (two-way).
Verify the relations work: open a Company page. You should see 'Deals' and 'Contacts' sections auto-listing related records. If not, the relation is one-way — fix it.
Step 4
Rollups aggregate data across relations. Company.TotalPipeline rolls up sum of Deal.Value where Stage is not closed. This is how Notion-CRM produces real reports.
On Companies database → add a Rollup property called 'Open Pipeline'. Relation = Deals. Property = Value. Calculate = Sum.
Add a Filter to the Rollup: only roll up where Stage is not 'Closed Won' AND Stage is not 'Closed Lost'. Now Open Pipeline = sum of active deal value per company.
Add another Rollup called 'Total Won' — Sum of Value where Stage = Closed Won. Now you can see lifetime customer value per company.
Add a Rollup called 'Deal Count' — Count All Deals. Useful for 'how many deals have we had with this account?'
On Contacts → add a Rollup 'Account Stage' — Show Original from Company.Lifecycle. Now contacts inherit the lifecycle of their company.
Rollups are the leverage of Notion CRM. Without them, the CRM is three spreadsheets. With them, it answers questions.
Step 5
Board view by Stage is the daily driver. Table grouped by Owner is the leadership view. Calendar by Close Date is the forecast.
On Deals database → '+ New view' → Board → Group by Stage. Filter out Closed Won + Closed Lost. Sort by Value descending. This is the kanban pipeline view — drag deals across stages.
View 2: Table view → Group by Owner. Each rep sees their own pipeline. Filter to Stage is not closed.
View 3: Calendar view by Close Date. Filter to next 90 days. The 'what is closing soon' view for forecasting.
View 4: Table view filtered to Stage = Closed Lost AND Close Date is within last 90 days. Sorted by Closed Lost Reason. The 'why are we losing?' retro view.
View 5: Table view filtered to last activity >14 days ago. The 'stalled deals' view that surfaces dying opportunities.
Step 6
Calls, emails, meetings, notes need a place. Add an Activities database related to Deals + Contacts.
Create a fourth Full Page database called 'Activities'.
Properties: Date (Date — defaults to today), Type (Select: Call / Email / Meeting / Note), Subject (Title), Outcome (Select: Connected / Voicemail / Booked / Cancelled / Info / Bad fit), Owner (Person), Related Deal (Relation → Deals), Related Contact (Relation → Contacts).
On Deals, add a Rollup 'Last Activity Date' → Relation = Activities → Property = Date → Calculate = Latest. Now Deals show when last touched.
On Deals, add a Rollup 'Activity Count' → Count All. Useful for the 'is this deal getting any attention?' view.
Train reps: log every activity at time of activity, not end of week. The activity log is what turns Notion-CRM from a deal list into a CRM.
Step 7
Notion CRM has a ceiling. Write down the trigger conditions for migration now, before you grow past them and refuse to admit it.
Create a page 'CRM strategy' in the Sales Teamspace.
Document the trigger conditions: 'We will migrate off Notion CRM when ANY of: (a) Active deal count exceeds 150, (b) Active sellers exceed 5, (c) We need email tracking + sequences, (d) Mobile usability is blocking the team.'
Document the target stack: HubSpot Free + Sales Hub Pro is the default migration path for most B2B. Pipedrive for transactional sales motions. Salesforce only past ~$5M ARR.
Document the migration plan in skeleton: who owns it, expected duration (4-6 weeks), data to migrate (Companies, Contacts, Deals, Activities), data to leave behind (legacy notes).
Review quarterly. The honest moment is admitting you have crossed a trigger and starting migration before the wheels come off.
Common mistakes
Building Notion CRM at a scale that needs HubSpot
What goes wrong: Team has 8 sellers and 300 active deals in a Notion CRM. Pipeline reporting takes 4 hrs/week of manual work, deals slip because there is no native email tracking, and forecast accuracy drops below 50%. Cost of mis-forecasting at this scale: $100-300K/yr in wrong hiring + spend decisions.
How to avoid: Be honest about the ceiling. Past 150 active deals or 5 sellers, migrate to a real CRM. The migration takes 4-6 weeks but pays for itself in the first quarter.
One-way relations between Deals and Companies
What goes wrong: From the Deal you can see the Company, but from the Company you cannot see Deals. 'How many deals at Acme?' becomes a manual search. Sales ops time wasted: 3-5 hrs/wk = $7-15K/yr.
How to avoid: Every relation should be two-way (synced). Notion → Relation property → Settings → 'Show on [other database]' should be ON. Audit existing relations and fix.
No Rollups configured
What goes wrong: Companies database does not show open pipeline per account. Contacts do not inherit company lifecycle. Sales team manually computes 'how much pipeline at this account?' every week. Reporting becomes guesswork — pipeline misses by 20-40%.
How to avoid: Add Rollups for Open Pipeline (Sum of Value), Total Won (Sum where stage = Won), Deal Count (Count All), Last Activity Date (Latest from Activities). These are the math.
Stage labels that everyone interprets differently
What goes wrong: Reps interpret 'Qualified' differently — one rep counts a single discovery call, another waits for budget confirmation. Forecast comparing across reps is meaningless. Lost forecasting fidelity: $30-100K of wrong decisions per quarter.
How to avoid: Define each stage with a checklist in a 'Pipeline Definitions' page. 'Qualified' = budget confirmed + decision maker named + timeline known. Drill this into the team monthly.
No Closed Lost Reason field
What goes wrong: Half the deals die and nobody knows why. Marketing keeps generating the wrong leads, product never hears the recurring objection, sales keeps re-running the same lost demo. Lost ARR from blind loss patterns: $50-200K/yr.
How to avoid: Add Closed Lost Reason (Select: Budget / Timing / Competitor / Feature gap / No decision / Bad fit). Require it before moving a deal to Closed Lost. Review monthly with marketing + product.
Activities logged at end of week from memory
What goes wrong: Last Activity Date is wrong by days. 'Deals with no activity in 14 days' view misses real cases. Pipeline rot goes undetected until a $20-40K deal slips entirely.
How to avoid: Log activities at the moment they happen. Use the Notion mobile app between meetings, or create a quick-capture button on the Home page that pre-fills a new Activity row.
Recap
Done — what's next
How to use Notion databases, relations, and rollups without breaking everything later
Read the next tutorial
Hand it off
Notion CRM is a great early-stage choice and a real liability once you outgrow it. A specialist will build the database structure, wire relations and rollups correctly, configure pipeline views, set up the activity log, and — most valuably — tell you honestly whether to stay in Notion or migrate to HubSpot now. One-shot builds run $300-600; migration projects run $800-2,000 at $14-16/hr.
See specialist rates
Migrate when ANY of these hits: (1) 150+ active deals at once, (2) 5+ active salespeople, (3) you need email tracking / sequences natively in the CRM, (4) you need mobile-first sales rep UX. Below those thresholds, Notion is fine. Above any one, the productivity loss of staying exceeds the migration cost.
No, not natively. You can paste email content as Notes on a Deal page, or use Zapier to log emails as Activities, but there is no native open/click tracking. If email tracking is a daily-driver for your team, this is the signal to use a real CRM instead.
Export from HubSpot / Pipedrive / Salesforce as CSV. Import order matters: Companies first, then Contacts (link to Companies), then Deals (link to Companies + Contacts), then Activities (link to Deals + Contacts). Notion database → '...' menu → Import → Merge with CSV. Verify 10 rows before confirming. Standardize company names BEFORE import — 'Acme Corp' and 'Acme Corporation' will create duplicates.
Yes, for low volumes. Add an MRR or ARR property (Number, currency formatted) on Companies or Customers (a separate database for closed accounts). Use Rollups to sum across the Companies database for total MRR. But: if you have a real subscription business with churn, expansions, and contractions, you need Stripe + a real revenue tool — not Notion.
On Deals, add a multi-Relation property called 'Stakeholders' → Contacts. Tag everyone involved (Champion, Decision Maker, Influencer, Blocker). On Contacts, add a Select 'Stakeholder Role' to label each one. For enterprise deals with 4-6 stakeholders, this map is critical.
Notion
Databases are the leverage in Notion. They are also the part most teams use wrong — flat lists with no relations, brittle formulas, and rollups that silently break. This walks the patterns that hold up at scale.
Notion
Notion in isolation is a doc tool. Notion connected to your stack is an ops backbone. This walks the integration patterns that actually save time, and the ones that create fragile chains of breaking automations.
HubSpot CRM
HubSpot's Smart CRM is free, fast to spin up, and easy to break in the first month. Most owners skip the account-level defaults, invite users with the wrong permission sets, and end up rebuilding 60 days in. Here is the setup sequence that holds up.
Monday.com
Monday Sales CRM is fast to spin up and easy to wire wrong. Pipeline stages drift, contact data fragments across boards, and reports stop making sense within 90 days. This walks the configuration that holds up past the first quarter.