All articles

HubSpot to Attio: a step-by-step migration guide

·11 min read

Short answer: To migrate from HubSpot to Attio: export Contacts, Companies, and Deals from HubSpot as CSV; rebuild the data model in Attio (objects, attributes, relationships); import via CSV with column mapping; recreate sequences in Attio Workflows or middleware (Make, n8n, Zapier); rebuild Reports as Lists and Dashboards. The CSV move takes hours. The data-model rebuild takes 1-2 weeks for most B2B teams.

Why teams move from HubSpot to Attio

Most teams that leave HubSpot do not leave because it is bad. They leave because they pay for a marketing platform and use only the CRM inside it.

The honest list of reasons:

  • Sales Hub Professional runs about $90 per seat per month on annual billing. Enterprise reaches $150 per seat plus a $3,500 onboarding fee. A 10-person team crosses $10,000 a year fast.
  • The CRM sits inside a marketing suite. Reps see landing pages, sequences, and workflows they never use.
  • Custom objects, advanced reports, and workflow automations live behind higher tiers.
  • The interface feels heavy on large accounts.

Attio is a CRM built as a CRM. Free for up to 3 users. Flat, predictable pricing after that. Fast. Custom objects and relationships from day one.

For the full side-by-side, see the HubSpot vs Attio post. This guide covers the move.

Rebuild the data model before you export

This is the step most teams skip. It decides whether the migration is clean or messy.

A HubSpot account used for two or three years collects properties, lifecycle stages, deal pipelines, and workflows that made sense once and no longer do. Move all of that into Attio and the new tool looks like the old one, just in a different color.

Before any data moves, answer three questions:

  1. Which objects do you actually need? Contacts, Companies, Deals for sure. Which custom objects carry real business logic, and which are leftover experiments?
  2. Which properties matter? For each object, which ones feed active views, reports, or automations? Everything else is a deletion candidate.
  3. Which relationships matter? Company hierarchies, deal associations, contact roles. Which connections need to cross over?

Run this exercise on a whiteboard with the team before touching HubSpot. The result almost always cuts the property count by 40 to 60 percent.

What does not migrate

Set expectations early. HubSpot and Attio solve overlapping but different jobs. Some things stay behind:

  • Marketing emails, templates, and sequences.
  • Landing pages, forms, and CTAs.
  • Lead scoring models.
  • Ad accounts and attribution reports.
  • Chatbots and live chat routing.

Core CRM data moves cleanly. Contacts, companies, deals, custom properties, notes, tasks, activities, and custom objects all have a home in Attio. Timeline events depend on how HubSpot stores them and what Attio supports for that type.

If marketing automation is load-bearing for the business, plan a replacement before the cutover. Customer.io, Loops, and Mailchimp are common pairings with Attio.

Two ways to move the data: Import2 or manual CSV

Once the data model is decided, you have two routes.

Route A: Import2. Attio's partner for one-click migrations. Free when you start it from the Migrate button inside Attio. HubSpot is a supported source. Import2 connects to both systems, runs a small sample into your workspace so you can review mappings, then runs the full migration.

What Import2 moves into Attio from HubSpot:

  • Companies (deduped by domain)
  • Contacts (deduped by email)
  • Deals
  • Notes
  • Tasks
  • Calls (imported as Notes)
  • Leads (imported as Contacts)

What Import2 does not move:

  • Emails
  • Meetings
  • File attachments

For most small and mid-size teams, Import2 covers 90% of what they care about. Faster and cheaper than a manual CSV migration. Start it from Attio's Migrate button to keep it free.

Route B: Manual CSV. More work. Worth it when the data model changes significantly during the move, when you need full control over field mapping, or when you want to migrate timeline events, custom objects with complex relationships, or data that Import2 does not support.

Most migrations land in a hybrid: Import2 for the core CRM objects, manual CSV or API for custom objects and anything Import2 skips. The rest of this guide walks the manual path.

Migrating with Import2

If you pick Route A, the process is short:

  1. In your Attio workspace, click the Migrate button and pick HubSpot as the source.
  2. You land on Import2. Create an account or log in.
  3. Connect the HubSpot account and the Attio workspace.
  4. Run the sample migration. Import2 pulls a small subset (around 100 accounts with associated records) into Attio so you can check mappings.
  5. Review the sample in Attio. Adjust mappings, filters, or field rules in Import2 if anything looks off.
  6. Approve and run the full migration. Most HubSpot accounts complete in a few hours.

Three HubSpot settings to disable before starting, based on Import2's own guidance:

  • Assign company owner to contact by default. This overwrites the record owner Import2 just imported.
  • Create and associate companies with contacts. HubSpot builds a company from the email domain, which creates duplicates of the companies Import2 already moved.
  • HubSpot Insights. Auto-fills fields from HubSpot's database based on company domain. It cannot be turned off, so expect some fields to shift on the HubSpot side during the migration window. Freeze changes if accuracy matters.

Save these in a pre-migration checklist and review them the day of cutover.

Step 1: Export the data from HubSpot

HubSpot supports CSV, XLSX, and XLS exports. Use CSV. No column limits, cleaner to diff.

From Settings or inside each object view:

  1. Open the object list: Contacts, Companies, Deals, Tickets, custom objects.
  2. Click Export in the top right of the table.
  3. Choose "All properties on records" instead of "Properties on view." The view option only exports visible columns.
  4. Set associations to "All associated records" instead of the default 1,000 cap. This matters for deals tied to many contacts.
  5. Download each export as a separate CSV.

Export Activities and Notes if your team relies on them. Activities export as a separate file.

Keep the HubSpot record ID column in every export. It is the only reliable way to reconnect relationships after import.

For large accounts, use the HubSpot API export endpoint: POST /crm/v3/exports/export/async. It handles bigger datasets than the UI exporter and can be scripted for repeat passes.

Step 2: Prepare the Attio workspace

Build the object structure in Attio before any import.

Attio's standard objects map cleanly to HubSpot:

  • HubSpot Contacts become Attio People.
  • HubSpot Companies become Attio Companies.
  • HubSpot Deals become Attio Deals.
  • HubSpot Tickets have no direct default. Most teams rebuild them as a custom object, or move support work into a dedicated tool.
  • HubSpot custom objects become Attio custom objects.

Set up the properties you decided to keep as Attio attributes. Match field types where possible. Single-line text, numbers, dates, and dropdown selects all have direct equivalents.

For pipelines, Attio uses statuses on the Deals object. Recreate HubSpot deal stages as Attio statuses in the same order, with the same names. Reporting continuity stays intact.

Step 3: Clean the CSVs

An hour on cleanup saves a day of fixes after import.

  • Merge or remove duplicate people and companies. HubSpot accounts often carry duplicates from form submissions and email sync.
  • Standardize picklist values. Lifecycle stages, deal sources, industries. Pick one spelling for each.
  • Normalize phone numbers, dates, and country codes.
  • Drop every column that did not make the data model cut.
  • Fill required fields. Attio rejects rows missing required attributes, which saves errors later but means you catch them now.

Step 4: Import into Attio

Attio supports CSV imports directly in the UI. The importer handles standard objects, custom objects, and all attribute types. Relationships can be set from a single CSV or linked to records already in Attio.

For each object:

  1. Select the object under Records in the sidebar.
  2. Click Import / Export, then Import CSV.
  3. Upload the file and map columns to Attio attributes.
  4. Use the HubSpot ID as an external identifier so records can be relinked later.
  5. Run the import and spot-check 10 to 20 records.

Import in order: Companies first, then People linked to Companies, then Deals linked to both. Notes, activities, and custom objects go last, after everything they depend on already exists.

For datasets over a few thousand records, or when multiple related custom objects need to land together, use the Attio API. It handles bulk imports and relationship links more cleanly than the UI at scale.

Step 5: Rebuild automations

HubSpot workflows do not port to Attio one to one. Do not try. Rebuild from scratch based on what the team actually needs now.

Audit the workflow list before the migration. In most accounts, half are off, broken, or doing nothing. Those stay behind.

Common ones to rebuild first:

  • Lead assignment by owner, territory, or round robin.
  • Stage-change triggers that create tasks or send Slack messages.
  • Deal-won notifications.
  • Activity creation from calendar and email sync.
  • Lifecycle-stage progression rules.

Attio's automation builder is simple enough that the essential set takes an hour or two. Most teams finish this step with fewer, cleaner automations than they had in HubSpot.

Step 6: Rebuild reports and dashboards

HubSpot reports do not migrate. Attio handles reporting through views, filtered lists, and dashboards.

For each HubSpot report that someone actually opens, recreate it as an Attio view or dashboard widget. A weekly pipeline view. A monthly activity summary by owner. A deal-stage funnel.

Skip the rest. Most accounts find that a large share of saved HubSpot reports have not been opened in months.

Step 7: Cutover

Run both systems in parallel for a week.

The team works in Attio. HubSpot stays read-only as a reference. At the end of the week, archive HubSpot and keep read access for 30 to 60 days in case something needs to be checked. Cancel the subscription only after that window, not before.

If marketing workflows still live in HubSpot, keep a reduced HubSpot seat count for the marketing side and use a sync tool between HubSpot and Attio for the CRM data. Many teams do this for six to twelve months before fully consolidating.

Traps to avoid

  • Migrating every property. If every HubSpot property comes across, Attio ends up as cluttered as the old account. Prune hard.
  • Porting every workflow. Same rule. Rebuild from scratch.
  • Skipping the data model step. This is the single biggest cause of a painful migration.
  • Exporting with "Properties on view" instead of "All properties." Partial exports cause partial records.
  • Dropping the HubSpot record ID. Without it, reimports and reconciliation become guesswork.
  • Cancelling HubSpot too early. Keep read access for a month or two. Cheap insurance.
  • Forgetting about marketing assets. Emails, sequences, and landing pages do not move. Plan a replacement before cutover.

How long does a HubSpot to Attio migration take?

For a typical small or mid-size team, under 50 users, a handful of custom objects, moderate data volume, budget 2 to 3 weeks end to end. The data movement itself takes 2 to 3 days. Most of the time is the data model rebuild, automation rework, and team training.

Larger accounts, or teams with heavy marketing workflows that need a replacement tool, push to 4 to 6 weeks.

Want help with the migration?

If you want to use Import2 with a second pair of eyes on the data model and the cleanup pass, or you want the full migration handled for you, book a call or see the HubSpot to Attio migration service.

If you are still evaluating, try Attio with a 10% discount and start the data model exercise on your own. Even if the migration does not happen, the exercise is worth the hour.

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