CSV to Attio, free.
A spreadsheet from anywhere, including the CRM that has no API worth using.
- Connect with
- Upload the file. It imports in full, free, with no sample, and is deleted from our side when the import finishes or you roll back.
- Price
- Free, at any record count
- Moves
- 8 things, listed below
- Doesn’t move
- 6 things, each with the reason
What moves from CSV
Each of these is written against the real API rather than a generic model, which is where the depth comes from.
Any object you like
People, companies, deals, or an object of your own name. Each column becomes a field whose type is guessed from its name and a few values, and you can change every guess.
A company built from a column
A flat contact export names its company instead of referencing one. Point at that column and the company is created and linked as the row imports; rows naming the same company converge on one record.
Only the columns you want
Keep or skip each column, rename it and change its type in the field review — before anything reaches Attio.
Re-runs that update, not duplicate
People match on email, companies on domain, and an object of your own on the column you choose, which is created as a unique attribute, so importing the file again updates records in place.
And on every migration
Relationships, resolved in a second pass
Records are created first and linked second, so a deal finds its company no matter which order they arrived in. A link whose other end never made it is reported as a skipped row naming what it was waiting for.
Dedup against what is already in Attio
People match on email, companies on domain, custom objects on the unique key you designate. A matched record is updated in place, so running the same migration twice never leaves you two of anything.
A sample run before the real one
A connected CRM imports the first 50 records of each object, you read the result, then one click runs the rest. A CSV imports in full, free, and rolls back if it is wrong.
Cancel that leaves zero trace
Every record, note, task, meeting, list entry, attribute and select option this migration created is deleted or archived in reverse order. Whatever was in your workspace before is never touched.
6 things that don’t move
Each is a ceiling in an API, not a feature we haven't written yet. You'd find them on day two, so read them now.
Notes, tasks and meetings
Doesn't moveA record export has no activity data in it. Connect the CRM itself if you want those.
Field history
Doesn't moveA CSV is a snapshot; there is no past in it to import.
Your uploaded file, afterwards
Doesn't moveNot a limitation — a promise. The file is deleted when the import finishes or you roll back. We keep the structure, the mapping and the id map, never the rows.
Emails
Doesn't moveAttio asks migration tools not to import them — its own inbox sync covers email far better than a one-time copy would, and it keeps working after the migration.
File attachments
Doesn't moveAttio publishes no endpoint for writing files onto a record, so there is nowhere to put them.
Goals, invoices, payments, carts and other commerce or admin records
Doesn't moveThey track billing and internal targets rather than customer relationships, and Attio has no object shaped for them. Pipelines and stages already arrive as each deal's status.
Moving from somewhere else
HubSpot
Contacts, companies, deals, products, tickets and your portal's own objects — with the associations intact.
Pipedrive
Persons, organizations, deals, products and projects, and the activities you have been tracking as both meetings and tasks.
Affinity
Persons, organizations, opportunities — and the lists and fields that are where Affinity actually keeps your work.
Salesforce
Accounts, contacts, leads, opportunities, cases and campaigns, your __c objects, and both kinds of note.
Move 50 CSV records first. Then decide.
Free at any record count. Nothing is written to Attio until you have reviewed the objects and fields, and every run starts as a free 50-record sample.