A HubSpot to Attio migration is not a data export. The records move in an afternoon. The weeks go into everything that does not move: workflows, sequences, reports, forms, and the automation logic your team relies on without thinking about it. The sequence that holds is the same one we document in the CRM migration playbook: audit first, clean second, migrate third, rebuild fourth. Skipping the audit is how teams carry broken data into a clean system and blame the new platform for the old problem.
Start the migration from Attio's Workspace settings, Migrate CRM, then click Migrate next to HubSpot. Import2 runs a free sample migration first, then the full run. Before either: deduplicate in HubSpot and have every team member disconnect mailbox sync in Attio. Import2 moves companies, contacts, deals, notes, tasks and custom objects. It does not move emails, meetings, workflows, sequences, reports or forms. Those you rebuild by hand.
Every claim in this table and plan comes from the vendor's own documentation, checked 5 November 2026. Where other sites disagree on what Import2 moves, we state only what the Attio help centre and the Import2 help centre say, and cite the page.
Should you move at all?
Not every frustration with HubSpot is a migration signal. Four questions sort genuine platform mismatch from configuration debt.
Does HubSpot's data model force you into workarounds? HubSpot structures everything around Companies, Contacts, Deals and Tickets. Custom objects require Enterprise on most Hubs, which we covered in what custom objects cost in HubSpot. Attio lets you define objects and attributes on every paid plan, per Attio's pricing page. If you need objects HubSpot gates behind Enterprise and you are not on Enterprise, that is a real mismatch.
Do you depend on HubSpot Marketing Hub? Marketing email, ad management, landing pages, SEO tools, social publishing, lead scoring and blog hosting all live inside Marketing Hub. Attio has no marketing automation suite. If your marketing team runs campaigns from HubSpot daily, a migration means finding a separate tool for every one of those functions or keeping a Marketing Hub seat alongside Attio, which changes the cost arithmetic.
Do you use HubSpot sequences heavily? HubSpot sequences track opens, clicks and replies on the contact timeline. Attio has its own sequences feature, but the template library and reporting surface differ. Rebuilding 30 active sequences is a week of work, not a settings toggle.
Is your reporting built in HubSpot? Custom reports, dashboards and funnel reports do not export in a usable form. HubSpot's export documentation confirms that funnel report exports contain objects created in the date range rather than objects that changed stages. Moving means rebuilding every report in Attio or a BI tool.
If the answer to the first question is yes and the rest are manageable, a migration is worth scoping. If the answers to the second and third are both yes, the cost of rebuilding may exceed the cost of staying. Our Attio alternatives comparison walks through the triggers that warrant each direction, and our guide to choosing a CRM by stage covers whether the move is premature.
What moves and what doesn't
Every row below is sourced from Attio's migration help page (marked AM), Import2's supported objects article (marked I2), or Attio's CSV import guide (marked CSV), all checked 5 November 2026.
| Data type | Import2 | CSV import | Rebuild by hand | Source |
|---|---|---|---|---|
| Companies | Yes, matched by domain | Yes, matched by domain | No | I2, CSV |
| Contacts | Yes, matched by email | Yes, matched by email | No | I2, CSV |
| Deals | Yes | Yes | No | I2, CSV |
| Custom objects | Yes, auto-created if no match by name | Create the object first, then import rows | No | AM |
| Notes | Yes | No (API only) | No | I2, CSV |
| Tasks | Yes | No (API only) | No | I2, CSV |
| Calls | Imported as notes | No | No | I2 |
| Emails | No | No | Re-enter via mailbox sync | I2 |
| Meetings | No | No | Re-enter via calendar sync | I2 |
| Attachments | Yes (import only) | No | No | I2 |
| Leads | Imported as contacts, matched by email | Yes (as people) | No | I2 |
| Lists | No (Affinity only) | Yes (into Attio lists) | No | I2, CSV |
| Associations | Yes, preserved | Via relationship attributes | No | AM |
| Workflows | No | No | In Attio workflows or n8n | n/a |
| Sequences | No | No | In Attio sequences | n/a |
| Reports | No | No | Rebuilt in Attio or a BI tool | n/a |
| Forms | No | No | Rebuilt in Attio or third-party | n/a |
| Property history | No | No | Lost | n/a |
Emails and meetings cause the most confusion. Import2 lists both as unsupported for export and import. Other sites claim otherwise. Until the vendor documentation changes, the safe assumption is that neither moves, and history re-enters Attio through mailbox and calendar sync after migration.
Mapping the data model
HubSpot and Attio organise data differently, and the mapping decisions made before migration determine whether the result feels coherent or patched together.
Objects to objects. HubSpot Companies map to Attio Companies, Contacts to People, Deals to Deals. Tickets and custom objects need a decision: create a matching object in Attio (Import2 does this automatically if none exists by name, per Attio's migration help), or fold the concept into an existing object. Custom object limits by plan: Free 3, Plus 5, Pro 12, Enterprise unlimited, per Attio's pricing page.
Properties to attributes. HubSpot properties become Attio attributes. Import2 creates them during the sample migration, per Attio's migration help. Review after the sample and archive what you do not need. Attio auto-enriches certain fields (Description, Location, social profile URLs). If you migrate your own values into an auto-enriched field, Attio stops enriching it. Decide which you want Attio to maintain and which you want to own.
Pipelines and deal stages. HubSpot deal pipelines with their stages map to Attio deal pipelines with their stages. Set these up in Attio before the migration so Import2 can map into them, or let Import2 create them and rename afterwards. The names do not need to match, but the sequence does: if your HubSpot pipeline has seven stages, model the same seven in Attio even if you plan to consolidate later.
Lifecycle stage and lead status. HubSpot treats lifecycle stage as a system property that moves forward (the HubSpot knowledge base states lifecycle stages never move back by default). Attio has no lifecycle stage system property. The common pattern is to create a select attribute called Lifecycle Stage on the People and Companies objects and populate it from the HubSpot export. Lead status maps similarly.
HubSpot record IDs. Create a text attribute in Attio called HubSpot Record ID on every object that carries migrated data. Populate it from the export. It costs nothing, and it is the only reliable way to trace a record back to its HubSpot origin after migration, whether for reconciliation counts, debugging a missing association, or answering an auditor's question about data lineage.
Associations. Import2 preserves people-to-company links, per Attio's migration help. Labelled associations and custom labels need manual setup in Attio after migration. Review which labels carry operational meaning before you move, because unlabelled associations all look the same on the other side. The full audit method is in our CRM audit guide.
Clean before you move
Migrating dirty data into Attio means cleaning it there instead of in HubSpot, except now you have lost the tools and property history that made the cleanup traceable.
Deduplicate. Run HubSpot's duplicate detection, resolve every pair that matters, and export the duplicate report before you start. The method is documented in our guide to auditing duplicates and broken associations. Import2 matches contacts by email and companies by domain (I2). If two HubSpot contacts share an email, only one migrates cleanly. Resolve that in HubSpot where the merge tools exist.
Retire unused properties. Every HubSpot property that carries data will become an Attio attribute. If you have 400 properties and 180 are unused, you will have 180 empty attributes cluttering the Attio object settings. Archive or delete them in HubSpot before exporting. The property insights chart in HubSpot's data quality tools shows unused properties alongside duplicates and empty fields.
Take a full backup. HubSpot's export documentation describes a CRM data backup that includes all records, properties and property history. Download it before you touch anything. Store it outside HubSpot in case you need to reverse the migration or answer a question about pre-migration state six months later.
The cutover plan
A cutover is a sequence with a freeze window at the front and a decommission date at the back. Everything in between is mechanical.
1. Announce a freeze window. No new records in HubSpot, no bulk imports, no workflow changes. The freeze needs to be short enough that sales keeps momentum and long enough for the sample, review and full migration to complete.
2. Disconnect mailbox sync in Attio. Attio's migration help is explicit: Import2 creates new records but does not update attribute values on records already in Attio. Synced records block attribute updates.
3. Delete existing records in Attio. If Attio holds person and company records from prior testing, admins delete them in bulk from the Companies and People pages, per Attio's migration help.
4. Run the sample migration. In Attio Workspace settings, Migrate CRM, then Migrate next to HubSpot. Import2 imports a subset and creates non-system attributes in Attio. Verify the data model mapping landed correctly.
5. Review the sample and fix mappings. Check imported records, rename or archive wrong attributes, adjust mappings in Import2. Watch auto-enriched fields: migrating a value into Description or Location stops Attio enriching it.
6. Record reconciliation counts. Count companies, contacts, deals and custom objects in HubSpot. These are your expected totals.
7. Run the full migration. If prompted to request the full run, click the button, refresh, then start, per Attio's migration help.
8. Reconcile counts per object. Compare expected totals against Attio. Common discrepancies: duplicates resolved by email or domain matching (Import2), records skipped for invalid formatting (phone numbers need a country code, domains must be valid root domains), and custom objects not enabled before migration.
9. Reconnect mailbox and calendar sync. Each team member reconnects individually. Email and meeting history populates from the sync, not from Import2.
10. Set HubSpot to read-only. Revoke create and edit permissions. Keep the account active for historical reference.
11. Set a dated decommission. Pick a date, no more than 90 days out, by which HubSpot will be fully deactivated. This prevents dual-system drift where neither CRM is authoritative.
Rebuilding automations
Nothing in the what-moves table carries logic. Workflows, sequences and any automation built in HubSpot must be rebuilt from the requirements, not ported line by line.
HubSpot workflows to Attio workflows. Attio has its own workflow builder with triggers, conditions and actions, available on paid plans per Attio's pricing page. Export your HubSpot workflows as a spreadsheet first: HubSpot's export documentation confirms export via "Export view." That spreadsheet becomes your rebuild checklist. It excludes performance data and email content, but the names and folder structure are enough to prioritise.
HubSpot workflows to n8n. When the workflow needs retries on failure, structured logging, conditional branching across multiple systems, or HTTP calls to tools outside the CRM, Attio's native builder may not be enough. That is where n8n fits: it handles multi-system orchestration with retry logic, error branches and execution logging that the CRM workflow builder does not offer. The decision is not Attio or n8n. It is which workflows belong inside the CRM (record-triggered, single-system) and which belong outside it (multi-system, failure-sensitive, high-volume).
HubSpot sequences to Attio sequences. Rebuild each sequence manually. Map the template content, the delay intervals, the enrollment triggers and the unenrollment conditions. Test with internal addresses before going live. Sequence reporting will reset to zero, which is expected.
Reconnecting the stack
A CRM migration disconnects every integration that wrote to or read from HubSpot. Reconnect them in this order: enrichment, then email and calendar, then forms.
Enrichment. If Clay writes enriched data into HubSpot today, it needs to write into Attio after migration. The pattern is the same: look up the record by email or domain, update if it exists, create if it does not, never create without a lookup. Our guide to Clay enrichment and lead routing covers the lookup-then-update pattern, and the Attio equivalent uses the same logic against a different endpoint. API and webhook access is on all Attio plans, per Attio's pricing page. The Clay agency practice we run handles both directions.
Email and calendar sync. This brings email and meeting history into Attio, but it also creates records from inbox contacts if left unchecked. Re-enable after migration records are verified, not before. Each user reconnects individually.
Forms. HubSpot forms do not migrate. If you use HubSpot forms embedded on your website, replace them with Attio's form builder, a third-party tool, or a direct API integration that creates records in Attio. The form submission history stays in HubSpot's export.
What drives the timeline
Four variables determine how long a HubSpot to Attio migration takes, and none of them is the data transfer itself.
Record volume. More records means a longer Import2 run, more reconciliation, and more formatting errors. Attio's CSV import caps at 100,000 rows per file, per Attio's CSV import guide, so supplementary loads on large databases need splitting.
Custom objects. Each custom object needs a mapping decision. Import2 creates them automatically if no match exists, per Attio's migration help, but attribute review takes time proportional to custom property count.
Automations. Workflows and sequences rebuilt from scratch are the largest single time block. Five active workflows is a different scope than forty across eight folders.
Integrations. Every tool connected to HubSpot needs a replacement connection to Attio. Some (Clay, Zapier, Make) have native Attio connectors. Others need API work.
Do not trust generic duration estimates. They float around without context. Count the four variables above, scope the rebuild, and the timeline follows.
How we run a HubSpot to Attio migration
The process starts with a CRM and RevOps assessment, not with Import2. The assessment maps the current HubSpot setup: objects, properties, associations, pipelines, automations, integrations and reporting. It separates what is actively used from what was configured once and abandoned. That distinction is what makes a clean migration instead of a one-to-one copy of configuration debt.
From the assessment, a scope document lists every object, automation and integration that moves, with the destination in Attio or n8n for each. Nothing migrates without being on that list. Nothing on the list migrates without a test in the sample environment.
The cutover follows the plan above. After it, a reconciliation pass checks record counts, association integrity and the first week of workflow executions. Any discrepancy is resolved before the team is told to stop checking HubSpot.
The practice sits across our Attio consulting and HubSpot migration work. If you are evaluating whether Attio is the right destination, the Attio vs Salesforce comparison covers the enterprise alternative, and the full Attio alternatives comparison covers the field.
FAQ
How do I migrate from HubSpot to Attio?
Open Attio Workspace settings, click Migrate CRM, then Migrate next to HubSpot. Import2 runs a free sample first, then the full migration. Before starting, deduplicate records in HubSpot, disconnect mailbox sync in Attio, and delete any existing test records. Import2 moves companies, contacts, deals, notes, tasks, attachments and custom objects. Rebuild workflows, sequences and reports manually.
What data doesn't transfer from HubSpot to Attio?
Emails and meetings do not transfer through Import2 or CSV, per Import2's supported objects page. They re-enter Attio through mailbox and calendar sync after migration. Workflows, sequences, reports, forms and property history also do not transfer. Calls are imported as notes, losing the call-specific metadata.
Is Attio's free Import2 migration enough, or do I need CSV/API?
Import2 handles most record types: companies, contacts, deals, notes, tasks, attachments and custom objects. CSV import fills two gaps: it works on all plans including Free (Import2 needs Plus or above), and it can import records into Attio lists, which Import2 cannot. The API is needed for notes and tasks if you skip Import2, and for any record transformation during migration.
What do I have to rebuild in Attio after leaving HubSpot?
Workflows, sequences, reports, forms and any dashboard. None of these are data objects, so none of them migrate. Export your HubSpot workflows as a spreadsheet to use as a rebuild checklist. Decide which workflows belong in Attio's native builder and which belong in an external orchestration tool like n8n based on complexity and cross-system requirements.
How do I avoid duplicates when moving from HubSpot to Attio?
Deduplicate in HubSpot before the migration, using HubSpot's built-in duplicate detection. Import2 matches companies by domain and contacts by email, per Import2, which catches exact matches but not fuzzy ones. Disconnect mailbox sync and delete existing Attio records before the run, per Attio's migration help, so Import2 creates fresh records with no conflicts.
What drives how long a HubSpot to Attio migration takes?
Four variables: record volume (more records means more reconciliation), custom objects (each needs a mapping decision and attribute review), automations (workflows and sequences rebuilt from scratch are the largest time block), and integrations (every tool connected to HubSpot needs a replacement connection). The data transfer itself is fast. The rebuild and verification are what determine the calendar.