Notion CRM works brilliantly for 150 contacts. By 300, you're watching queries hang for 5+ seconds. By 500, filters stop working. Most teams abandon the migration halfway through—leaving partial records stranded in Notion's relational hell, where linked deals, contact notes, and custom rollups simply vanish into the export. You're not moving slowly. You're moving blind. This runbook maps exactly where data orphans happen in Notion's architecture, and builds a bulletproof 30-day export sequence that catches every hidden record before you commit to your next platform. Where Notion CRM orphaning actually happens Notion's relational design looks clean: contacts link to deals, deals link to tasks, tasks link to notes. On export, you get what Notion can serialize—which is nearly nothing. Linked records and the 1:N collapse A contact has 12 deals. Notion's CSV export flattens this into a single row, cramming deal IDs into one comma-separated field. Importing that into Airtable, Pipedrive, or Orin's CRM creates one contact with 12 orphaned deal records floating in limbo—linked back to nothing. What you lose: Deal stage progression (which stage was deal #7 actually in?) Deal close dates and probability Deal owner assignment (whose deal was it?) Deal custom fields (budget, contract term, product category) Rollups and formula fields evaporate You built a rollup: "Sum of all deal values for this contact." On export, Notion exports the computed value , not the formula. Import that ₹4.2 lakh figure into your new CRM, and it's a static number that never updates when deals change. Worse, if you need to rebuild the rollup in the new system, you've lost the logic entirely. Same for formula fields like "Days since last interaction" or "Contact lifecycle stage." Notion exports the value as of export time. In your new CRM, it's instantly stale. Filter conditions and saved views don't port You built 8 saved views in Notion: "Active deals under ₹50L," "Contacts with no activity in 90 days," "Waiting on response from legal." On export, you get the filtered output (the records that matched), but zero information about how to reconstruct those filters. You'll rebuild them manually—and miss some logic every time. Rich text, embeds, and attachments fragment A deal record has a rich-text field with embedded links to contracts, PDFs, and images. Notion's CSV export gives you the rendered text (sometimes), but attachment URLs are often broken or relative. Files themselves don't export at all. Same for button fields, relation "two-way" syncs, and timeline views. They simply don't have CSV equivalents. The silent orphaning trap: relations and backlinks Here's where data actually vanishes. A contact "John Smith" is linked from 34 deal records, 18 task records, and 7 email threads. In Notion's database, this is stored as a backlink —a reverse index so Notion can show you "Open all deals for John" without fetching them. On CSV export, backlinks don't serialize. You export the deals table and get no trace of which contact each deal belongs to—the link field shows contact IDs (" Contact: con_xyz123 "), but only if you've explicitly added a "Contact" field to the deals table. If your Notion setup used only the backlink (relying on the deals table's relation field), those 34 deals export with empty contact fields. Result: 34 deals land in your new CRM unattached to any contact. Your 30-day clean-export runbook Week 1: Audit and map Day 1–2: Document your schema Open every Notion table you use (Contacts, Deals, Tasks, Notes, etc.) Screenshot every field name, type, and relation For each linked field, note: Is the backlink two-way? Does the other table have a matching field? List all rollups, formulas, and buttons. Write down the logic. Day 3–4: Count your orphans Export each table individually as CSV In a spreadsheet, count non-empty cells in each relation field Cross-reference: For Deals, sum the "Contact ID" field. Go to your Contacts table and count unique contact IDs. If Deals shows 147 linked deals but only 89 unique contacts, you have 58 orphaned deals (or contacts with missing deal links) Repeat for Tasks, Notes, and any other linked table Document the gap. This is your orphan risk baseline. Day 5–7: Test a destination Pick your next platform: Airtable, Pipedrive, Orin CRM , or another. Create a test import with 20 records from your largest table. Does it respect relations? Do formulas need rebuilding? Do attachments come through? Document every loss. Week 2: Prep for export Day 8–10: Denormalize and flatten Notion's relational design is killing you on export. Before you export, you need to flatten it: Add explicit relation fields to every table. If your Deals table relies on backlinks to Contacts, add a "Contact" field to Deals that explicitly picks the contact. Do this for every table. This forces Notion to materialize the relation in a way CSV can serialize. Duplicate every two-way relation. If Contact.Deals links to Deal.Contact, make s