A HubSpot migration can produce a clean contact file and still leave a business without the context that made those contacts useful. The difficult parts are often the relationships between records, the history behind a current value, and the processes that run when someone submits a form or changes a deal stage.
HubSpot does not offer one universal file that recreates an account in another platform. Its own content and data export guide directs customers to separate exports for records, properties, files, forms, reports, marketing assets, workflows, and other account data. It also says some data must be recreated rather than merged into another HubSpot account.
This guide is for small businesses planning a move away from HubSpot. It focuses on what to inventory, which extraction method fits each layer, and how to stage the cutover without assuming that every portal, subscription, object, or integration works the same way. HubSpot documentation linked below was reviewed on August 17, 2026.
Start with the difference between records and behavior
Records are contacts, companies, deals, tickets, products, and activities. Behavior is what the account does with them: segment membership, workflow enrollment, lead routing, email sends, form follow-up, reporting, and permission rules.
HubSpot’s standard record export downloads current property values and associations for the selected objects. It points customers to other methods for contact activities such as calls and notes. HubSpot’s manual CRM backup, available on eligible paid subscriptions, covers several CRM objects but explicitly excludes associations and activity data.
That distinction changes the project plan. A successful contact import does not prove that a deal still has the right participants, a ticket retains its timeline, or an opted-out contact stays suppressed.
| Layer | What you may be able to extract | What usually needs separate work |
|---|---|---|
| CRM records | Current properties for contacts, companies, deals, tickets, and available custom objects | Field mapping, duplicate rules, owners, pipelines, and destination IDs |
| Relationships | Associated record IDs and, in some exports, labels | Rebuilding links in the correct direction and validating multi-record relationships |
| History | Selected activities, reports, property history, or API results | Preserving authors, timestamps, context, and a usable archive when the destination cannot import them |
| Marketing assets | Form submissions, email designs, performance data, files, and segment members through separate tools | Form logic, dynamic filters, templates, workflow dependencies, and reporting definitions |
| Account setup | User lists, property definitions, and audit information where available | Teams, roles, record visibility, integrations, domains, inboxes, and authentication |
Inventory the portal before choosing a migration method
Create an inventory with an owner, record count, business purpose, extraction path, destination, and acceptance test for each item. Include inactive assets if they hold consent evidence, financial history, or context your team still needs.
At minimum, review:
- Contacts, companies, deals, tickets, products, custom objects, and archived records
- Notes, calls, meetings, tasks, one-to-one emails, conversations, and attachments
- Pipelines, stages, owners, teams, and association labels
- Default and custom properties, including internal names, types, options, and historical values
- Active and static segments, their filter logic, and where they are used
- Forms, submissions, hidden fields, redirects, notifications, and embedded forms on external sites
- Workflows, enrollment and re-enrollment rules, branches, delays, goals, suppressions, and connected emails
- Marketing emails, templates, subscription types, performance data, hard bounces, and opt-outs
- Files, reports, dashboards, integrations, OAuth connections, API keys, webhooks, and sync rules
- Users, permissions, private content access, retention rules, and contract dates
Do not let a department lead answer for everyone. Sales should validate deal context, service should validate tickets, marketing should validate consent and campaign assets, and an administrator should validate permissions and integrations.
Choose the extraction path object by object
Use the simplest method that preserves the information you actually need.
Destination-native imports can reduce CSV and API work, but the supported object list is the boundary. Test one before building a custom path, then use exports or an API for required data it does not handle.
UI exports work well for defined record views, segment membership, form submissions, and report data. Keep the HubSpot record ID and every association key needed later. Save untouched originals before cleaning a working copy.
Property-definition exports deserve their own step. HubSpot’s property export documentation says the file can include internal names, field types, options, usage, and fill rate. Map those definitions before moving values. A dropdown value imported into a plain text field may look correct while breaking filters and automation.
API extraction may be appropriate when the UI export omits required history, activities, custom objects, or relationship detail. HubSpot’s CRM API documentation treats objects, properties, associations, pipelines, and schemas as separate parts of the data model. API work requires the right subscription features, scopes, permissions, rate-limit planning, and technical testing. Ask a specialist to document exactly which endpoints and fields are in scope rather than accepting “full API migration” as a complete specification.
Archive instead of import when the destination has no sensible place for old detail. A searchable, access-controlled activity or reporting archive can be safer than forcing history into note fields that lose authorship or timestamps.
Protect consent, opt-outs, and suppression data
Treat communication preferences as operational controls, not optional enrichment. Inventory subscription types, global opt-outs, type-specific statuses, hard bounces, lawful-basis fields, consent source, and available timestamps. Keep the email address used for the status because HubSpot ties email opt-outs to the address.
HubSpot’s current communication preferences API can return subscription definitions and contact-level statuses, but scope and subscription requirements vary, especially for bulk endpoints. A contact export may include useful opt-out properties, yet it should not be assumed to contain every consent detail your policy requires.
Import suppressions before any live sending begins. Never convert an unknown or unmapped status into consent. Have a qualified privacy or legal reviewer decide what must move, what must be retained as evidence, and what should be deleted under the laws, contracts, and regions that apply to your business.
Rebuild the parts that make HubSpot operate
HubSpot can export a workflow inventory and images of individual workflows. Its export guide says those files do not include workflow performance, history, or the emails used by the workflow. Recreate each live process in the destination with its trigger, eligibility rules, branches, delays, actions, stop conditions, suppressions, and failure handling.
Forms need the same treatment. Form submission exports preserve submitted field data, not a destination-ready form with matching validation, routing, consent language, and follow-up. Replace HubSpot embeds on external sites before deactivation, then test each public form from submission through assignment and response.
Marketing emails can be exported as HTML or PDF designs through HubSpot’s email export tool, while performance and recipient events use separate exports. Rebuild reusable templates, personalization, sending domains, footer requirements, subscription links, and automation connections in the new platform.
Files can be exported in ZIP archives by a Super Admin through HubSpot’s files tool, but file usage and destination links still need review. Likewise, a segment export preserves members and selected properties, not the full operating meaning of a dynamic filter. Report exports preserve data, not the dashboard definition, calculated fields, permissions, or business interpretation.
Reconnect every integration rather than copying credentials. Record the owner, authentication method, data direction, mapped fields, conflict rule, webhook events, and last successful sync. Recreate users and teams before mapping owners, then test least-privilege access with non-admin accounts.
Run a pilot before the cutover
Choose a representative sample, not a handful of perfect contacts. Include records with several company and deal associations, open tickets, former owners, custom fields, activities, attachments, duplicate emails, opt-outs, and workflow eligibility.
Validate the pilot in the destination:
- Reconcile counts by object, owner, pipeline, and status.
- Trace sample contacts back to their HubSpot IDs.
- Confirm associations in both directions, including labeled relationships.
- Compare dates, currencies, dropdown values, authors, and timestamps.
- Submit forms and run workflows with controlled records and sending limits.
- Confirm permissions, reports, integrations, and suppressions with the people who use them.
Fix mappings and rerun the pilot until the same procedure produces the same result. Keep success, skip, and error files for every import batch.
Cut over in stages and keep a rollback path
Choose one system of record for each phase. During the final cutover, pause edits in HubSpot, take a final delta export, complete the last import, and switch forms, inboxes, calendars, integrations, and team activity in a documented order. Do not cancel the source account as part of the same step.
Define rollback before launch: who can call it, how new destination records will be preserved, which integrations can be pointed back, and how the team will communicate the decision. Keep HubSpot read-only until departmental acceptance tests pass and your retention and contract decisions are complete.
After launch, monitor import errors, duplicate creation, failed workflow actions, form delivery, email suppressions, owner assignment, integration syncs, and key reports for an agreed period. Record exceptions and their resolution. A migration is complete when the new system works under normal use, not when the last CSV reaches 100%.
If SMBcrm is on your shortlist
Use the SMBcrm vs HubSpot comparison to review feature and pricing differences, then compare other routes in the HubSpot alternatives guide. SMBcrm now has a direct HubSpot importer for contacts, companies, deals as Opportunities, pipelines and stages, contact, company, and deal properties as custom fields, notes, emails, tasks, and supported associations.
The importer shortens the record-movement phase; it does not configure the rest of the system. Existing matching records are not overwritten, imported emails are read-only, and deals need their associated contacts to become Opportunities. SMBcrm recommends testing in a new or non-production account. Import History shows successful, skipped, failed, and warning totals, with record-level details and downloadable results. Forms, workflows, marketing assets, files, reports, consent and suppression handling, integrations, and user permissions still need separate inventory and validation.
SMBcrm onboarding includes unlimited group training and 24/7 chat, ticket, and Zoom support on every plan. Professional and Enterprise include four guided sessions; Startup can add those sessions at signup. Those services can support a migration plan, but they do not remove the need for source exports, mapping decisions, acceptance tests, and a rollback path.
Plan the move before you cancel HubSpot
If the service is not a fit, eligible new Startup and Professional customers can request a refund of the initial base subscription fee within 60 days; exclusions apply. Use that window to validate real records and workflows, not to skip migration planning.
See plans & pricing or schedule a demo to review your HubSpot migration scope before choosing a cutover date.