Written by: Doug Camplejohn, CEO & Co-Founder, Coffee
Key Takeaways For A Safe Hubspot Migration
- Migrating from HubSpot requires Super Admin export permissions, sequential CSV exports of all objects, and a detailed field-mapping document before re-import.
- Export in parent-before-child order, moving companies, contacts, deals, then activities, and validate record counts and associations before decommissioning the source portal.
- HubSpot does not export associations, engagement history, historical property values, or pipelines; teams must document and rebuild these in the destination system.
- Plan for 4–9 months depending on data volume, integration count, and data quality issues discovered during the pre-migration audit.
- Coffee offers both a Companion App for HubSpot and a Standalone AI-First CRM to remove manual data entry after migration.
See Coffee’s Plans For Migration-Ready Teams
Should You Migrate Or Stay? Decide Before You Export
Decide whether you are leaving HubSpot, consolidating portals, or staying and fixing data before you export anything.
- Leave Hubspot entirely. The platform’s data model, pricing, or feature set no longer fits your team. You accept the cost and risk of a full replatform.
- Move between Hubspot portals. You are consolidating regional portals, separating a business unit, or inheriting a portal after an acquisition. There is no native tool for this, so you need a third-party migration tool or a custom API build.
- Stay on Hubspot and fix the data problem. The platform works, but manual data entry has degraded quality so badly that reporting is unreliable and reps distrust the system.
Migration carries real expense and risk and often solves the wrong problem. OneMetric’s September 2026 migration guide describes the most expensive mistakes as architecture errors around identifiers, field definitions, ownership, and automation that teams never decided before data began moving. VT Netzwelt advises that if you cannot name three things that will be measurably better in the destination system, you are not ready to migrate; cost pressure alone supports renegotiating, not replatforming.
Write down which fork you are in before you start any export work.
Pre-Migration Audit And Permissions: What To Inventory First
Once you have picked your fork, confirm you can get data out and know exactly what you have. Hubspot users need Export permissions to export CRM records, and a missing Export button means the admin has not granted that permission. When you use OAuth with Hubspot’s Exports API, the installer must be a Super Admin to grant the crm.export scope. Hubspot also offers an optional export approval workflow where a Super Admin can require exports to be approved by someone with the Exports Approver permission.
Before any data moves, inventory the following:
- Contacts, companies, deals, and tickets, including record counts per object
- Custom objects, checked via Settings > Objects > Custom objects
- Custom properties, exported via Settings > Properties > Download, capturing name, internal name, type, description, group, options, and fill rate
- Workflows, exported as a spreadsheet listing name, status, enrollment counts, and created or modified dates
- Static and active lists
- Integrations, with each tool’s data flows, owner, and endpoint documented
- Record ownership, including records owned by deactivated users and reassignment rules
- Destination readiness, confirming pipelines, lifecycle stages, and custom properties exist in the target system before import
- Backup plan, including rollback trigger conditions before cutover
A critical dependency is activity and engagement data. Activity and engagement data exports separately from object records. The standard UI export covers object properties, while calls, emails, meetings, and notes require a separate export path.
Action: Confirm your permission level and export the custom property definition list via Settings > Properties > Download.
How To Export All Data Out Of Hubspot
Export records from the object’s index page such as contacts or deals. Open the view you want, then click Export in the top right of the table. In board view, use Board options > Export view. Choose your file format and click Export. Select “All properties and associations on records,” because the default export includes only the properties and associations visible in the current view.
- Contacts, Companies, Deals, Tickets. Export from each object’s index page in CSV, XLSX, or XLS format. CSV works best because the “All associated records” export option, which removes the 1,000-association-per-column cap, is only available for CSV files.
- Custom objects. Custom objects cannot be exported via the standard UI export. Use the Hubspot API (
GET /crm/v3/objects/{customObjectType}), Hubspot Data Sync, or third-party connectors such as Airbyte or Fivetran. - Engagement data. Engagement records such as calls, emails, meetings, notes, tasks, and form submissions live in a timeline separate from the contact record and cannot be exported via the standard UI export. They require the API endpoint
GET /crm/v3/objects/engagements, the custom report builder on Professional or Enterprise, or a third-party connector. - Tasks. Tasks export separately from the task view with task properties, association names, and associated record IDs, in CSV by default.
These export limits shape how you schedule and sequence jobs. Hubspot splits large exports into multiple files when CSV or XLSX files exceed 1,000,000 rows, or XLS files exceed 65,535 rows, and CSV files larger than 2 MB are automatically compressed into a ZIP archive. Only one export job runs at a time, with a limit of 30 exports per rolling 24-hour window, so plan export order before you start. Association columns are capped at 1,000 associated record IDs by default, although the CSV “All associated records” option removes this cap. The download link expires after 30 days, so run exports close to import day.
Action: Run a test export on one object and confirm the row count matches your index page total before you proceed.
What Data You Cannot Export From Hubspot
Several critical data types do not travel cleanly out of HubSpot and often cause migration failures.
Association loss. Hubspot stores associations in a separate association graph data layer, not inside individual records. A contact can be associated with a company, a deal, and a ticket at the same time, but none of those links travel with the contact when you export it to CSV. One RevOps team that migrated 40,000 contacts from HubSpot found that not a single deal-to-contact link survived day one, even though contacts, companies, and deal stages exported and mapped cleanly.
Engagement and activity history. Hubspot’s export documentation states that sales activity data such as notes, logged emails, and meetings is obtained by creating reports with the custom report builder or using Hubspot’s Engagements API. Kevin Bluett, co-founder of Ahoy, explains that “The record export is designed to move records, and the activity layer was never designed to move anywhere.”
Historical property values. Hubspot bulk exports return only current property values, and historical values are available only through the single-contact export, one contact at a time. Hubspot also stores only the current value of the Lifecycle Stage field, not its change history.
Data With No Direct Export
- Association labels such as “Decision maker” or “Billing contact,” which must be documented from the settings screen and re-created in the target system before import
- Pipeline stage order, win probabilities, and pipeline membership, where pipelines must be screenshotted and rebuilt with identical stage names in the target system before importing deals
- Sequences, email templates, and snippets, which have no export in Hubspot’s knowledge base, so teams copy active ones into a shared document by hand
- Workflow performance data, because workflow exports do not include performance data or workflow history
- GDPR and consent fields such as “Email opt-out,” “Legal basis for processing,” and “GDPR consent,” which are not included in Hubspot’s default export columns and must be added explicitly
Action: Count associations per parent record. Practitioners advise counting associations per parent record in the source export and restructuring or splitting records before import if needed. Flag anything close to the 1,000-per-column cap and plan to use the Associations API batch-read endpoints for a complete picture.
Field Mapping And Re-Import: The Table That Decides Your Migration
A complete mapping document keeps your import predictable and prevents silent data loss. HubXpert’s migration guidance requires a data mapping document covering source object, source field, Hubspot object, Hubspot property, property type, and transformation rules for every field before migration begins.
| Source Field (Hubspot) | Destination Field | Destination Object | Handling Note |
|---|---|---|---|
| Contact | Contact | Contact | Use email as unique key; lowercase and trim before import |
| Company | Account | Account | Use domain as dedup key; import before Contacts |
| Deal | Opportunity | Opportunity | Import after Contacts and Companies; map pipeline stages explicitly |
| Lifecycle Stage | Lead Status or custom field | Contact | Export current value only; history is not recoverable |
For custom properties with no destination equivalent, create the property in the destination system before import. Custom properties that do not exist at import time are silently dropped, with no error-file row for missing properties and only blank fields after load.
Three mapping conflicts appear in nearly every migration and each one needs a clear rule. Type mismatches such as a source text field mapped into a destination picklist require either value normalization or a new free-text field. Field gaps, where a source field has no destination equivalent, require either a new destination property or a decision to archive that data. Naming conflicts such as a source “Account Owner” and a destination “Contact Owner” require explicit ownership rules so records do not attach to the wrong user.
Validate the mapping with a 500–1,000 record test import before you commit the full dataset. Xynario’s April 2026 migration guide recommends a test migration on a sample of 500 to 1,000 records across each object type to validate field values, associations, and duplicate handling before errors affect the full dataset.
Troubleshooting Callout:
- Duplicate records: Use email for contacts and domain for companies as dedup keys. Hubspot uses email as the contact unique key and Company Domain Name as the company dedup key, so duplicates in the source collapse on import and history can attach to the wrong record.
- Missing required fields: Hubspot rejects records missing a required property, so if a source CRM has 800 contacts with no email address and email is required, all 800 records fail during import.
- Broken associations: Import in dependency order. Load companies first, then contacts with company associations, then deals with contact and company associations, then activities.
Action: Build the mapping document before you open the destination import wizard.
See Coffee’s Migration-Friendly CRM Options
How Long A Hubspot Migration Really Takes
Migration timelines depend more on data quality, integration count, and stakeholder decisions than on record volume alone.
- Small account, clean data (under 25,000 records, standard objects, 3 or fewer integrations): 4–6 weeks. Some small-business migrations under 10,000 records with clean data finish in one to three days, but that assumes no deduplication sprint and no workflow rebuilds.
- Mid-market, multiple objects and engagement history (50,000–500,000 records, 5+ integrations): 2–4 months. INSIDEA breaks standard migrations into 8–10 weeks, with cutover over a single weekend and a 24–48 hour data freeze.
- Complex accounts with custom objects and many integrations: 4–9 months for enterprise migrations with complex custom objects, large datasets, and many integrated systems. Enterprise orgs with 20+ integrations and legacy automation code can run 16–24 weeks.
Data quality issues are the top migration bottleneck, adding 15 to 30 days to project timelines when discovered late. TechUnit reports that cleaning data after migration costs roughly double compared to cleaning before, because the legacy system still has context on what the data means.
Action: Add buffer for the deduplication sprint your audit will surface. Widelly reports that mature CRM databases commonly have duplicate rates in the 15–30% range, and anything above 30% may require a strategic decision to remediate before migrating or start fresh with a targeted clean subset.
How To Handle Hubspot Portal-To-Portal Migrations
There is no native Hubspot tool to move data from one Hubspot portal to another, so teams use a third-party migration tool or a custom API build. Hubspot’s Smart Transfer tool works as a one-way import tool for moving data from other CRMs like Salesforce or Pipedrive into Hubspot and does not support portal-to-portal transfers.
The recommended procedure for a portal-to-portal migration looks like a controlled sync rather than a one-time dump.
- Connect both portals via Hubspot OAuth with Super Admin access on both, keeping the source portal read-only.
- Provision a Hubspot sandbox to receive the data first.
- Review the migration tool’s proposed field mapping and adjust before anything is written to the target portal.
- Choose which objects move and apply source-side filters by region, brand, date range, or pipeline.
- Sync into the sandbox and verify record counts, associations, and custom object schema.
- Run incremental syncs until the data is correct.
- Promote to production.
Data that stays behind in a Hubspot-to-Hubspot migration includes marketing assets such as landing pages, website pages, blog content, templates, HubDB tables, forms, workflows, historical analytics, and CMS content. Workflows must be rebuilt or migrated separately.
Action: Run the entire move into a sandbox first and promote only after a validated sandbox run.
The Stay-And-Fix Option: Keep Hubspot, Fix The Data
Some audits show that the real problem is data quality rather than HubSpot itself, so migration would only move the mess. Manual data entry creates gaps, stale records, and broken associations, and that pattern follows you into any destination CRM.
Coffee’s Companion App deploys an AI agent on top of an existing Hubspot instance to handle data entry, enrichment, activity logging, and meeting summaries automatically. The agent scans emails and calendars to auto-create contacts and companies, so records exist before a rep touches them. It logs calls and meetings without rep input, generates post-call summaries and follow-ups, and writes enriched data back to Hubspot, which keeps the system of record accurate without human effort. For teams that decide to leave Hubspot, Coffee also offers a Standalone AI-First CRM where the agent manages the entire system of record from day one.
If your audit shows a platform that fits but data that does not, fix the data first.
Explore Coffee’s Companion App For HubSpot
For more on what staying and fixing looks like in practice, see How To Do Hubspot Reporting Without Spreadsheets.
Destination Comparison: Where Hubspot Data Goes Next
If your audit points to leaving HubSpot, your destination choice determines how much migration pain you repeat and how you handle data quality. The table below shows which destinations fit which teams, how hard the structural move is, and whether an agent layer can prevent the manual-entry problem from following you.
| Destination | Best Fit | Migration Complexity | Agent Layer Available |
|---|---|---|---|
| Salesforce | Sales-led orgs needing CPQ, territory management, or ERP integration | High, because Salesforce uses junction objects and lookup fields while Hubspot uses a native association model, and these two models do not line up automatically | Yes, via Coffee Companion App |
| Zoho CRM | Cost-sensitive teams needing broad feature coverage | Medium, because standard objects map reasonably while custom modules require explicit mapping | No native agent layer |
| Pipedrive | Small sales teams with simple pipeline needs | Low-to-medium, and Pipedrive migrations require pipeline stages to be recreated in the destination before importing deals or all deals land in an unmapped state | No native agent layer |
| Attio | Modern teams wanting a flexible data model | Medium, because the association model differs and custom objects require API work | No native agent layer |
| Coffee Standalone CRM | Small to mid-sized teams wanting an agent-managed system of record from day one | Low, because the agent handles data entry and enrichment automatically post-import | Yes, with Coffee Agent as the engine |
Action: Match your destination to the fork you identified in the decision section. If you are leaving Hubspot and want a system that avoids reintroducing manual data entry, see Hubspot CRM Migration: How To Move Your Data Safely.
How To Confirm Your Hubspot Migration Worked
Validation finishes the migration and protects you from silent failures. OneMetric’s September 2026 guide recommends reconciling counts, values, associations, assets, and business outcomes, and retaining source exports and change logs so you can diagnose or reverse a bad decision.
Use these validation criteria before you close the project:
- Record counts: Compare source totals against destination totals by object, pipeline, stage, owner, and time period. Any discrepancy greater than 0.1% requires investigation before go-live.
- Association integrity: Verify contact-to-company associations by counting associations rather than records, because a portal with 10,000 contacts but only 6,000 contact-company associations indicates 4,000 orphaned contacts.
- Activity history completeness: Confirm that engagement records attach to the correct contact and deal records with timestamps intact.
- Reporting accuracy: Reproduce key reports in the destination and compare pipeline value by stage against the source.
- User adoption: Run user acceptance testing with 3–5 real users across different teams before you declare go-live.
Post-import data quality checks keep the new system trustworthy.
- Run a null check for
company_idon contacts,associated_contacton deals, andowneron any object. - Sample 10 deals and verify that Contact IDs and Company IDs in the association file match the Contact and Company exports, and that the number of Contacts per Deal matches the source UI.
- Confirm pipeline totals reconcile with the source forecast.
Action: Keep the source portal read-only for at least 30 days. TechUnit advises keeping the legacy CRM read-only for 90 days post-cutover as a reference for disputes and a safety net for anything validation missed.
Frequently Asked Questions
How Do I Export All Data Out Of Hubspot?
The export section earlier in this guide walks through object exports, engagement exports, limits, and timing. Use that as your primary checklist, and treat this FAQ as a reminder to select “All properties and associations on records” and to schedule exports close to import day because links expire after 30 days.
Can I Migrate My Data From Hubspot To Salesforce?
You can move from HubSpot to Salesforce, but the structural differences between the two platforms make this one of the more complex paths. Hubspot uses a native association model with typed association labels, while Salesforce uses junction objects and lookup fields, so you need explicit rules for how each relationship maps. Salesforce Leads have no native Hubspot equivalent and must be mapped to Contacts with a defined lifecycle stage. Activity history also needs specialized handling because the data models do not match directly. Hubspot’s native Salesforce integration can sync contacts, leads, and opportunities bidirectionally, but it requires careful configuration of field mappings, source-of-truth decisions, and conflict resolution rules. Smaller teams with clean data often complete this move in 4–8 weeks, while teams with 50,000+ contacts and complex activity history should expect at least 8 weeks.
How Long Does A Hubspot Migration Take?
The timeline ranges in the “How Long A Hubspot Migration Really Takes” section apply here. Use that section for detailed ranges by size and complexity, and treat this FAQ as a reminder that data quality and integrations drive duration more than record count.
Can You Migrate From One Hubspot Portal To Another?
Portal-to-portal migrations follow the sandbox-first process described in the “How To Handle Hubspot Portal-To-Portal Migrations” section. Use that as your step-by-step plan, and remember that marketing assets and analytics do not move automatically.


