How to Export Your Data from Affinity
Before you can move to Attio, you need your data out of Affinity in a shape you can trust. Some of it exports in a few clicks. Some of it fights you. This page walks each object type, shows where CSV exports work and where you need the API, and flags the two pieces that break most DIY exports: notes and relationship data. If you would rather skip the export entirely, Dialed handles a full structured pull as part of a complete Affinity to Attio migration.
What you can export, object by object
People and Companies
These export cleanly. Open a list or the global People or Companies view, select your columns, and use Affinity's CSV export. You get names, emails, domains, and your custom fields in rows you can open in a spreadsheet. Companies carry their domain, which matters later because Attio uses the domain to dedupe records on import.
Lists
Each Affinity list exports as its own CSV. A list row includes the entity (a person or organization) plus every list-specific field you added to that list. Export one CSV per list so the list-specific columns stay attached to the right records. A company that sits on three lists shows up in three exports, so you will reconcile those later. The migrating Affinity lists page covers how that consolidation works in Attio.
Opportunities
Opportunities live inside a list of type opportunity. Export that list to CSV and you get deal name, amount, stage, and the linked organization. Watch the stage column, because it carries your pipeline structure and you will map each stage value to an Attio status. See migrating deals and opportunities for the stage and history details.
Notes
Notes are the hard part. The CSV export gives you note text but strips the structure: who wrote it, when, and which record it belongs to. To keep notes tied to the right person or company with author and timestamp intact, you pull them through the Affinity API, where each note returns its content, creator, creation date, and the associated entity IDs. A spreadsheet export alone loses those links.
Files
File attachments do not come down in a CSV at all. The API exposes file metadata and download endpoints per entity, so you fetch each attachment and keep a record of which person or company it belongs to. Skipping this step leaves your pitch decks and signed docs behind in Affinity.
CSV exports versus the API
Use this table to decide which method each object needs.
| Object | CSV export | API needed | Why |
|---|---|---|---|
| People | Yes | No | Flat fields export clean |
| Companies | Yes | No | Domain carries for dedupe |
| Lists | Yes | Sometimes | Multi-list records need reconciliation |
| Opportunities | Yes | Sometimes | Stage history is API-only |
| Notes | Partial | Yes | Author, date, links live in API |
| Files | No | Yes | Attachments download via API |
The Affinity API uses an API key from your settings and returns JSON. It rate-limits requests, so a large workspace takes time to pull in full, and you will page through results rather than grab everything at once.
Limits and gotchas
Three issues catch teams that export by hand. First, relationship-strength signals never export. Affinity computes those scores from your team's email and calendar history, and no endpoint hands you the score as a clean field. You rebuild equivalent signal in Attio by reconnecting the same inboxes and calendars. Second, multi-list records duplicate across CSVs, so a single company can appear in five files and you need one rule for how it consolidates. Third, notes and files demand API work that a spreadsheet export cannot do, and these two pieces hold the context your team actually relies on.
How Dialed handles a full structured export
Dialed pulls every object through a combination of CSV and API so nothing drops. We export People and Companies, walk each list including opportunity lists, pull notes with their authors and entity links, and download files mapped to their parent records. We dedupe multi-list records into a single Attio record and reconnect email and calendar sync so relationship signal regenerates. You see the result in a free test migration before any cutover. The whole project runs about 15 hours, near $3,000, against roughly $14,720 a year saved on plan costs. Check your own numbers in the migration calculator.
See what your firm saves switching to Attio →FAQ
- Can I export everything from Affinity as one file?
- No. People, Companies, and lists export as CSVs, but notes and files need the Affinity API to keep their structure, so a full export combines both methods.
- Why do my notes lose their connections on export?
- The CSV export gives note text without the author, timestamp, or record link. Those fields live in the API, so you pull notes through the API to keep them attached.
- Do file attachments come out in a CSV?
- No. Files download through the Affinity API per entity, and you keep a record of which person or company each one belongs to.
- Can I export Affinity relationship-strength scores?
- No endpoint returns the score as a field. You rebuild equivalent signal in Attio by reconnecting the same email and calendar accounts.
- Does Dialed do the export for me?
- Yes. Dialed runs a full structured export across CSV and API as part of the migration, and you validate it in a free test migration first.