You've built a contact database in Notion. It works fine at 100 records, still workable at 300, and then something shifts around 500. Queries slow down. Relations break. And when you finally decide to migrate to a proper CRM, you run your first CSV export and stare at a spreadsheet that's missing 40% of what you actually tracked. This is not an export error—it's a design boundary. Notion was never built for relational data at scale. Its CSV export is a flat-file format that has no concept of linked records, formula results, or rollup calculations. What looks complete in the Notion UI becomes orphaned data the moment you try to move it. If you're managing a founder's network, a recruiter's pipeline, or a contractor roster in Notion, you need to know exactly what you'll lose before you export. This playbook shows you the nine field types that fail most often, how to audit your database in under an hour, and a 30-day rebuild map to migrate safely into a system built for relationships. The nine fields that die on Notion export Notion's CSV export handles simple data: text, numbers, single-select, email. Everything else either gets mangled, flattened to text, or disappears entirely. Here are the nine failure modes that hit real teams: Linked records (Relations). The most common data type in a relational CRM. Notion exports these as blank cells or comma-separated IDs that mean nothing in a spreadsheet. A contact with 12 linked deals becomes a null field. Rollups. If you're counting related records, summing fields, or averaging pipeline values, the export drops the calculation and gives you empty cells. You lose all aggregated insights instantly. Formulas. Any calculated field—deal close probability, contact lifetime value, days since last touch—vanishes. You get the formula syntax in a text field, not the value. Multi-select with counts. If you track tags like 'warm', 'nurture', 'closed-lost', the export mangles them into semicolon-separated strings that most CRMs won't parse cleanly on import. Dates with timezone context. Notion stores dates as YYYY-MM-DD, but if your contacts span timezones or you're tracking time-sensitive events (contract deadlines, follow-up windows), the timezone context is lost. A meeting logged as 3 PM PT becomes 3 PM in whatever your import system assumes. Rich text and embedded media. Notion allows you to embed images, attachments, and formatted text in cells. The export gives you plain text only—no links, no file references, no formatting. URLs embedded in note fields become raw text. Lookup fields. These pull values from related records (e.g., a contact's company size via a linked company record). On export, they're blank cells, forcing you to manually re-join data or rebuild the hierarchy. Created/modified timestamps with precision. Notion exports these as YYYY-MM-DD HH:MM, but if you need subsecond precision for audit trails or sequencing events, that granularity is lost. Critical for compliance and reconciliation. Properties marked as hidden in views. If you've hidden columns in your Notion view, the CSV export may still include them—or may not, depending on which export method you used. Inconsistency creates reconciliation chaos. Why Notion hits a wall at 500 contacts Notion's performance degrades as relation counts grow. Every linked record is stored as a pointer, and as your database grows, Notion's UI slows down fetching those relations. At 500 contacts with 5+ linked deals each, you're storing 2,500+ relation pointers, and Notion's database engine starts to strain. More importantly, Notion's free and Pro plans impose practical limits: API rate limits make bulk syncing impossible once you have more than a few hundred records. View rendering becomes unbearably slow when you have 500+ records and more than 3 linked-record fields visible. Exporting a 500-contact database with relations and formulas often times out mid-export. This is not a bug—it's the point at which Notion's database architecture stops being a CRM and starts being a notes app with a database layer. The 60-minute pre-migration audit Before you hit export, you need a precise inventory of what you'll lose. This audit takes an hour and saves weeks of recovery work. Step 1: Document your field inventory (15 minutes) Open a new spreadsheet. For every field in your Notion database, list: Field name Field type (text, relation, formula, rollup, multi-select, etc.) Approximate record count that uses this field (use a filter to count non-empty cells) Export risk (safe, risky, critical loss) Example: Company Name | Text | 487 records | Safe Linked Deals | Relation | 312 records | Critical Loss Contact Value | Formula (sum from deals) | 312 records | Critical Loss Last Touched | Date | 487 records | Risky (timezone) Tags | Multi-select | 423 records | Risky (parse format) Step 2: Run a test export (20 minutes) Export a 50-record sample (choose records with the most complex relations and formulas). Open the CSV in a spreadshee