All articles

The Attio migration checklist: every step, in order

·11 min read

Most CRM migrations do not fail at the export step. They fail in the month before the export, when nobody decided what the new CRM should look like.

This checklist works for any source. HubSpot, Salesforce, Pipedrive, Close, Copper, Folk, or a pile of Google Sheets. The source changes the export tooling. The rest of the work is the same.

Use it as a project plan. Every item is a real task, in the order that saves the most rework.

Phase 1: Decide what the new CRM should look like

This phase happens before you touch Attio or the current system.

  • [ ] Interview the people who live in the CRM. Sales, success, partnerships, ops. Ask what they open every day and what they have stopped opening. The stopped-opening list is the deletion list.
  • [ ] List the objects the business actually needs. People and Companies almost always. Deals in most cases. Custom objects only if they carry real business logic.
  • [ ] List the fields on each object. For each one, note the workflow that touches it. If no workflow touches it, it does not come across.
  • [ ] Map the relationships. Company to parent company. Deal to multiple contacts. Contact to account manager. Sketch it on one page.
  • [ ] Write down the five reports that matter. Pipeline by stage, activity by owner, deals closed this month, whatever the team actually runs. These are the reports you will rebuild. Everything else is optional.
  • [ ] Decide who is doing the migration. Name the owner and a backup. Block calendar time for the cutover week.

If you skip this phase, the new Attio workspace ends up as cluttered as the old CRM. The migration looked clean; the daily experience did not change.

Most teams cut the property count by 40 to 60 percent when they do this properly. That cut is the single biggest win of the whole project.

Phase 2: Pick the migration route

Three routes, ranked by effort.

Route A: Import2 (one-click). Free when you start it from the Migrate button inside Attio. Supported sources include HubSpot, Salesforce, Pipedrive, Close, Affinity, Copper, Zoho, and more. Handles companies, people, deals, custom objects, notes, and tasks. Does not move emails, meetings, or file attachments.

Route B: Manual CSV. More work. The right call when the data model changes significantly during the move, when custom objects have complex relationships, or when you want full control over mappings.

Route C: Attio API. For datasets over a few thousand records, or when multiple related custom objects need to land together with their links intact. Scriptable and repeatable.

Most real migrations end up as a hybrid. Import2 for the core CRM objects, CSV or API for the rest.

  • [ ] Pick a primary route for the core objects.
  • [ ] Identify which objects or datasets need a different route.
  • [ ] Decide who runs each route.

Phase 3: Build the Attio workspace

Build the destination before you move anything into it.

  • [ ] Create the workspace and invite admins only. Keep users out until cutover.
  • [ ] Map source objects to Attio objects. HubSpot Contacts, Salesforce Leads, Pipedrive Persons, and Close Contacts all become Attio People. Same pattern for Companies and Deals.
  • [ ] Create custom objects for anything that does not fit the defaults. Do not try to jam custom logic into the Companies or People objects just because they exist.
  • [ ] Create attributes on each object. Match types where possible: text, number, date, single select, multi select, currency, record reference.
  • [ ] Recreate pipeline stages. In Attio, pipelines are statuses on the Deals object. Keep the order and the names from the source so reporting stays continuous.
  • [ ] Add an external ID attribute on every object that will receive imported data. Call it HubSpot ID, Salesforce ID, Pipedrive ID, or whatever the source is. This is how you reconnect relationships if you need a second import pass.
  • [ ] Create an initial list of standard views. One view per team. Keep it small. Three views per team is plenty on day one.

Phase 4: Export and clean the data

The cleanup pass saves more time than any other single step.

  • [ ] Freeze the source system. Turn off new sequences, imports, and enrichment jobs during the migration window. Running enrichment mid-migration creates duplicates and shifts fields under you.
  • [ ] Export every object you plan to move. CSV is the cleanest format. For larger accounts, use the source's API export endpoint.
  • [ ] Keep the source record ID in every file. Without it, re-syncing relationships becomes guesswork.
  • [ ] Include all properties, not just the visible ones. Most source CRMs default the export to "fields on current view." That drops data silently.
  • [ ] Open each CSV in a spreadsheet and clean it.

- Merge duplicate people and companies.

- Standardize picklist values. Pick one spelling for each status, industry, and lifecycle stage.

- Normalize phone numbers to E.164 format: +14155552671. Attio validates phone numbers on import and rejects malformed ones.

- Normalize dates and country codes.

- Drop every column that did not survive the Phase 1 cut.

- Fill required fields. Attio rejects rows that are missing them, so catch them here rather than in the import log.

  • [ ] Back up the cleaned CSVs. Keep a copy before the import runs. Cheap insurance.

Phase 5: Import in the right order

Order matters. Import a record before its parent record exists and the relationship breaks.

  1. Companies first. Every other object references them.
  2. People next, linked to Companies by domain or company name.
  3. Deals, linked to both Companies and People.
  4. Custom objects, linked to whichever parents they need.
  5. Notes, tasks, and activities last.

For each import:

  • [ ] Map the source record ID column to the external ID attribute on the Attio object.
  • [ ] Run a sample of 50 to 100 records first. Spot-check them in Attio before running the full file.
  • [ ] Confirm the unique identifier is correct. Attio dedupes People by email and Companies by domain. If a person has no email, decide up front whether to skip or create with a placeholder.
  • [ ] Run the full import.
  • [ ] Spot-check 20 random records against the source. Look at relationships, not just fields.

If a relationship comes out wrong, the fix is almost always to re-run the child import using the external ID, not to edit records by hand.

Phase 6: Rebuild automations

Source-system workflows do not port to Attio one-to-one. Do not try.

  • [ ] Audit the workflow list in the source system. Most teams find that a third to a half are off, broken, or doing nothing. Those stay behind.
  • [ ] Rebuild the essential set in Attio. Lead assignment. Stage-change triggers. Deal-won notifications. Activity creation from calendar sync. Keep it tight.
  • [ ] Test each automation on one record first. Fire it manually before turning it loose on the dataset.

Most teams finish this step with fewer and cleaner automations than they had before. That is the right outcome.

Phase 7: Rebuild reports and views

Reports do not migrate. In Attio, reporting happens through views, filtered lists, and dashboards.

  • [ ] Rebuild the five reports from Phase 1. One at a time. As views, dashboards, or both.
  • [ ] Share each view with the right team so people actually see them.
  • [ ] Skip the rest. The reports that did not make the Phase 1 cut do not come back. If someone asks for one later, rebuild it on demand.

Phase 8: Cutover

Run both systems in parallel for a week. Not longer.

  • [ ] Freeze writes in the source system the day of cutover. Everyone works in Attio from that point on.
  • [ ] Keep the source read-only for a week as a reference.
  • [ ] Run daily check-ins with the team during cutover week. Catch data issues while they are still small.
  • [ ] Archive the source at end of week. Keep read access for 30 to 60 days before cancelling, in case something needs to be checked.
  • [ ] Do not cancel the source subscription on day one. Cancel after the 30 to 60 day window.

Phase 9: The first 90 days

The migration is not done on cutover day. It is done when the team stops reaching for the old system.

  • [ ] Week 1: fix the data. Spot-check 50 records per object. Log every issue in a single list. Fix in batches.
  • [ ] Week 2: fix the views. The views you built in Phase 3 will be wrong in small ways. Adjust filters, columns, and sort orders based on how people actually work.
  • [ ] Week 4: review automations. Which ones fired? Which ones did nothing? Prune.
  • [ ] Week 8: add what was cut. By now the team has asked for two or three fields or reports that did not make the Phase 1 cut. Add them back. Not the whole pile, just the ones people actually need.
  • [ ] Week 12: archive the source. Full archive. Cancel. Close the loop.

Traps to avoid

  • Migrating every field. If every source field comes across, Attio ends up as cluttered as the old CRM. Prune hard in Phase 1.
  • Porting every automation. Same rule. Rebuild from scratch in Phase 6.
  • Skipping the data model step. The single biggest cause of a painful migration.
  • Exporting with "fields on view." Partial exports cause partial records.
  • Dropping the source record ID. Without it, reimports and reconciliation become guesswork.
  • Cancelling the source too early. Keep read access for a month or two. Cheap insurance.
  • Running marketing sync during migration. Freeze it. Otherwise fields shift under you mid-import.
  • Moving everything on a Friday. Leave a full week for fixes. Fridays are how weekend escalations happen.

How long does an Attio migration take?

Ballpark for a small or mid-size team, under 50 users, a handful of custom objects:

  • 1 week: spreadsheets or a lightly-used Pipedrive or Close account. Small dataset, simple pipeline.
  • 2 to 3 weeks: typical HubSpot or Pipedrive migration. Moderate data volume, some automation rework.
  • 4 to 6 weeks: Salesforce, or any source with heavy customization, multiple custom objects, and deep automation.

The data movement itself is 2 to 3 days in most cases. The rest is the data model rebuild, automation rework, and training.

Source-specific guides

For the export mechanics and known gotchas on your specific source, pick the guide that matches:

Matching done-for-you migration services live at /hubspot-to-attio, /pipedrive-to-attio, /salesforce-to-attio, and /close-to-attio.

Get the checklist plus three Claude skills

The printable version of this checklist ships with three Claude skills that plug into Attio: a deduplication skill, a reporting skill, and an enrichment skill. Connect the skills to Claude and use them on any Attio workspace. No setup, no code.

Drop your email on the home page and the kit lands in your inbox.

Want the migration handled for you?

If you want a second pair of eyes on the data model or the full migration run for you, book a call or see the implementation service.

If you are still evaluating Attio, try it with a 10% discount and start the Phase 1 exercise on your own. Even if the migration never happens, the hour on the whiteboard is worth it.

Sources

Free audit of your Attio workspace

If you want a second pair of eyes on your Attio setup, I run a free 48-hour audit. You add me to your workspace as an Attio expert, no extra seat and no billing. I send back a one-page written teardown ranked by impact, the three highest-leverage fixes with the exact setting change, and a 5-minute Loom walking through the top fix. No call, no pitch. 5 slots a week.

Get your free Attio audit

Need help with your Attio setup?

We migrate teams, build data models, wire automations, and train Claude agents inside your workspace. Discovery call is free.

Book a free discovery call