Affinity was built around relationship depth: email threads that nest under contacts, multi-level people-org hierarchies, interaction histories that live inside contact cards. HubSpot, by contrast, treats contacts as flat records attached to deals and companies. The gap isn't small. When you try to move 500+ contacts from Affinity to HubSpot without a clear strategy, you lose the connective tissue that made Affinity useful in the first place—and your team resents HubSpot for feeling hollow. We've seen this pattern enough times to map it: teams spend 40–60 hours on a bulk CSV export, watch half their context disappear, then spend the next six months manually rebuilding what they lost. The smarter move is to audit your Affinity database first, decide what actually needs to migrate, backfill the gaps deliberately, and keep lightweight relationship tracking in Affinity as a federated partner to HubSpot. This playbook walks through that 90-day path. Why Affinity's model doesn't port cleanly to HubSpot Affinity organizes around people and nested relationships . A single contact in Affinity can be linked to multiple organizations, multiple deal threads, and multiple interaction contexts—all visible in one view. Email threads live in the contact record. Notes about past conversations sit alongside current opportunities. The relationship graph is the interface. HubSpot organizes around records and associations . Contacts point to companies. Companies point to deals. Deals point back to contacts. Each association is a directed relationship, and context lives in separate fields or notes, not in a unified graph. When you export a contact from Affinity and import it into HubSpot, you get the name, email, and maybe a company name. Everything else—the email thread context, the multi-org history, the weighted relationship depth—either gets flattened into a note field or orphans completely. The bottleneck isn't the export. It's that Affinity and HubSpot speak different languages about what a relationship is. Affinity says "people, then relationships." HubSpot says "records, then links." You can translate one to the other, but you'll lose nuance either way. The practical upshot: a bulk CSV migration from Affinity to HubSpot will preserve basic contact fields and maybe 60% of company associations. Everything else—the relationship priority, the interaction history, the implicit deal context—either vanishes or becomes unstructured text in a note field that your team will ignore. Phase 1 (weeks 1–2): Audit and categorize your Affinity database Before you migrate anything, you need to understand what you're actually migrating and why. Export a read-only copy of your full Affinity database. Don't touch the live instance yet. Pull a CSV that includes all contact fields, company associations, and deal links. Include the interaction history summary if Affinity's export offers it. Segment contacts into three buckets: Active (top 100–150): Contacts you've interacted with in the last 12 months, or who are currently in a deal. These are your priority migrates. They carry deal context and ongoing relationship value. Warm (150–300): Contacts you have history with but aren't currently working. These are candidates for selective migration—bring them over if they're linked to a prospect company or past deal, leave them in Affinity otherwise. Cold (everything else): Old contacts, dead deals, or one-off intros. Unless there's a specific reason to keep them in HubSpot, leave them in Affinity as an archive and read-only reference layer. Map Affinity deals to HubSpot deal stages. Affinity's deal tracking is often looser than HubSpot's. Identify which Affinity deals map to HubSpot stage definitions (qualified, negotiation, close, lost, etc.) and which are just relationship markers. Only migrate deals with clear stage and close-date information. Flag multi-org contacts. Affinity lets a single person belong to multiple organizations. HubSpot's primary contact-company link is singular. For contacts with multiple org affiliations, decide which is primary and which is secondary, or create separate contact records if the relationships are equally important. Audit email thread context. Review whether your team actually relies on Affinity's email threads, or whether those conversations exist in Gmail/Outlook anyway. If email context is in your mail client, you can drop it from the migration and reduce noise. If Affinity is your sole source of truth for deal conversations, plan to backfill threads manually after the migration as deal notes. Phase 2 (weeks 3–5): Prepare, test, and stage your top 100 Start with your active, high-value segment. This is where you prove the migration workflow before scaling. Create a test HubSpot workspace or use a dev environment. Import your top 100 contacts first. Don't touch production yet. Map Affinity fields to HubSpot custom fields. Affinity may have fields that don't exist in standard HubSpot (e.g., "relationship strengt