You've built a relationship graph in Affinity. Years of deal context, interaction history, secondary contacts, and the connective tissue that makes your revenue engine work. Now you're thinking about moving to a platform that actually scales with your team, and the first thing you discover is that Affinity's export gives you a flat CSV—contacts, companies, maybe tags. The graph? Gone. The mapped relationships that tell you why deal X is still alive because person Y knows person Z? You'll have to rebuild that by hand, or lose it entirely. This isn't a migration problem you can solve with a standard importer. It's a relationship architecture problem. We've worked through it with wealth advisors and relationship-heavy sales teams who moved from Affinity to Orin. The key is not to try to preserve Affinity's graph intact—you can't—but to systematically reconstruct the relationship depth that actually matters for your deals in 60 days. Why Affinity's export doesn't work as-is Affinity stores relationships as edges in a graph database. A contact has not just a name and email, but a relationship type (knows, reports to, introduced, invested with), a direction, and metadata (when the relationship was confirmed, how it was discovered, deal involvement). When you export to CSV, you get rows. Each row is a single entity. Relationship context becomes orphaned. A typical Affinity export gives you: Contact: John Smith, CTO, john@acme.com Company: Acme Corp Tag: decision-maker What's missing: John knows Sarah Chen (the CFO, who controls budget) Sarah was introduced by your existing customer, David Park That introduction happened on March 15, during a follow-up call All three are tied to deal: Acme Platform Migration, $500K, stage: qualification This is the deal context that actually drives velocity. Without it, your relationship-heavy sales motion stalls. The 60-day rebuild framework: what actually transfers You can't import your way out of this. You need a structured process. Here's what works: Phase 1: Extract and map (Days 1–14) Export your Affinity database as CSV. Open it. Your job is not to import directly, but to build a relationship inventory —a separate CSV that captures the connections that matter for active deals. For each deal: List the primary contact (the one who controls go/no-go) List secondary contacts (influencers, approvers, introducers) Map the relationship: direct contact, referred, warm introduction, existing relationship Note the interaction history: last conversation date, method (call, email, LinkedIn), outcome Link to the deal: deal name, stage, value, expected close date Your relationship inventory CSV should have these columns: Deal ID (your primary deal identifier) Deal Name Deal Stage Primary Contact Email Secondary Contact Email Relationship Type (direct, referred, introduced, existing customer) Relationship Confirmed Date Last Interaction Date Last Interaction Channel (call, email, in-person, LinkedIn) Last Interaction Outcome (positive, neutral, concern) Introducer (if applicable) Notes This takes time because you're doing it by hand. But it's not wasted time—you're thinking through your actual deal logic, not copying data. Most teams find that 30–50% of contacts in their Affinity database aren't actually on active deals. Exclude them. Phase 2: Import base contacts and companies (Days 15–21) Run your standard Affinity export through Orin's importer. This brings in your contact and company records cleanly. Names, emails, phone numbers, company associations, titles. At this stage, you're not trying to preserve relationship depth—you're just populating the system with contact data. Orin's CRM contact model is straightforward: contacts belong to companies, and contacts can be linked to deals. That's your import target. Phase 3: Reconstruct relationships as contact roles on deals (Days 22–45) Now you use your relationship inventory CSV. For each deal: Create the deal in Orin (if it's not already there) Add the primary contact as the main deal contact Add secondary contacts as deal participants, with explicit roles: decision-maker, influencer, approver, introducer Record the introduction date and channel in the deal's interaction history (or in a custom field if your workflow requires it) Log the last interaction as a deal activity, with the outcome tagged This is different from Affinity's approach. You're not storing a separate relationship graph—you're encoding relationships through deal participation. A contact's value isn't abstract; it's tied to active revenue. A deal interaction history in Orin shows: John (CTO, decision-maker) + Sarah (CFO, budget holder) + David Park (introducer, existing customer). It's not a graph, but it's relationship context where it matters—attached to revenue. Phase 4: Activate relationship context in messaging and automations (Days 46–60) This is where the rebuilt relationships actually drive motion. Use Orin's unified messaging to send deal-aware outreach. When y