Affinity to Attio migration

Affinity to Attio migration for VC firms

Last updated 22 September 2026 · Nacho Lafuente, Attio Certified Expert

This is the path for a venture or PE desk that runs Affinity today and wants Attio as the fund OS. Partners, the COO, Head of Platform, and IR ops are usually the people in the room. The job is not a CSV of contacts. It is lists, notes, and a data model that does not match Attio's objects one to one.

There is no native Affinity connector. Relationship scores do not export. People, companies, and the list data you actually use can move, if you design the destination before you write to it. If email sync is already on in Attio, you are merging into a workspace that is not empty.

Who this is for

A fund, or a PE deal team, whose system of record is Affinity. The person who feels the pain is rarely "sales ops." It is the partner who cannot see a deal and its introducer in one place, the platform lead who maintains the lists, or IR trying to track LPs across vehicles.

It is also for allocator teams. An LP or family office tracking GPs across vintages has the same modeling problem, from the other side of the table. That workspace is a different build: Attio for LPs and family offices.

If you are comparing products and have not decided to leave, start with Attio vs Affinity. This page assumes the decision is made and the question is how the fund OS changes.

Why funds leave Affinity for Attio

The usual trigger is the renewal, not a missing feature. Affinity's published list price as of 3 August 2026 is $2,000 per user per year on Essential, $2,300 on Scale, and $2,700 on Advanced. Attio's public annual price is $29 per user per month ($348 a year) on the plan most small funds start from. A 10-seat gap is large. Your contract may be discounted. Use the renewal quote, not the website, before you tell the partnership you will "save six figures." The worked example sits on the Affinity migration note.

The second reason is the model. Affinity organizes work as lists and list entries. A company on the deal-flow list, the co-investor list, and an LP list is three entries with three field sets. Attio can make funds, LPs, intermediaries, and portfolio companies into objects with relationships. That is what "fund OS" means here. It is not a prettier pipeline.

The third reason is the API. Attio can sit next to enrichment, outbound, and internal tools. That does not replace Affinity's intro paths. If relationship scores drive your sourcing, say so in discovery. Staying can be the right call, and the comparison page says so.

What changes in the fund OS

Same firm, different objects. Where a cell would require your tenant's data, the note says to confirm it in discovery.

Dimension Affinity (typical fund desk) Attio (after migration) Migration note
People / companies Organizations and persons. One record often carries several domains or emails. Companies and people. Writes match on domain and email, so a second create is the failure mode. Email sync has often already created most of these records. Treat it as a merge. Confirm overlap in discovery before anyone sizes the job on a raw export count.
Deals / opportunities A list named Deals is often a company list (the startups). Opportunities can be a different motion, such as LP fundraising. The Deals object, custom objects, or lists that each carry their own stage. Read the field definitions before mapping a name to a name. Amount, round, and pass reason do not belong on the same object as LP commitment.
Lists / pipelines The list entry is the unit that matters. The same company can sit on many lists with different fields on each. Lists and views, or one parent object with a stage attribute per list. Three pipelines do not fit one Attio stage dropdown. Collapsing them produces a status list nobody can reorder cleanly.
Notes and meeting history Notes, reminders, and some meeting copies live on the person or organization. Notes on the parent record, with dates kept when the export has them. Notes the API key cannot see (private notes, some meeting-tool copies) need a separate pass. Confirm the source in discovery. Do not assume a full note export.
Email / calendar sync The relationship graph is built from the firm's inboxes over years. Email and calendar sync rebuild activity forward from the day it is connected. Historical interaction export is partial. The emails stay in the inbox. Scores built on top of that graph do not transfer.
Permissions / seats Record owners can be anyone who ever touched the list, including people who will not have an Attio seat. Deals require a name, a stage, and an owner who exists in the workspace. A missing seat blocks the load. Ask for seats, or agree a fallback owner, before the first write.
Reporting List views and Affinity dashboards, often one per partner. Views and reports on the new object model. Rebuild the views the team actually opens. Porting every dashboard recreates the clutter you are leaving.
Automations / sequences Reminders and list automations. Attio automations, or n8n where the product cannot express the rule. They do not transfer. Rewrite them against the new model after the dry-run, not during the export.
Integrations (enrichment, dialer, data room) Often Zapier, a marketplace app, or a spreadsheet next to the CRM. Clay, n8n, a dialer such as Aircall, and files or links on the record. Re-wire after cutover. Confirm each tool in discovery. A data room link is not the same object as a company.

What does not migrate cleanly

Most of the fear is "we will lose the network." The network of people and companies is the part that moves. The parts that do not move cleanly are specific.

  • Relationship scores and intro paths. Proprietary. Not in the export. Do not promise a rebuilt score on day one.
  • Activity history as a complete archive. Interactions can be partial. Attio sync rebuilds email and calendar forward. It does not replay ten years of Affinity's graph as if it were native activity.
  • Custom fields that are not plain values. Text, number, date, and dropdowns map. Ranked tiers and multi-value filter fields need a new Attio attribute, decided in the design week. The mechanics are on the migration note.
  • Owners without an Attio seat. Attio deals require an owner. If the Affinity owner is a former colleague or a partner without a seat, the row fails until you set a fallback and store the original owner as text.
  • One company that is two records. Two domains in Affinity can already be two companies in Attio because email sync created both. Those rows are held back for a human merge. They are not a script decision.
  • Notes the key cannot see. Private notes, and some copies from meeting tools, never appear in the API pull. If the firm uses Granola or a similar tool, ask where the canonical note lives before you declare notes "done."
  • Automations. Reminders and sequences are rewritten. A copied Zapier zap pointed at Affinity ids will not survive.

The universal sequence is the 5-step migration playbook. Affinity adds the list-entry and quota problems above.

Migration timeline

The clock starts when we have access to Affinity and to Attio. Not when the contract is signed.

2 weeks. The move

Model, dry-run, and cutover. Most funds are in Attio inside those two weeks.

1 to 2 weeks. Validation, only if needed

A pass on the UI and small revisions if the team finds a list, a view, or a field to fix. If nothing comes up, these weeks are not used.

Above 50,000 companies and 50,000 people

The work is still the same two weeks. It has to run over two months of API quota, because Affinity allows 100,000 calls a month. We start in the last week of one month and finish in the first week of the next. Last week of September and first week of October is the pattern, and the migration gets done the same way. The validation week or two still sits at the end, and only if revisions are needed.

A plain implementation, with no heavy migration, is often inside two weeks. Context is in the Attio implementation guide.

Affinity-specific playbook

These steps are the ones that differ from a generic CRM move. The 5-step playbook still applies around them.

  1. 01

    Read the Affinity API budget before you promise a date

    Check the plan tier and the remaining rate limit. Cost tracks records that carry custom field values (list entries and opportunities), not the raw count of organizations and people. A calendar-month quota reset changes what is possible if you start late in the month.

  2. 02

    Pull the source once, unfiltered, and keep it

    Export organizations, persons, opportunities, lists, list entries, and every field value. Store the raw payloads. The Affinity subscription gets cancelled later. A field you did not cache is gone, not merely inconvenient.

  3. 03

    Measure what Attio already has

    Pull the destination and count overlap. If email sync has been on, most companies and people already exist. The job is an upsert, not a create. A create-based import duplicates the workspace you are being paid to clean.

  4. 04

    Hold records that match two Attio rows

    Affinity allows several domains per organization and several emails per person. If those keys point at two different Attio records, the write cannot choose. Detect that before the run, finish everything else, and let the firm decide the merge. Merging in Attio is irreversible.

  5. 05

    Design the Attio model from the real fields

    Build objects and attributes from Affinity field definitions, not from list titles. Add a stable external id (an Affinity id) on every object before the first pilot. Map list-specific fields to attributes, list entries, or custom objects on purpose.

  6. 06

    Load in dependency order, then dry-run

    Companies and people first, then deals and custom objects, then list entries. Pilot a handful of records and count the destination before and after. Production cutover happens only after the team signs off on counts and a spot check of the main lists.

  7. 07

    Cut over, keep Affinity readable, rebuild forward motion

    Attio becomes the system of record. Leave Affinity readable for a validation window (we usually plan 60 days, not day-one cancellation). Connect email sync immediately. Rewrite reminders and automations. Do not run two live CRMs as a permanent state.

A few mapping rules we do not skip. Identity keys are domain for companies and email for people, plus the Affinity id stored as its own attribute so a rerun updates instead of duplicating. Deal and note mapping follows the field definition, not the list name. Affinity lists become Attio lists or views only when the fields are truly "this record on this list." When the fields are a different object (an LP commitment, a co-invest), they become that object.

Automations are a rewrite. Affinity reminders do not become Attio workflows by export. Budget a pass for the five reminders the team will notice on Monday, and leave the rest until validation.

Calling and enrichment are reconnected after the model exists. If the desk uses a dialer, Aircall to Attio is a separate wire, not part of the Affinity pull.

Affinity vs Attio, in short

Affinity is the stronger product when the thing you pay for is relationship intelligence: who knows whom, and which intro path the software inferred. Attio is the stronger product when the thing you pay for is a model you control: custom objects, a lower seat price, and a workspace your own tools can write to.

For a VC fund that sources through partners' existing networks, Attio usually fits, and the migration is worth doing properly. For a fund whose Monday meeting is "Affinity surfaced these intros," do the test on the comparison page before you migrate. The longer write-up is Attio vs Affinity for VC and PE firms.

DIY versus hiring an Attio Expert

A small export of companies and people, into an empty Attio workspace, with no list-specific fields, is a weekend project for a technical operator. That is not what most Affinity funds have.

Hire an Attio Expert when any of these are true: the Attio workspace is already full from email sync, lists carry their own fields, LP or fund objects need to exist on day one, or you cannot afford a duplicate company for every second domain. The engagement is the same one on the Attio Expert page: discovery, model, dry-run, handover. You own the workspace after. There is no retainer required to keep the data.

If you are not ready to scope the migration, the free Attio audit is five questions and a written read on the current setup.

Book a free discovery call with an Attio Expert / See how we run implementations / Expert Directory profile

FAQ

Two weeks after we have access to Affinity and Attio. That covers the model, the dry-run, and cutover. Add one or two weeks only if the team needs a UI validation pass and small revisions. Above 50,000 companies and 50,000 people, the same job runs over two months of API quota, not as a longer project. Affinity allows 100,000 calls a month, so we start in the last week of one month and the first week of the next. Last week of September and first week of October is the pattern. The work finishes the same way.

You lose Affinity's relationship scores and intro-path graphics. Those are computed by Affinity and are not in the export. You can keep people, companies, notes, list membership, and custom field values when the model is designed first and the notes are actually visible to the API. Email and meeting history rebuilds forward once Attio sync is connected. If a meeting tool holds private notes the Affinity key cannot see, that is a separate backfill, confirmed in discovery.

Yes, with a design step in between. Affinity list entries are not Attio records. The same company on ten lists can carry ten different field sets. We decide, list by list, what becomes an attribute, a list entry, or a custom object. Notes move onto the parent record when the export includes them. Reminders and automations are rewritten, not copied.

No. Attio's help center covers general imports from another CRM. There is no Affinity connector that preserves list-entry fields, notes, and history. The workable path is the Affinity API into a designed Attio workspace, with a dry-run before production.

We scope it on a free discovery call after seeing list count, whether Attio is already email-synced, and whether every Affinity owner will have a seat. We do not quote from a headline record count. Current implementation and migration ranges are on the Attio Expert page. Affinity and Attio seat prices are a separate decision from the migration fee.

For a short read-only window, yes. After cutover, Attio is the system of record and Affinity is the archive you check when someone remembers a list. Writing into both creates two histories. We do not recommend cancelling Affinity on day one.

Stay if intro-path discovery is a real sourcing motion and the partners use relationship scoring every week. Move if the seat bill is buying a list model the team works around, and what you need is funds, LPs, intermediaries, and deal flow as objects you own. The comparison page covers that choice. This page is for firms that have already decided to move.

Ready to leave Affinity without losing the desk

30 minutes. We look at the lists, the rate limit, and whether Attio is already full. Then we tell you if the two weeks start now, or over two months of API quota.

Book a discovery call
Book a Discovery Session