You built a 300-contact network in Affinity. Each person has multiple relationships: deals they touch, other people they know, companies they work for. It's a web. Then you export to HubSpot and open the CSV. You find single text fields where your graph used to be. A relationship that took you three years to map now exists as a 40-character string in a memo field. Welcome to the relationship collapse—it affects every Affinity customer who moves to HubSpot, and almost nobody knows until it's too late. What Affinity's many-to-many relationships actually look like Affinity stores relationships as genuine objects with metadata. A person can be linked to multiple companies (with a role and history). A person can be connected to multiple deals (showing influence, not just involvement). People have relationships with other people (the network effect—who knows whom). This isn't just contact info; it's your competitive advantage. When you prospect, you ask: "Who in my network knows someone at this company?" Affinity answers that instantly because it stores the graph. HubSpot's native model is different. It has one company per contact (the primary organization) and fixed association types: contact-to-contact, contact-to-company, contact-to-deal. These are one-to-many or one-to-one, and they're directional. If you need to show that Sarah (at Company A) knows Tom (at Company B) and influences Deal X at Company C, you're trying to express a three-way relationship in a system built for bilateral ones. The sync breaks here: Affinity exports each contact as a row. If Sarah has 5 company affiliations, 8 deal relationships, and 12 person relationships, those become text blobs, comma-separated lists, or separate contact records that lose the relationship metadata entirely. The 60% data loss breakdown: field by field Take a concrete example. You have 300 contacts in Affinity, 120 active companies, and 45 open deals. Your average contact touches 2.3 other companies (board positions, past employers, investor roles), appears in 3.1 deals, and is directly connected to 8.4 other people in your network. On export: Multiple company affiliations: HubSpot shows one primary company. The other 1.3 on average vanish or land in a custom text field as "Company A, Company B, Company C" with no role, date, or context. Cost: 57% of company relationship metadata lost. You know Sarah worked at Acme, but not when, in what role, or whether she was a founder or advisor. Deal relationships: Affinity stores person-to-deal connections as direct objects with influence type. HubSpot forces deals through associations, which are binary and don't carry influence metadata. If your export creates separate contact records for "Sarah (associated with Deal 1)" and "Sarah (associated with Deal 2)," you've duplicated the person and lost the network. If you flatten it to a text field, querying "who influences this deal" becomes manual work. Cost: 64% of deal influence data inaccessible to workflows. Person-to-person relationships: Affinity's "relationships" object connects Tom to Sarah with a label (mentor, co-founder, investor, colleague). HubSpot has no native field for this. You can add a custom field "Related Contacts," but it's unstructured text and won't power any automation or query. A deal-sourcing workflow that should ask "show me deals where someone in my network has a mentor relationship" now can't. Cost: 73% of person-to-person network intelligence lost. Relationship history and metadata: Affinity records when a relationship formed, notes, and interaction history. HubSpot's custom fields don't preserve this without a custom schema. Most exports skip it entirely. Cost: 85% of relationship context and decision history. A 300-contact Affinity network with an average of 3.1 deals per contact, 2.3 company affiliations, and 8.4 person relationships loses approximately 60% of its queryable relationship value on HubSpot export. That's 120 deals of influence mapping and 2,520 person relationships reduced to unstructured text. Why HubSpot's association model can't hold Affinity's depth This isn't a bug in HubSpot. HubSpot's association system was designed for transactional CRM: a contact owns deals, works at a company, has a history with your team. It works beautifully for linear sales workflows. But it was not designed for network mapping—the premise that a single person might have material influence across multiple organizations, deals, and relationship types simultaneously. HubSpot's associations are: Binary: One contact to one company, one contact to one deal. Multiple affiliations require multiple contact records or custom fields. Unidirectional: The association has a direction. "Contact A is associated with Deal B" doesn't tell you the influence type or whether A initiated or responded to B. Metadata-light: An association has a type (contact role, association type) but no history, date range, or custom attributes. Not graph-native: Querying two steps out (