Affinity built its reputation on relationship depth—your CRM doesn't just store contacts, it maps who knows whom, which deals connect to which relationships, and how your network flows. That depth is also why leaving Affinity feels risky. A CSV export flattens your network graph into rows. Multi-entity deals fragment. Sync reliability becomes a question mark. This guide maps what data actually survives Affinity's export, which pieces require API-level care, and how to validate your sync before you flip the switch to Orin. What Affinity's CSV export actually carries—and what it orphans Affinity's export to CSV is deceptively clean. You get contact names, emails, phone numbers, custom fields, and organizations. What you don't get is the relationship graph itself. Affinity stores relationships as edges between contacts—Person A knows Person B because they worked together at Company C, or because Person A introduced them at a conference. That metadata lives in Affinity's relational model. A CSV flattens it into a single row per contact. You lose: Relationship metadata: How two people know each other, when the relationship formed, who introduced them. Association depth: Which contacts are primary stakeholders vs secondary influencers in a deal. Deal-to-contact binding: The specific role each contact played in a deal (decision maker, influencer, champion). Historical relationship state: When a contact was warm, cold, or inactive—Affinity tracks this; CSV does not. The export does preserve custom fields, deal history, and activity logs as denormalized text. That's useful, but it's not the same as a reconstructed relationship graph. Multi-entity deals: Why CSV export fragments your pipeline Affinity's most powerful feature for enterprise sales is multi-entity deals. One deal can span multiple organizations and involve dozens of contacts across them. Affinity tracks which contact plays which role in which organization within that deal. When you export to CSV, you hit a structural wall. A CSV row = one contact. One contact can't encode its role across five organizations in a single row. Most export workflows force you to choose: either flatten it (one row per contact-organization pair, redundant deal data) or pick the primary organization and orphan the rest. The cost is real. If you had a five-stakeholder deal across three organizations: Organization A: CTO (decision maker), VP Eng (influencer) Organization B: CFO (buyer), Controller (budget holder) Organization C: Legal (approval gate) CSV export gives you two options, both wrong: Denormalized rows: One row per contact, with deal data repeated five times. You recreate the deal five times in Orin, creating forecast inflation and sync nightmares. Pruned export: Export only the primary organization's contacts. You lose Organization B and C's stakeholders entirely. They don't appear in your new CRM. Orin's CRM pipeline and deal structure handles multi-entity relationships natively, but only if you import them correctly. A poorly structured CSV creates duplicate deals or orphaned contacts. API-driven migration: When CSV isn't enough If your pipeline has more than a handful of multi-entity deals, or if relationship metadata is critical to your sales motion (e.g., you need to know who introduced you to whom), CSV export is insufficient. You need API-level migration. Affinity's API exposes your full relationship graph, deal structure, and contact associations as structured JSON. You can: Query every relationship edge with full metadata (how they know each other, confidence score, date established). Fetch deal associations with role assignments per contact per organization. Reconstruct interaction history and touchpoint sequences. Preserve custom field mappings without denormalization. The tradeoff: API migration requires technical work. You need a script (or a migration service) to transform Affinity's schema into Orin's structure. It's not click-and-wait. When API migration pays for itself: You have more than 50 active deals. Deals routinely involve 3+ organizations and 5+ contacts. Your sales motion depends on relationship provenance (who introduced you matters). You need to preserve interaction histories mapped to specific contacts. When CSV is fine: You have fewer than 20 active deals. Most deals involve a single organization or 2 clearly defined stakeholders. You're starting fresh (i.e., you don't need historical interaction logs). You have 500 contacts or fewer. Sync safety: What to audit before migrating The scariest part of any CRM migration is the sync itself. Data lands in your new system, and then you discover your custom field didn't map, a deal lost its stage, or a contact's phone number got corrupted. By then, you've already disabled Affinity. De-risk migration by running a parallel audit phase: Export a test batch. Pick 10–20 representative deals spanning your deal types (single-org, multi-org, different stages, different industries). Export them to CSV. Map