HubSpot to Attio migration: guide and checklist

Attio

CRM

16 minutes

HubSpot to Attio migration: guide and checklist

Migrating from HubSpot to Attio is not just about exporting contacts and then importing them into a new CRM. It involves deciding which data to keep, designing the target model, restoring associations between companies, contacts, and opportunities, rebuilding useful automations, and organizing the transition without disrupting sales activity. Having supported clients on Attio and on the redesign of their CRM systems, we find that the difficulty rarely comes from the volume of data alone: it comes mainly from accumulated fields, poorly documented processes, and different usages from one team to another. Here is the method to follow to prepare your HubSpot to Attio migration, choose the right import method, and make the new CRM a true source of truth.

Nadir BOUSSETTA

Updated on

LinkedIn

Should you actually leave HubSpot for Attio?

HubSpot and Attio are both CRMs, but they are not built on the same philosophy.

HubSpot offers a very broad suite that can combine sales management, marketing automation, forms, landing pages, customer support, content, and reporting. This coverage is appealing when a company wants to centralize a large part of its customer acquisition and relationships into a single platform.

Attio focuses more on the CRM, sales relationships, and customizing the data model. Its operation around objects, attributes, lists, views, and workflows allows the system to be adapted more freely to the company's activity.

A migration to Attio can be relevant when:

  • your team finds HubSpot too complex for its actual use;

  • you are paying for Hubs or features that are rarely used;

  • your sales model fits with difficulty into the current structure;

  • you want to create objects and relationships specific to your business;

  • the CRM needs to evolve quickly with your offers and processes;

  • your priority is sales management rather than a complete marketing suite.

On the other hand, the migration should be studied with caution if your business depends heavily on:

  • HubSpot forms and landing pages;

  • email marketing campaigns;

  • lead scoring;

  • advanced marketing workflows;

  • ticket management;

  • reports built from multiple Hubs.

Attio can replace the CRM part without necessarily replacing the entire HubSpot platform. Some functions will then have to temporarily remain in HubSpot or be transferred to other tools.

Before making a decision, also compare subscriptions and their limits in our guide dedicated to Attio pricing in 2026.

What can be migrated to Attio

The scope depends on your HubSpot instance and the chosen migration method.

The most commonly migrated elements are:

  • contacts;

  • companies;

  • sales opportunities;

  • owners;

  • custom properties;

  • associations between objects;

  • notes;

  • tasks;

  • certain files;

  • custom objects.

Other elements usually need to be rebuilt or handled separately:

  • workflows;

  • sequences;

  • forms;

  • landing pages;

  • marketing campaigns;

  • scoring rules;

  • dashboards;

  • permissions;

  • integrations;

  • certain historical activities.

The goal is therefore not necessarily to replicate 100% of HubSpot in Attio.

Before you start, classify the elements of your CRM into five categories:

  1. to be migrated without modification;

  2. to be cleaned before migration;

  3. to be transformed to match the new model;

  4. to be rebuilt in Attio or in another tool;

  5. to be archived or deleted.

This first decision avoids spending time on transferring data and processes that no longer create any value.

The three migration methods

Attio offers three main approaches: migration with Import2, importing CSV files, and using its API. The official Attio migration guide should be consulted before launching the project, as the scope of the tools may evolve.

Method

Suitable when

Main advantage

Point of attention

Import2

You want to replicate HubSpot fairly closely

Recovery of many objects and histories

Less suited for a deep redesign

CSV

You want to clean and restructure the data

Precise control of imported fields

Certain activities are not recovered

API or script

The migration requires complex transformations

Total control and replayable process

Development and testing required

Using Import2

Import2 is the integrated migration service offered by Attio on its paid plans. HubSpot is one of the supported CRMs.

It can notably migrate:

  • companies;

  • people;

  • deals;

  • custom objects;

  • notes;

  • tasks;

  • files.

The process begins with a sample import. You can check the result, modify the mappings between fields, and then launch the full migration.

This method is suitable when a company wants to find a significant part of HubSpot's structure and history in Attio.

However, it does not replace the scoping work. Import2 cannot decide:

  • which fields are still useful;

  • which data is obsolete;

  • which pipeline stages should be deleted;

  • which properties should be merged;

  • which automations need to be rebuilt.

Watch out for data already present in Attio

Import2 creates new records, but does not automatically complete the attributes of files already created in Attio.

Yet, the synchronization of email inboxes can automatically create people and companies. If you connect all email accounts before the migration, some of the files may therefore already exist in Attio.

Attio recommends, when records have already been created by synchronization, to temporarily disconnect the inboxes, process or delete those files, perform the migration, and then reconnect the accounts.

The order of operations must therefore be defined before opening Attio to the entire team.

Importing CSV files

CSV import is particularly suitable when the migration also serves to clean up and restructure the CRM.

The process consists of:

  1. exporting objects from HubSpot;

  2. cleaning the files;

  3. transforming the values;

  4. creating the target model in Attio;

  5. importing the objects in the correct order;

  6. verifying associations and volumes.

This method allows you to precisely select the data that will enter Attio. You can, in particular:

  • delete unused fields;

  • harmonize values;

  • merge multiple properties;

  • exclude obsolete contacts;

  • correct owners;

  • simplify pipeline stages;

  • keep only the necessary history.

It is less suited to recovering a rich activity history. Attio's native CSV import notably does not allow importing notes. However, it is possible to use CSV for records and Import2 for certain activities.

Using APIs

An API migration becomes relevant when the data must undergo transformations that are difficult to manage in CSV files.

A script can, for example:

  • loop through HubSpot data;

  • merge multiple properties;

  • normalize values;

  • look for duplicates;

  • create objects in a precise order;

  • rebuild associations;

  • log each operation;

  • import only modified records;

  • retry errors without restarting the entire migration.

Make or n8n can also be used for a targeted transfer or a temporary synchronization. For a complex and one-off migration, a versioned script often offers more control and recovery options.

The most technical method is not necessarily the best. A well-prepared CSV import will often be more reliable than an unnecessarily complex script.

Step 1: Audit your HubSpot instance

A migration starts with a clear understanding of what you are leaving behind.

Do not limit yourself to the number of contacts. You need to identify how HubSpot is actually used and all the dependencies created around the CRM.

List objects and volumes

List the objects used:

  • contacts;

  • companies;

  • deals;

  • tickets;

  • products;

  • quotes;

  • subscriptions;

  • custom objects.

For each, indicate:

  • the total number of records;

  • the number of still active records;

  • the number of properties;

  • the associations used;

  • the priority level for migration.

A simple table helps frame the decisions:

HubSpot Object

Volume

Usage

Decision

Contacts

18,400

Active

Clean then migrate

Companies

4,200

Active

Migrate

Deals

2,850

Active

Migrate recent years

Tickets

6,300

Low

Archive

Old custom object

740

Unused

Abandon

Inventory properties

Export standard and custom properties for each object.

For each property, ask four questions:

  • Is it still being updated?

  • Is it used in a view, a report, or a workflow?

  • Is it understood by the users?

  • Should it be migrated to Attio?

Many fields were created to meet a temporary need and then forgotten. Migrating them automatically would immediately clutter the new CRM.

Document associations

A HubSpot contact can be associated with a company, multiple opportunities, tickets, activities, or custom objects.

Also document more specific relationships:

  • parent and subsidiary company;

  • partner and final client;

  • contact linked to multiple companies;

  • multiple contacts on a deal;

  • role of each contact in an opportunity.

HubSpot allows exporting properties and associations of its records. Check the available options in the official HubSpot export documentation.

Map out automations

For each active workflow, document:

  • the trigger;

  • the conditions;

  • the actions;

  • the objects involved;

  • the external tools used;

  • the owner;

  • the level of criticality.

Then classify the automations:

Category

Decision

Essential

To be rebuilt before the switchover

Useful

To be rebuilt in a second phase

Obsolete

To be abandoned

Perform the same exercise for integrations: forms, prospecting, billing, support, enrichment, electronic signature, calendar, or reporting.

Step 2: Design the target model in Attio

Do not replicate HubSpot identically.

A migration is often an opportunity to simplify a CRM that has become too complex over successive additions.

Start by defining the objects that are actually necessary. The standard People, Companies, and Deals objects can be supplemented with custom objects depending on the Attio plan used.

Depending on your activity, you could create objects such as:

  • Subscriptions;

  • Contracts;

  • Partners;

  • Investments;

  • Portfolios;

  • Renewals;

  • Applications.

For each object, define:

  • its purpose;

  • the users involved;

  • the necessary attributes;

  • its relations with other objects;

  • its creation and archiving rules;

  • the expected lists and views.

Distinguish between objects, attributes, and lists

Not all information needs to become an object.

An object represents a durable category of records. An attribute describes a record. A list allows you to track a process or a subset of records in a particular context.

Before creating a new object, ask yourself if the information actually corresponds to:

  • a durable business entity;

  • a characteristic of a record;

  • a relationship;

  • a step in a process;

  • a simple filtered view.

This reflection prevents replacing a complex HubSpot instance with an Attio workspace that is just as difficult to maintain.

At HyperOps, we start with use cases before building the structure. The model must allow users to easily answer concrete questions:

  • Which opportunities do I need to follow up on?

  • Which deals are at risk of not closing this month?

  • Who is responsible for this account?

  • Which clients are up for renewal?

  • What information must be handed over after signing?

The CRM must serve these use cases, not accumulate data without a clear purpose.

Step 3: Clean up and map the data

Do not automatically migrate all data present in HubSpot.

Take advantage of the project to handle:

  • duplicates;

  • contacts without actionable information;

  • companies with no activity for several years;

  • old owners;

  • unused picklist values;

  • fields that are always empty;

  • abandoned pipelines;

  • test records.

Define rules before any deletion and keep a complete, unmodified export of HubSpot. This will provide you with a backup and a source of comparison.

Build the mapping table

The mapping table describes the correspondence between HubSpot fields and Attio attributes.

HubSpot Field

Attio Attribute

Target Type

Transformation

First name

First name

Text

None

Last name

Last name

Text

None

Email

Email address

Email

Convert to lowercase

Company domain

Domain

Domain

Remove protocol

Contact owner

Owner

User

Match by email

Dealstage

Stage

Status

New nomenclature

Amount

Amount

Currency

Currency normalization

HubSpot Record ID

HubSpot ID

Text

Keep raw

For each field, also specify:

  • if it is required;

  • the default value to use when empty;

  • the rule applied to unknown values;

  • the person responsible for validating the mapping.

Keep HubSpot IDs

Add an attribute in Attio containing the HubSpot ID of each migrated record.

This identifier will facilitate:

  • quality checks;

  • discrepancy searches;

  • partial re-imports;

  • API migrations;

  • comparison between the systems.

However, it does not automatically become a deduplication key for all objects.

Depending on the record type and import method, matching could notably use:

  • the email address for a person;

  • the domain for a company;

  • an Attio ID;

  • a unique attribute;

  • specific logic developed via API.

Prepare owners

HubSpot users must be mapped to Attio members.

HubSpot Owner

Attio User

Action

commercial1@entreprise.fr

commercial1@entreprise.fr

Keep

ancien@entreprise.fr

manager@entreprise.fr

Reassign

No owner

Leave empty

Invite the necessary members into Attio before the import if owners need to be assigned during the migration.

Step 4: Conduct a pilot import

Never start with the entire database.

Select a representative sample containing:

  • companies with multiple contacts;

  • contacts associated with multiple deals;

  • open and closed opportunities;

  • different pipeline stages;

  • multiple owners;

  • various picklist values;

  • empty fields;

  • a few known duplicates.

A sample of 50 to 100 records per object is usually enough to identify the main issues.

After the import, check:

  • attribute types;

  • special characters;

  • date formats;

  • currencies;

  • owners;

  • associations;

  • selection values;

  • duplicates;

  • views and filters;

  • any automations that might have been triggered.

Correct the model, files, or mapping, and run the pilot import again until you get a reliable result.

Step 5: Migrate pipelines and automations

HubSpot pipelines should not be replicated without reflection.

Use the migration to check:

  • if each stage represents actual progress;

  • if the entry criteria are clear;

  • if some stages can be merged;

  • if multiple pipelines are still necessary;

  • if probabilities are consistent;

  • if opportunities stay too long without action.

For each stage, document its definition, required information, expected actions, and exit criteria.

When importing deals, control at least:

  • the name;

  • the amount;

  • the currency;

  • the stage;

  • the close date;

  • the owner;

  • the associated company;

  • associated contacts;

  • the won or lost status.

Reconcile the pipeline

After the import, compare key indicators between the two CRMs.

Check

HubSpot

Attio

Discrepancy

Open deals

187

187

0

Pipeline value

€1,280,000

€1,276,000

-€4,000

Deals won this year

96

96

0

Revenue won this year

€845,000

€845,000

0

A discrepancy may indicate a missing deal, a misinterpreted currency, a duplicate, or bad stage mapping.

Rebuild only useful automations

HubSpot workflows do not transfer like simple data. They must be recreated in Attio or in a connected tool.

Do not replicate them automatically.

An automation may have been created to compensate for:

  • a poor data model;

  • an unnecessary step;

  • a poorly designed field;

  • unclear responsibility;

  • an old integration.

Start with essential automations: assigning owners, creating tasks, notifications, follow-ups, handing over information after signing, and syncing with other tools.

Test them before the switchover and make sure they won't trigger unnecessarily on all imported historical records.

Step 6: Manage emails and activities

Attio can sync emails and events present in connected Gmail and Microsoft 365 inboxes. The sync recovers available history and then continues to pull in new interactions. The precise rules are detailed in the official Attio email sync documentation.

However, we must distinguish between:

  • emails still in inboxes;

  • activities logged only in HubSpot;

  • calls;

  • notes;

  • tasks;

  • files;

  • events from other tools.

Items present only in HubSpot will need to be imported via Import2, handled separately, or kept in an archive.

Connect inboxes at the right time

When using Import2, avoid connecting all inboxes before migration.

The recommended order is usually as follows:

  1. check records already present in Attio;

  2. temporarily disconnect inboxes if necessary;

  3. process already created people and companies;

  4. perform the migration;

  5. verify the result;

  6. connect or reconnect inboxes;

  7. configure sharing and privacy rules.

Email bodies remain private by default in Attio, but sharing settings should still be explained to users.

Step 7: Prepare the final switchover

A complete migration must be practiced before the production launch date.

Organize three steps.

The pilot import

It validates the model, files, and mapping on a sample.

The dry run full migration

It allows you to measure:

  • import duration;

  • the number of errors;

  • volume discrepancies;

  • association issues;

  • necessary corrections;

  • time required for checks.

The final migration

Define a switchover window during which edits in HubSpot will be frozen or strictly limited.

Data created or modified after the dry run migration will need to be handled via a delta import. You will need to define:

  • the last modified date;

  • the objects involved;

  • the matching key;

  • how to handle new associations;

  • behavior in case of conflict;

  • the team members responsible for verification.

By the end of this step, Attio must become the sole source of truth for the teams involved.

Avoid a prolonged period of dual entry. Running two active CRMs in parallel quickly creates discrepancies that are difficult to reconcile.

Step 8: Monitor and drive Attio adoption

Validation should combine quantitative and qualitative checks.

Specifically compare:

  • the number of records per object;

  • the number of contacts and companies;

  • the number of open deals;

  • the pipeline value;

  • distributions by stage;

  • distributions by owner;

  • the number of import errors.

Also manually review a sample including key accounts, the largest deals, multiple owners, and records with complex associations.

Discrepancies are not always errors. They can result from deleting duplicates, excluding obsolete contacts, or archiving old deals. They simply need to be documented.

Train teams by use case

A technically successful migration can fail if teams do not understand the new operations.

Training must start from daily actions:

  • creating an opportunity;

  • preparing for a meeting;

  • updating a stage;

  • finding next steps;

  • following up on a lead;

  • preparing a pipeline review;

  • handing over a client after the signature.

Also define simple conventions on deal naming, mandatory fields, company creation, and duplicate handling.

At HyperOps, adoption is thought out from the CRM design phase. The system must remain simple enough to be used without constant policing, and structured enough to produce reliable data.

Finally, plan a review a few weeks after the switchover to adjust views, delete unused attributes, improve workflows, and complete documentation.

HubSpot to Attio Migration Checklist

Before validating the switchover, make sure that:

  • HubSpot objects, volumes, and properties have been audited;

  • associations, workflows, and integrations have been documented;

  • a full export of HubSpot has been archived;

  • duplicates and obsolete data have been processed;

  • the Attio data model has been validated;

  • the migration method has been chosen;

  • the mapping table has been completed;

  • HubSpot IDs have been preserved;

  • users and owners have been mapped;

  • a pilot import has been checked;

  • critical pipelines and automations have been rebuilt;

  • volumes and amounts have been reconciled;

  • the email sync strategy has been defined;

  • a complete dry run migration has been completed;

  • the import of final edits has been prepared;

  • users have been trained;

  • Attio has been defined as the source of truth post-switchover;

  • a post-migration review is scheduled.

Need help migrating to Attio?

HyperOps supports teams in auditing their CRM, designing the target model, preparing data, configuring Attio, rebuilding automations, and driving adoption of the new system.

Our support can focus on scoping and securing your method, or cover the entire migration depending on the resources available internally.

Discover our approach on our Attio Agency and CRM Implementation and Redesign pages, or tell us about your project.

Frequently Asked Questions on HubSpot to Attio Migration

How long does it take to migrate from HubSpot to Attio?

The duration depends more on the complexity of the CRM than on the number of contacts. A migration including contacts, companies, and a simple pipeline can be completed in a few weeks. Multiple Hubs, custom objects, integrations, and automations require more preparation and testing.

Should you use Import2 or CSV files?

Import2 is suitable for a fairly faithful recovery of HubSpot, especially when you want to keep notes, tasks, or files. CSV is better suited when the priority is to clean and restructure data. Complex cases may require an API migration.

Can we migrate the email history?

Attio can retrieve emails present in connected Gmail or Microsoft 365 inboxes. Activities only recorded in HubSpot must be imported using the chosen migration method or kept in an archive.

Can we keep certain features in HubSpot?

Yes. A company can migrate its sales CRM to Attio while temporarily keeping certain marketing features in HubSpot. However, it is necessary to define which tool is responsible for each data point and to avoid uncontrolled duplicate updates.

Can we migrate without interrupting business activity?

Yes, provided you carry out a dry-run migration, prepare a short cutover window, and import the data modified since the last test. The key point is to precisely define the moment when Attio becomes the sole CRM used by the teams.

Need to go further on this topic?

Explain to us how you operate and the difficulties you are facing. No need for specifications: a few pieces of context are enough to get started.