---
title: "Migrate from Affinity to Attio | ClonePartner"
description: "There is no native migration path from Affinity to Attio. Affinity organizes everything around lists and list entries with a single-list-per-opportunity model, "
source: Affinity
target: Attio
canonical: "https://clonepartner.com/migrate/affinity-to-attio/"
---

# Affinity → Attio migration

Seamless Affinity to Attio migration — all records moved with accuracy and care.

## Why teams migrate from Affinity to Attio

There is no native migration path from Affinity to Attio. Affinity organizes everything around **lists and list entries** with a single-list-per-opportunity model, rich interaction timelines, and entity files. Attio models data as **objects and records** added to lists as entries, with first-class APIs for records, notes, and threads.



The fundamental gap is structural: Affinity separates entity data from field values and distinguishes internal persons from external contacts under one object, while Attio enforces a clean split between People and Users with object-level and list-level attributes.



Every migration requires custom API work to split persons, recreate list schemas with their specific attributes, route interactions between native sync and API-created notes, and externalize file storage with link-back references.

## Key migration challenges

- **Person/User Split** — Affinity persons include both internal staff and external contacts under one entity, requiring routing to Attio People or Users based on a type flag and email-based crosswalk.
- **List-Specific Fields** — Affinity list-specific fields must map to Attio list attributes while global fields map to object attributes, requiring two-pass schema creation.
- **Interaction Routing** — Emails and meetings rely on Attio's native inbox/calendar sync for backfill. Calls and chats must be converted to Notes with tags and linked to multiple parent records.
- **Entity File Storage** — Attio has no direct file attachment equivalent. Files must be uploaded to external storage and linked back to records via URL attributes or Notes.
- **Single-List Opportunities** — Affinity opportunities belong to exactly one list. The 1:1 relationship between opportunity and list entry must be preserved when asserting Deal entries in Attio.

## Entity mappings

- **Persons** (Affinity) → **People** (Attio)
- **Organizations** (Affinity) → **Companies** (Attio)
- **Opportunities** (Affinity) → **Deals** (Attio)
- **Lists** (Affinity) → **Lists** (Attio)
- **List Entries** (Affinity) → **List Entries** (Attio)
- **Fields** (Affinity) → **Attributes (Schema)** (Attio)
- **Field Values** (Affinity) → **Attribute Values** (Attio)
- **Notes** (Affinity) → **Notes** (Attio)
- **Webhooks** (Affinity) → **Webhooks** (Attio)
- **Activities** (Affinity) → **Tasks** (Attio)
- **Interactions** (Affinity) → **Record Relationships** (Attio)
- **Email Messages** (Affinity) → **Not Available** (Attio)
- **Relationship Strengths** (Affinity) → **Not Available** (Attio)
- **Saved Views** (Affinity) → **Not Available** (Attio)
- **Field Value Changes** (Affinity) → **Not Available** (Attio)

## What breaks during migration

- **Organizations → Companies** [Workaround] — Key on normalized domain where possible; orgs without domains cannot be deduplicated
- **Persons (external) → People** [Workaround] — Email-based matching works but contacts without valid emails lose deduplication
- **Persons (internal) → Users** [Workaround] — Requires enabling the Users object and building an email-based crosswalk to workspace members
- **Opportunities → Deals** [Workaround] — Preserve stage, value, currency, and dates; respect single-list origin
- **Lists → Lists** [Direct] — Recreate structure and document inclusion criteria
- **List Entries → List Entries** [Workaround] — Maintain created/updated timestamps and populate list-specific attribute values
- **Custom Fields → Attributes** [Workaround] — Type mapping between global fields (object attributes) and list-specific fields (list attributes) requires careful planning
- **Interactions → Notes/Sync** [Breaks] — Complex routing between native email/calendar sync and API-created Notes with tags for calls and chats
- **Notes → Notes** [Workaround] — Fan-out required for multi-person notes; one Attio Note per parent record
- **Entity Files → External Storage** [Breaks] — No direct Attio equivalent; requires uploading to cloud storage and linking folders back to records

## What we migrate

### Data Types

- **Custom Fields** — Any custom objects and fields configured in your CRM
- **Deals & Opportunities** — Sales pipeline data with stages and close dates
- **Accounts/Companies** — Business-level entities and associated data
- **Leads & Contacts** — All person-level records including metadata

### Migration Filter

- **Pipeline/Stage Filter** — Select records based on deal stages or pipelines
- **Owner Selection** — Migrate records assigned to specific owners or reps
- **Time Range** — Migrate records from a specific time period
- **Contact Type** — Filter by lead, contact, or account

## Complete technical guide

For a deep-dive into the technical process, data mapping, and step-by-step migration workflow, read our full guide: [Affinity to Attio Migration: An In-Depth Definitive Guide](https://clonepartner.com/blog/affinity-to-attio-migration-guide/).

## Frequently asked questions

### Who can view my data?

For each migration project, you'll be assigned a migration engineer. Only the migration engineer can view your data. No one else at ClonePartner can view your data.

### Can I sign an NDA?

If you are reaching out to us via one of our partners, we already have an NDA signed with them that unilaterally applies to all their customers. If you are reaching us directly and need an NDA signed, we'll be happy to sign your NDA or ours.

## Get a fixed-price quote

[Talk to an engineer](https://cal.com/clonepartner/meet?duration=30&utm_source=xtoy&utm_medium=button&utm_campaign=demo_bookings&utm_content=cta_click&utm_term=demo_button_click) about your Affinity → Attio migration.
