
GTM systems
How to Migrate from HubSpot to Attio: A Step-by-Step Guide (2026)
Sparsh Gupta, Founder of Automation Jinn and an Official Attio Expert Partner

GTM systems
Sparsh Gupta, Founder of Automation Jinn and an Official Attio Expert Partner
You migrate from HubSpot to Attio using Import2, a CRM-to-CRM migration service that is free for Attio users and built into the product. As a workspace admin, go to Workspace settings → Migrate CRM → HubSpot → Migrate, connect both accounts, run a free sample migration, validate it, then run the full migration. Import2 brings over your companies, people, deals, custom objects, notes, tasks and files.
Two things to do before you click Migrate, because they cause the most damage if skipped: disable email/calendar sync (or Attio will auto-create duplicate records from incoming email mid-migration), and decide how you'll handle records that already exist (Import2 creates new records, it does not update existing ones). The detail on both is below.
For large or messy datasets, or anything needing transformation, the CSV importer or the API are better tools than Import2. I cover when to use each.
This is the part most guides skip, and it's the part that determines how much rebuild work you're signing up for.
Data | Transfers via Import2? | Notes |
|---|---|---|
Companies (HubSpot Companies) | Yes | Map to Attio's Companies object |
Contacts (HubSpot Contacts) | Yes | Map to Attio's People object |
Deals + pipelines | Yes | Enable the Deals object first; map stages |
Custom objects | Yes | Created automatically during migration |
Custom properties / fields | Yes | Become Attio attributes; review and tidy |
Notes | Yes (Import2 only) | The CSV importer does not support notes |
Tasks | Yes | |
Files / attachments | Yes | |
Contact ↔ company associations | Yes | Import2 auto-links people to companies |
HubSpot lists | Partial | Map to Attio lists; objects map to objects, not lists |
Marketing automation, email sequences, workflows | No | Attio has no native marketing suite; rebuild in Attio or your stack |
Logged emails / engagement history | Not the way you'd expect | Don't migrate these; let Attio rebuild comms via email + calendar sync |
Call recordings | No | Going forward, use Attio Call Intelligence |
The headline: your records and structure move cleanly; your automation and marketing assets do not. That's not a flaw, it's the nature of switching from an all-in-one suite to an AI-native system of record. Budget time to rebuild workflows in Attio (see the post-migration checklist).
Migrations go wrong in preparation, not execution. Do these five things first.
1. Audit and de-dupe in HubSpot. Export your object schema (Contacts, Companies, Deals) and your field list. Kill unused properties and stale automations now, so you don't carry junk into a clean system. Dedupe records in HubSpot before they become dupes in Attio.
2. Disable email and calendar sync in Attio. This is the big one. If anyone's Google or Microsoft account is synced during the import, Attio auto-creates People and Company records from incoming email, and you get duplicates layered on top of your migrated data. Every team member who has synced a mailbox should remove it before you begin, and re-sync only after you've validated the migration.
3. Decide how to handle existing records. Import2 creates new records; it will not update attribute values on records that already exist in Attio. If your workspace already has records (often auto-created by mailbox sync during a trial), you have two choices: delete all existing person and company records first so the migration writes clean values, or accept that existing records won't get updated. For a true migration, deleting first is usually right. Admins can bulk-delete from the Companies and People pages.
4. Enable the objects you need. Non-default standard objects (Deals, Workspaces, Users) must be enabled in Attio before you migrate. To bring over HubSpot deals, enable the Deals object first. Custom objects and attributes don't need pre-creating, Import2 makes them for you.
5. Fix formatting HubSpot let slide. Attio validates data that HubSpot often doesn't. Clean these before import or rows will error:
Phone numbers need a country code: +[country code][number].
Emails must be valid local@domain format, nothing else in the field.
Domains store as the root only (attio.com), not full URLs. https://www.attio.com/page will fail.
Import2 migrations are admin-only and available on Attio's Plus, Pro and Enterprise plans (not the free plan).
In Attio, click your workspace name → Workspace settings.
Open Migrate CRM in the left sidebar.
Find HubSpot CRM and click Migrate. You're redirected to Import2.
Create an Import2 account (or log in) and verify your email.
Connect your source and destination: authorize HubSpot and your Attio workspace.
Configure the migration:
Objects: choose which HubSpot data types to migrate.
Field mappings: review the auto-mapped fields and add mappings for any custom properties. This is where you map HubSpot lifecycle stage / lead status to your Attio deal stages.
Filters: exclude anything you don't want (old contacts, test data).
Automations: toggle migration of pipelines, custom objects, lists and custom fields.
Run the free sample migration. It imports a small subset and creates your attributes in Attio so you can see how the data actually lands.
Validate the sample in your Attio workspace. Check the new attributes in object settings, confirm associations linked, and archive or rename anything messy.
Adjust mappings in Import2 if the sample revealed problems, then re-sample if needed.
Run the full migration. If prompted, click Request full migration, refresh, and start it. Because Attio partners with Import2, the full migration is free, so you won't hit a paywall between sample and full.
You will not be charged for a migration started from Attio's Migrate button.
A few mappings to get right, because they're where HubSpot and Attio differ in model:
HubSpot Contacts → Attio People, HubSpot Companies → Attio Companies. Associations carry over, so people link to their companies automatically.
Lifecycle stage / Lead status → Attio deal stages or a status attribute. Map these deliberately during the Field mappings step; don't accept the auto-map blindly. If you want a default stage set for a status attribute, Import2 support can configure it.
Custom properties → Attio attributes. Each becomes an attribute; review types after the sample (a HubSpot dropdown should become a select attribute, a number should stay a number, etc.).
HubSpot deal pipelines → Attio Deals pipeline + stages. Enable Deals first, then map stage to stage.
Import2 is the default, but it isn't always the right tool.
Use the CSV importer when you want to clean and restructure data before it lands, or you're importing into Attio lists (Import2 maps objects to objects, not lists). Note the CSV importer doesn't bring notes, but you can still use Import2 just for notes by contacting their support.
Use the API when you're technical, the dataset is large, or you need real transformation. Teams pull from HubSpot with Make.com, Pipedream or n8n, transform the fields in flight, and push into Attio's API. This is how larger migrations (100k+ records) get done with field-level control, and it's the route I take for anything with complex data modeling.
Leaving email sync on. The number one cause of duplicate records. Disable it first.
Expecting workflows to come with you. They don't. Plan the rebuild.
Not running the sample. The sample is free and exists precisely so you catch mapping errors on 20 records instead of 20,000.
Dirty formatting. Phone, email and domain validation will reject rows. Clean in HubSpot first.
Migrating everything. A migration is the best time to leave dead data behind. Filter aggressively.
The migration is the easy half. The system is the other half.
Validate the data: spot-check record counts, associations, and a sample of deals against HubSpot.
Re-enable email and calendar sync so Attio starts capturing communication history going forward.
Rebuild your automations as Attio workflows: lead routing, deal-stage automation, follow-up reminders, Slack alerts.
Reconnect your stack: Clay for enrichment, Slack for alerts, Fireflies or Granola for call notes, Segment or Zapier for data flows.
Set up sequences if you ran outreach in HubSpot.
Run both systems in parallel for a short window, validate, then sunset HubSpot.
Train the team on the new views and workflows, and track adoption.
Moving your records from HubSpot to Attio is genuinely straightforward thanks to the free Import2 path, as long as you disable email sync, handle existing records, and clean formatting first. The real work is rebuilding the automation and comms layer in Attio, because you're moving from an all-in-one suite to a flexible system of record. Done in the right order, most teams complete a clean migration in days, not weeks.
If you'd rather not risk the duplicate-record trap or the workflow rebuild, that's exactly the kind of migration I run for teams.
Is migrating from HubSpot to Attio free?
Yes. Attio partners with Import2, so a migration started from Attio's Migrate button, including the full migration, is free for Attio users on a paid plan. You won't be charged between the sample and full migration.
What doesn't transfer from HubSpot to Attio?
Marketing automation, email sequences, workflows and call recordings don't migrate. Attio is a system of record, not a marketing suite, so you rebuild automations as Attio workflows and let communication history rebuild through email and calendar sync.
Will the migration create duplicate records?
It can, if email or calendar sync is left on during the import, because Attio auto-creates records from incoming email. Disable mailbox sync for every team member before migrating, and re-enable it only after you've validated the data.
Does Import2 update existing Attio records?
No. Import2 only creates new records; it won't overwrite attribute values on records that already exist. For a clean migration, delete existing person and company records (often auto-created during a trial) before running the full import.
Can I migrate HubSpot custom objects and properties?
Yes. Import2 creates custom objects and attributes automatically during the migration, and maps custom properties to Attio attributes. Review the types after the sample migration and tidy as needed.
How long does a HubSpot to Attio migration take?
For most startups, days. The Import2 transfer itself is fast; the time goes into prep (audit, dedupe, formatting), validating the sample, and rebuilding workflows. Large or heavily customized datasets done via API take longer.
We help B2B teams leverage AI and build GTM systems that actually drive revenue, from CRM and pipeline architecture to the automations and AI agents that run on top. If you're moving off HubSpot and want your migration to Attio run cleanly the first time, book a discovery call.
Attio: Migrate data from another CRM (Import2 process, supported CRMs, prep steps, formatting): Attio Help Center
Attio: Import data via CSV: Attio Help Center
Import2: Overview of a data migration (sample → validate → full): Import2 Help Center
Attio Developer docs (API migration path): docs.attio.com
Book a discovery call