Loading tutorials…
Loading tutorials…
Migrating from HubSpot to Attio is the most common Attio onboarding story in 2026. It is also the most-bungled. Lost activity history, broken workflow logic, half-migrated lists. Here is the playbook that gets you to a clean Attio workspace without the cleanup nightmare.
Who this is forOps leads, RevOps owners, and founders planning a HubSpot → Attio migration — whether triggered by HubSpot pricing pain, missing flexibility, or product-led growth motion outgrowing HubSpot's opinions. Especially relevant at the 10-50 person inflection point.
What you'll need
Step 1
Inventory everything: objects, properties, workflows, lists, sequences, integrations. Decide what migrates, what gets archived, what stays in HubSpot.
Export the property list per object: Settings → Properties → Export. You get a CSV of every property with type, group, and description.
Export the workflow inventory: Automation → Workflows → filter Active → export the list. Document each workflow: name, trigger, conditions, actions, last edit date, owner.
Export the list inventory: Contacts → Lists → export the active list metadata (name, type, count, last updated).
Export the sequence inventory: Sales tools → Sequences → list with last-modified date and active enrollment count.
Identify integrations: Marketplace → Connected apps → list active connections. Note what data each writes/reads.
Tag each item with 'Migrate,' 'Archive,' or 'Replace.' Most workspaces find 30-50% of their HubSpot state is stale and should not migrate.
Step 2
HubSpot Contact → Attio Person. HubSpot Company → Attio Company. HubSpot Deal → Attio Deal. Custom objects → Attio custom objects. Properties → Attributes.
Build a mapping spreadsheet: HubSpot object/property in column A, Attio object/attribute in column B, attribute type in column C, notes in column D.
Default standard mappings: HubSpot Contact → Attio People. Company → Companies. Deal → Deals. Ticket → consider a custom Ticket object in Attio if you still need it.
Property type mapping: HubSpot Single-line text → Attio Text. Multi-line → Rich text. Dropdown select → Select. Multiple checkboxes → Multi-select. Number → Number. Currency → Currency. Date picker → Date. Datetime → Date + time.
Lifecycle stage: HubSpot has a fixed list; in Attio, create a Status attribute on Person with your stages (subscriber, lead, MQL, SQL, opportunity, customer, evangelist, other).
Document any property that does NOT have a direct Attio equivalent. Common gaps: HubSpot Score (re-implement as a Number attribute fed by a workflow), HubSpot smart properties (re-implement as workflows).
Step 3
Three patterns. Pick based on data volume, team size, and risk tolerance. Document the choice + the dates.
Hard cutover: pick a date, freeze HubSpot edits, do the full migration over a weekend, go live in Attio Monday. Best for under 5K records, simple workflows, small team. Risk: any data issue is visible immediately.
Parallel run: run both HubSpot and Attio for 4-8 weeks. Both teams update both systems. End the parallel run by deprecating HubSpot. Best for medium complexity. Risk: rep fatigue, double data entry.
Phased rollout: migrate one team or object at a time. Sales team to Attio in week 1, marketing team in week 4, CS team in week 8. Best for large teams (30+ reps) with team-specific workflows. Risk: temporary fragmentation.
Most teams under 30 reps pick hard cutover or short parallel run. Over 30 reps usually need phased.
Document the chosen strategy + the freeze date + the cutover date in writing to all stakeholders.
Step 4
Companies first, Contacts second, Deals third. Activities (notes, calls, emails, meetings) last. Same import order on the Attio side.
HubSpot → Contacts → top-right Actions → Export. Use CSV format. Include ALL properties (no filters). Same for Companies and Deals.
For activities (notes, calls, emails, meetings): HubSpot does not have a one-click activity export. Use the HubSpot API or a third-party migration tool to extract.
For sequences (in-flight emails): document active enrollment counts. Sequences themselves do not migrate cleanly — plan to rebuild in Attio.
For workflows: do not attempt to migrate workflow logic via export — it does not transfer. Document workflow logic and rebuild in Attio Workflows.
For files / attachments: HubSpot stores file links per record. Files themselves stay on HubSpot CDN; you need to download + re-upload to Attio if you want them in Attio.
Step 5
Workspace settings → Imports → start with Companies → then People → then Deals → then activities. Each preceded by a 20-row test batch.
Companies first. Map the CSV columns to Attio attributes. Test on 20 rows. Verify dedup works (root domain match) and attributes populate. Then run the full import.
People second. Include the Company domain column on every row — Attio will auto-associate the Person with the matching Company.
Deals third. Include the Company domain + Person email columns. Attio links the Deal to both based on these matches.
For activities: use the Attio API (`POST /v2/objects/{object}/records/{record}/activities`) to load notes, calls, emails, meetings against the correct records.
After each object imports, spot-check 10 random records. Are properties populated? Are associations correct? Did dedup work? Anything weird now is going to be weird forever — fix at import time.
Step 6
Logic does not transfer. Use the documented inventory (from step 1) as a checklist to rebuild in Attio.
Workflows: open the HubSpot workflow inventory from step 1. For each "Migrate" workflow, build the equivalent in Attio (Sidebar → Workflows). Match triggers + conditions + actions.
Sequences: rebuild in Attio using Lists + scheduled Workflows. See the lists + pipelines tutorial in this series.
Integrations: reconnect each native integration in Attio (Workspace settings → Integrations). For HubSpot-only integrations (rare), use Zapier or Make as a bridge.
Views and reports: open the HubSpot saved-list inventory. For each 'Migrate' view, build the equivalent Attio view (filters, sorts, group-bys). See the views tutorial.
Validate each rebuilt asset by running it against the migrated data. If a workflow produced 200 events/day in HubSpot, the Attio equivalent should produce ~200/day in the first week.
Step 7
Spot-check data, validate workflows fire correctly, train reps on Attio UI + new processes, communicate the cutover date.
Pre-cutover data validation: pick 20 high-value accounts. Compare HubSpot vs Attio: same Contacts? Same Deals? Same activity history? Same custom properties? Document any gaps.
Workflow validation: trigger each migrated workflow manually on a test record. Verify the action fires correctly and writes to the right place.
Train reps: run a 60-90 minute session covering the data model differences, the new UI, the new workflow names, where their saved views are. Record it for new hires.
Cutover: announce the date in writing 7+ days before. Freeze HubSpot edits 24 hours before cutover. Run final delta export/import the morning of cutover. Go live in Attio.
Post-cutover: keep HubSpot in read-only mode for 30-60 days as a fallback. Quarterly: archive the HubSpot portal once fully decommissioned.
Common mistakes
Migrating without a pre-migration audit (just exporting + importing)
What goes wrong: Stale workflows, abandoned properties, dead lists, dormant integrations all get carried into Attio. The new workspace is the old mess. The whole point of migration was to start clean — instead you have HubSpot's debt in a new house. Six months later you migrate again, more carefully — paying the $2-5K migration cost twice plus weeks of team disruption each time.
How to avoid: Always run the pre-migration audit (step 1). Tag every item Migrate / Archive / Replace. Most teams archive 30-50% of HubSpot state during migration.
Importing in the wrong order (Deals before Companies)
What goes wrong: Deals get imported but cannot link to Companies that do not exist yet. Half your Deals end up orphaned. Account-level revenue reports are wrong. You spend a week running cleanup CSVs to back-fill the links — roughly $3-5K of operator time, plus a week of leadership flying blind on pipeline.
How to avoid: Always: Companies → People → Deals → Activities. Each preceded by a 20-row test batch. Verify dedup + association on the test before running full.
Forgetting activities (notes, calls, emails, meetings)
What goes wrong: Records migrate cleanly but lose all activity history. Reps open an account in Attio and see no context — no past calls, no email threads, no meeting notes. Trust in the new CRM collapses in the first week.
How to avoid: Use the Attio API to migrate activities after records are in place. For 1,000+ activities, use a third-party migration tool or specialist. Activity history is the most-felt part of the migration.
Trying to migrate workflows or sequences via export
What goes wrong: Workflow logic does not transfer between platforms. You discover this on day 1 of cutover when nothing fires. Reps are confused, marketing handoff stops working, leadership asks why MQLs are not being routed.
How to avoid: Document workflow + sequence logic in advance (in the audit). Rebuild in Attio using the documentation as a spec. Do not assume any logic transfers — assume none does.
Cutover during fundraise / end-of-quarter / major reorg
What goes wrong: Migration takes 50% longer than planned because the team is distracted. Critical bugs discovered too late. Revenue events (closes, renewals) happen during the wobble and get logged in the wrong place. Recovering data + trust takes months — easily $20-50K in distraction cost plus the original migration spend you now have to extend.
How to avoid: Pick a quiet quarter or post-fundraise window. Block the cutover date on every stakeholder calendar. Communicate the freeze 7+ days ahead.
No HubSpot read-only fallback period after cutover
What goes wrong: You delete the HubSpot portal the week after cutover. Two weeks later you discover a custom property nobody noticed was missing. Or an activity that did not migrate. There is no fallback — the data is gone.
How to avoid: Keep HubSpot in read-only mode for 30-60 days post-cutover. Audit weekly for gaps. Only fully decommission after 60 days of clean Attio operation.
Recap
Done — what's next
How to set up an Attio workspace without painting yourself into a corner
Read the next tutorial
Hand it off
Most HubSpot → Attio migrations under 5K records can be done DIY in 2-3 weeks with discipline. Anything over 10K records, with custom objects, lots of activity history, or 20+ workflows, should engage a specialist. The cost of bad migration (lost data, broken workflows, rep distrust) is typically 5-10x the cost of doing it right. EverestX migration specialists run $1,500-5,000 for the full project at $14-16/hr.
See migration specialist rates
Depends on data volume and complexity. Under 5K records + simple workflows: 1-3 weeks. 5K-25K records + moderate customization: 4-8 weeks. 25K+ records + custom objects + 20+ workflows: 8-16 weeks. Add 50% if you have not run the pre-migration audit; subtract 25% if you engage a specialist who does this regularly.
Activities (emails, meetings, calls, notes) require API-based migration — they do not come through the CSV exporter. If you do not migrate activities explicitly, records will show no history in Attio. Use the Attio Activities API or a migration tool. For 1,000+ activities, this is the part where specialists earn their fee.
Yes — many teams keep HubSpot for marketing automation (emails, forms, landing pages) while moving sales/CRM to Attio. The HubSpot ↔ Attio connector (native or via Zapier) syncs Contact data both ways. Common pattern: marketing in HubSpot generates MQLs, MQLs flow to Attio as People with Lifecycle = MQL, sales works in Attio.
In-flight sequence enrollments stop when you decommission HubSpot. Document active enrollments before cutover, pause them in HubSpot, then rebuild the sequences in Attio and re-enroll contacts post-cutover. This is the single biggest source of 'oh no we forgot' issues — plan for it explicitly.
Yes — Attio supports custom objects on Plus/Pro. Map your HubSpot custom object to a new Attio custom object (Workspace settings → Objects → Create object), map the properties to attributes, export the records via the HubSpot API or CRM Exports, import as CSV. Test on 20 rows before running full.
Three cases: (1) You rely heavily on HubSpot Marketing Hub features (Smart Content, A/B testing, ABM playbooks) that Attio does not replicate — keep both. (2) You have a deep custom-code investment in HubSpot (custom apps, Operations Hub data quality, CMS custom modules) — migration cost outweighs benefit. (3) Your team has just stabilized in HubSpot after a recent rough patch — give it a year before disrupting again.
Attio
Attio is the modern, fast, Notion-influenced CRM that B2B SaaS teams are picking when HubSpot starts feeling rigid. It's also easy to break in the first month — wrong workspace name, wrong currency, wrong member roles, wrong billing seat plan. Here is the setup sequence that holds up.
Attio
Attio's data model is its superpower and its trap. Anything is customizable; that means anything is also rewritable into a mess. Get the objects, attributes, and relationships right up front and the rest of the workspace (workflows, views, reports) glides. Get them wrong and you rebuild every 90 days.
HubSpot CRM
HubSpot's Smart CRM is free, fast to spin up, and easy to break in the first month. Most owners skip the account-level defaults, invite users with the wrong permission sets, and end up rebuilding 60 days in. Here is the setup sequence that holds up.
Attio
DIY Attio is a great idea — until it isn't. This is the honest framework for when the cost of self-managing exceeds the cost of hiring help, and how to tell which side you are on.