Decode & Grow

How to Build a CRM in Notion That Doesn't Fall Apart at 500 Contacts

Short answer: Build a Notion CRM from four related databases — Companies, Contacts, Deals and Activities — never one flat table. Use relations rather than duplicated text fields, keep rollups shallow, use select fields rather than free text for anything you filter on, and enforce a single entry point. Most Notion CRMs fail from structural shortcuts taken in week one, not from Notion's limits.

Why single-database CRMs collapse

The instinctive build is one database called Clients with columns for company, contact name, email, deal value and status. It works beautifully at thirty records and becomes unusable at three hundred, because reality doesn't fit that shape: companies have several contacts, contacts have several deals, and deals have many activities. A flat table forces duplication, and duplication produces contradictions.

The four-database structure

  • Companies — one row per organisation. Name, sector, size, status, owner, source. Never duplicated.
  • Contacts — one row per person, related to a company. Name, role, email, phone, preferences.
  • Deals — one row per opportunity, related to a company and a primary contact. Value, stage, expected close, probability, source.
  • Activities — one row per interaction, related to whichever of the above applies. Type, date, notes, next action.

Four databases, three relation types. This is the smallest structure that survives growth, and adding it later means rebuilding.

Field discipline that prevents decay

  • Use select, not text, for anything you filter or group by. Free-text status fields accumulate variants — "Active", "active", "Active " — and every one breaks a view silently.
  • Never duplicate related data as text. If a deal needs the company's sector, use a rollup, not a typed copy. Typed copies go stale immediately and nobody notices.
  • Define required fields and enforce them at entry via a template or a form. Notion won't enforce this for you, so the discipline has to live in the entry process.
  • Date fields, not text dates. Obvious, routinely violated, and it destroys any sorting or automation later.

Keeping it fast

Notion slows with relation depth and rollup count more than raw row count. Practical measures:

  • Limit rollups to what's genuinely needed in a view. A rollup that traverses two relations is expensive.
  • Filter views tightly — a default view showing every record ever created is the most common cause of a sluggish CRM.
  • Archive rather than delete. Move closed deals older than eighteen months to an archived state and filter them out of working views.
  • Avoid deeply nested formula fields referencing other formula fields.

The views that make it usable

Build views around jobs, not around data. The set that covers most needs:

  • My open deals — filtered to the current user, sorted by expected close.
  • Pipeline board — grouped by stage, for the weekly review.
  • Needs follow-up — filtered to records with no activity in fourteen days. This view alone justifies the build.
  • This month's closes — for forecasting.
  • Company directory — alphabetical, for lookup.

Where the honest limits are

A well-built Notion CRM serves a small team comfortably into the low thousands of records. Beyond that, or when automation needs to read and write hundreds of records per run, the performance and API constraints start to bite and Airtable or a dedicated CRM becomes the right answer. Building it properly from the start means that migration, if it comes, is straightforward — the structure transfers directly.

Frequently asked questions

Should I use a Notion CRM template?

They're a reasonable starting point if the structure matches the four-database model. Many popular templates are elaborate single-database builds, which is exactly the trap.

How do I get data in without manual entry?

Notion forms for internal entry, and an integration platform to create records from your website forms and email. Manual entry is where structure erodes.

Can Notion handle email integration?

Not natively in any satisfying way. If email history against contacts is essential to how you sell, a dedicated CRM is a better fit.

We've built operational systems in Notion for practices, agencies and consultancies. See the case studies.

Notion & Growth Airtable
Made on
Tilda