HubSpot CRM Migration Process using Import2

Migrating data from one HubSpot portal to another using Import2

Definition of terms

Records - object records and activities against a record, such as contacts and notes. Example: a contact with 10 notes is counted as 11 records.

What will and will not be migrated

Import2 migrates:

  1. CRM records and their activities visible on the timeline
  2. Properties that don't exist in the destination portal yet, along with their corresponding values

Import2 doesn’t migrate:

  1. CRM setup, including templates, campaigns, email subscription types, Workflows, lists, pages, pipeline settings, etc. Use another tool like Portal Repliactor for this.
  2. Marketing status will not be migrated; you can change it post-import.
  3. Original source drill-down 1 and 2
  4. Latest source drill-down 1 and 2
  5. Form submission activities
  6. Ad activities
  7. Marketing email activities
  8. Pageviews
  9. Correct user attribution (ie ‘created by’ and ‘modified by’) of communication and team activities  including:
    1. Notes
    2. Tasks
    3. Meetings
    4. Calls
      Contact activities


  1. Set up necessary settings and users before import
  2. Start a free sample migration to test the process
  3. Perform a full migration once the sample migration is successful
  4. Review and fix any errors that may occur during the migration
  5. Conduct manual post-migration imports if needed

What to disable before import

  1. Disable ‘Create and associate companies with contacts’ in settings to avoid duplicate companies during import
  2. Ensure all Workflows are turned off before migration to prevent accidental triggers
  3. Disable Assign company owner to contact by default’ to avoid overwriting data imported by Import2

Preparation before import

  1. Manually add the same HubSpot users from the source portal to the destination portal before import

Test import

Test the migration with a free sample migration to check records and activities.

  1. Do a sample migration:
  2. Choose HubSpot from the dropdown. This will import records except for Tickets
    Start free sample migration import2
  3. Ticket import is a separate category - choose HubSpot Service Hub from the dropdown to import Tickets
    Importing tickets with import2
  4. Start the free sample
  5. Enter your email address to receive a sign-in link
    Enter your email address to receive a sign-in link import2
  6. Instead of using a password, Import2 provides a sign-in link that is sent to your email. This link is all you need to log in to Import2.
  7. Connect your source portal and destination portal
    1. IMPORTANT: make sure you triple-check that these are correct. You don't want to accidentally copy HubSpot data to the wrong portal.
      Import2 - onnect your source portal and destination portal
  8. Start a free sample migration
  9. Sample migration may take a few hours to complete. Once it’s done, you’ll see your record count when you run the free sample migration.
    Import2 total number of records
  10. The number of records will determine your subscription. In the example screenshot above, 183,446 records will fall under the ‘Premium’ package (link) which is 1,499 USD as of writing.
    Import2 pricing
  11. Once you’re ready to do the full migration, purchase the right package.

Prepare for the full import

Review errors

  1. Navigate to the errors tab of the Import2 Dashboard
    Import2 errors tab
  2. Check each error and make necessary fixes where applicable
    1. Each error is categorised according to the HubSpot object they belong to.
      Eg: Contact, Accounts (company), Opportunity (Deals), Emails, etc.
      Each error is categorised according to the HubSpot object they belong to
    2. The number next to it is the HubSpot records that were affected by this error. For example, this screenshot below affects 537 contact records
      Data validation error
    3. The most common error we noticed is the missing property value
      The most common error we notice is the missing property value
      1. In the screenshot above, you can easily fix this by adding a value/dropdown option for ‘Google search’ on the property ‘How did you hear about us’ on the destination portal. Make sure both the label and internal values match what’s on the source portal.
        Make sure both the label and internal values match what’s on the source portal
    4. There are other errors you can’t fix so don’t worry about them. eg:
      1. Virus on file
        Virus on file
      2. There is a limitation in HubSpot regarding email associations. You are only able to associate a maximum of 10,000 emails to a single record. It is important to note that these 10,000 emails may include internal emails sent between team members.
        email association limitations

Map out properties

  1. Navigate to the Settings > Configure field mappings
  2. There are some contact properties that Import2 doesn’t automatically map out so you’ll have to map them out manually:
    1. Lifecycle Stage
    2. Original source
    3. Latest source
    4. Status

Undo your previous sample migration

  1. Navigate to Imort2 Settings, and click undo migration
  2. Optional: start another Sample migration if the number of records and activities have been updated since your first sample migration (which is often the case if the portal is being actively used)
  3. Wait for the sample migration to complete (this may take a few hours to complete)
  4. Once done, review the errors again - chances are, there will be new errors if there are new records. Fix them per the process in this section.
  5. Next, undo your Sample migration again
  6. Once the migration has been completely undone, recheck your property mappings if they’re still in place. If not, set this up again per the process in this section

Final import

  1. Conduct a full migration - this may take up to 48 hours to complete.

After import

  1. There may be missing records after the import and this is oftentimes caused by the errors during import
  2. Review your errors tab again per this process in this section and fix where possible
  3. Once you’ve fixed the errors, contact Import2 support so that they can retry the migration of those records with errors.
    Please keep in mind that Import2 is located in the US, so if you are in a different time zone, it may take 1-2 business days for them to respond to your email.
  4. Once Import2 has retried the import and you still noticed some missing records, contact Import2 about it. You can quickly check this by comparing the number of records between the source portal and the destination portal.
  5. If you notice that the send-from name and email address on some transactional emails or one-on-one emails are incorrect, contact Import2 about it so they can fix the issue.

Workarounds for some issues

Here are some possible solutions, but it's up to you to decide whether to implement them or not.

Incorrect user attribution


Remove the assignee on all tasks to avoid confusion, and manually update the assignee later if necessary.

  1. Navigate to Sales > Tasks

  2. Filter tasks to show the ones that have incorrect assignees
    Filter tasks to show that ones that have incorrect assignee
  3. Select all records that have the incorrect assignee
    Select all records that has the incorrect assignee

  4. Edit
    Edit assignee

  5. Set assignee to no owner
    Set assignee to no owner

  6. Next, you can manually update the assignee later, one by one if needed


Check our process here on how to import notes from one HubSpot portal to another:

Email Subscription Types

  1. Create a list of each subscription type on the source portal then export them
  2. Import them to the destination portal and create a static list for each
  3. Create a workflow that will set their subscription type
    1. The trigger will include all of the static lists from the import that you completed in step 2:
      Enrolment trigger - static lists
    2. Add an if/then branch with a go-to action for each static list. The purpose is to subscribe them to the relevant email subscription types.
      Workflow if/then branch with Go to action
    3. Turn the Workflow on and enrol existing contacts who meet the enrolment criteria
    4. Once all contacts have completed the Workflow, turn that Workflow off again

Marketing email activities

  1. Create a custom report that shows all marketing emails that have been sent to each contact
    1. Use these two data sources:
      Use these two data sources
    2. Use a table chart
      Use a table chart
    3. Add these properties as columns:
      Add these properties as columns
    4. Navigate to Filters and update them where applicable. eg:
      Navigate to Filters and update them where applicable
    5. Export the report as a CSV file
    6. Tweak the CSV file to adjust how you want the logged email to be displayed. Here’s an example import file format you can use (link).
      1. Column A - contact’s email address
      2. Column B - preface of email description
      3. Column C - email’s internal name
      4. Column D - email’s sent date
      5. Column E - email’s subject line
      6. Column D - text that appears on the email body
    7. Once this is imported, you can see this in the activity timeline and you can also create a list based on the ‘Email body’ property if needed:
      Email body list filter