How to Migrate from Salesforce to Attio
Salesforce to Attio is a deliberate simplification. Accounts, Contacts and Opportunities land cleanly; record types, Flows, validation rules and Apex do not come with you — and for most teams making this move, that is the point.
- Difficulty
- Moderate
- Typical duration
- 2–4 weeks
- Downtime
- None — Salesforce stays live during import
- Native importer
- Partial — Attio CSV import with mapping, plus the Attio API
| Salesforce Sales Cloud | maps to | Attio | What to watch |
|---|---|---|---|
| Account | Company | Direct. Attio auto-enriches from the domain, so a clean website field matters more than the firmographic fields you are exporting. | |
| Contact | Person | Attio keys and enriches people on email. Salesforce contacts with no email are much less useful in Attio. | |
| Lead | Person, or a List entry | Attio has no separate Lead object. Unconverted leads become People — often better modelled as entries on a prospecting List than mixed into the main person database. | |
| Opportunity | Deal (or List) | Use the Deals object for revenue pipelines; use a List when the pipeline is really a non-revenue process with its own per-entry data. | |
| Case | — (no equivalent) | Attio is not a support tool. Case history moves to a helpdesk or stays archived in Salesforce. | |
| Custom field | Attribute | Attio's attribute types are expressive — record references, status, multi-select, currency — so some Salesforce text fields can be upgraded during the move. | |
| Custom object | Custom object | Available in Attio without an Enterprise tier, which is a rare case of the smaller product being more permissive. | |
| Report / Dashboard | View / Report | Attio reporting is lighter. Anything genuinely analytical belongs in a BI tool reading from Attio's API. |
What transfers cleanly
- Accounts, Contacts and Opportunities with custom fields mapped onto Attio attributes.
- Opportunity amounts, stages and close dates, once your Attio pipeline exists.
- Notes and tasks, imported after their parent records.
- Owner assignment, where Salesforce users have Attio seats with matching emails.
- Email and calendar history going forward, once each user connects their mailbox.
What doesn't come across
- Record types and page layouts. No Attio equivalent. Two sales motions in one Salesforce org become two Attio Lists or two pipeline stages sets.
- Validation rules. Attio does not block saves the way Salesforce does. Data quality becomes convention plus automation rather than enforcement.
- Flow, Process Builder and Apex. Rebuild as Attio automations, or move the logic to an external tool. Apex has no counterpart at all.
- Formula and roll-up summary fields. Attio has no formula field type; derived values need an automation writing a plain attribute, or a BI layer.
- Cases and Service Cloud. A separate helpdesk is required.
- Sharing rules and field-level security. Attio's permission model is far simpler. Verify this is acceptable before committing.
Migration order that works
- Audit what your validation rules and required fields were actually enforcing — that is the data quality you are about to make voluntary.
- Decide which Opportunities become Attio Deals and which are better as Lists; Salesforce orgs often carry non-revenue pipelines in the Opportunity object.
- Clean the Account website field and Contact email field — these drive Attio's enrichment and matching.
- Design the Attio workspace: objects, attributes, Lists and pipeline stages, before importing.
- Export from Salesforce with record IDs, then import Companies, People and Deals in that order.
- Rebuild the automations that matter in Attio and route anything complex to an external automation tool.
- Connect mailboxes and calendars for every user, then keep a read-only Salesforce licence for a year of history.
Teams leaving Salesforce for Attio have usually concluded that their org became a maintenance project. Every field, every validation rule, every Flow was added for a reason, and collectively they now cost more attention than the CRM returns.
Attio is the opposite bet: a flexible data model, fast interface, automatic enrichment, and almost no enforcement machinery. Whether that trade works depends entirely on what your enforcement machinery was doing.
Audit the rules before you drop them
Pull a list of every validation rule, required field and record-type restriction in the Salesforce org, and for each one ask what breaks if it disappears.
Some exist to prevent genuine data corruption — a close date before an open date, a currency mismatch. Some encode a compliance requirement. And a great many exist because someone in 2019 was annoyed about blank fields and nobody has revisited it since.
Attio will not reproduce the first two categories. If they matter, you need a plan — automations that flag violations, a review view, or accepting the risk deliberately. Discovering this after cutover is how teams end up with a fast CRM full of unusable data.
Not every Opportunity is a deal
Salesforce orgs accumulate pipelines. Sales, obviously — but also renewals, partnerships, sometimes recruitment, all crammed into the Opportunity object with record types keeping them apart.
Attio splits this cleanly. Revenue pipelines belong on the Deals object. Everything else is usually better as a List, where each entry carries its own attributes independent of the underlying company or person. This is the part of the migration where the new model genuinely improves on the old one, and it is worth the design time.
Let go of the firmographic fields
A mature Salesforce Account record carries dozens of descriptive fields, many populated by a data provider years ago and never refreshed. Attio enriches companies from the domain continuously.
Import the fields that hold your own judgement — tier, owner, relationship context, strategic notes — and let Attio look up industry, headcount and location. This shrinks the mapping exercise substantially and produces fresher data than you had.
Which makes the Account website field the most important column in the export. Clean it before anything else.
Keep Salesforce as an archive
Cases, audit history, formula-field values and campaign influence will exist in exactly one place after this migration. A minimal read-only licence for a year is inexpensive and removes any pressure to migrate reporting perfectly.

