Affinity sells on one promise: your relationship graph is everything . The product builds a second-order network—not just your direct contacts, but who knows whom, what deal each relationship touches, and where warm introductions live. It's genuinely powerful for enterprise teams managing deep networks across dozens of stakeholders per deal. The problem arrives when you leave. Affinity's export format is flat. Every contact comes out as a CSV row. The relationship data is there, but the structure —who influences whom, which relationships matter to which deals, the hierarchy of decision-makers—collapses into a spreadsheet. You get names and email addresses. You lose context. We learned this the hard way. Six months ago, we migrated a 12-person revenue team from Affinity to Orin's CRM . We expected to lose some richness. We didn't expect to spend 60 days rebuilding what the export had flattened. Here's what broke, how we fixed it, and the exact sequence you need if you're making the same move. What the Affinity export actually loses The damage isn't obvious until you're inside the new CRM. Affinity's contact type field (Decision-Maker, Influencer, End User, Economic Buyer) exists in the export—but as a flat label, not a role tied to specific deals. A contact marked "Decision-Maker" globally is the same in every opportunity, when the reality is more subtle: someone might be the economic buyer on one deal and an influencer on another. The export also flattens relationship type . You get a Contact-to-Contact relationship export (usually a separate CSV), but no rollup showing which relationships matter to which opportunities. A relationship tagged "Warm Introduction" or "Direct Report" survives the export, but the sales team loses the visual graph—the web of connections that shows where to pull for a deal stall or executive escalation. Deal-level stakeholder mapping is the third major loss. Affinity ties contacts to deals with role definitions (Legal Review, Budget Owner, Implementation Lead). The export gives you deal records and contact records and a linking field, but no UI layer that says: "Here's who owns this decision, here's who influences it, here's who blocks it." You rebuild it as a data problem, not a visual one. Finally, Affinity's relationship strength scoring —interactions, email frequency, meeting notes—rarely ports over meaningfully. You get the interaction history in notes or timeline format, but the derived signal ("this contact has been engaged for 90 days") is gone. You're starting from scratch on engagement velocity. Our 60-day recovery sequence: Three layers We didn't try to migrate everything at once. Instead, we rebuilt in layers: contact hierarchy, deal role assignment, and relationship mapping. The sequence matters because each layer depends on data from the previous one. Layer 1: Contact hierarchy and company structure (Days 1–14) First, we cleaned and imported company records. Affinity exports company data, but hierarchy—parent/subsidiary relationships, divisions, business units—lives in the relationship graph, not a dedicated field. We had to manually audit 40 companies to rebuild: which contacts worked for which division, which legal entity owned the contract, which shared the budget. In Orin, we used three techniques: Parent company linking: Create the parent entity first, then link subsidiaries as child records. Our Affinity export had "Parent Company" notes buried in 60% of records; we excavated them and built explicit links. Contact role fields: Rather than relying on a single "Type" field, we created custom fields for each deal stage: "Legal Stakeholder," "Budget Owner," "Implementation Lead." These cascade down from the company record, so a new contact inherits the company role. Custom tagging layer: We tagged every contact with their organizational tier (C-Level, VP, Manager, Practitioner) and ownership chain. This let us route escalations correctly without building a separate org chart tool. This layer took 14 days because the Affinity export was messy: 30% of company names were variant spellings, 20% of subsidiary relationships were implicit (in contact titles or notes), and hierarchical relationships were described in free text, not structured fields. Layer 2: Deal stakeholder mapping (Days 15–35) Once company structure was solid, we rebuilt deal-to-contact relationships. Affinity exports deal contacts, but without the semantic role (Why is this person on the deal? Do they approve, or just receive updates?). We had 180 deals with 900 stakeholder records—many contacts duplicated across deals with no role clarity. In Orin, we used the contact role field on deal records combined with a decision-maker tagging layer : For each deal, we pulled the Affinity export's stakeholder list and mapped every contact to a role: Economic Buyer, Technical Evaluator, Implementation Owner, Legal/Procurement, Executive Sponsor. We created a lookup view in Orin's CRM that showed all deals for a c