Leaving or downsizing HubSpot Sales Hub is not one CSV export. It is a controlled extraction of records, activities, relationships, configuration, consent state, and operating evidence—followed by a target import or durable archive that can be reconciled. Some items have documented file exports, some require reports or APIs, and some may need recreation. The safe plan never labels an asset “portable” until the team has opened the official documentation and reproduced the result in its own subscription.
Direct answer. Inventory every Sales Hub object and asset, assign each a documented extraction path, preserve HubSpot record IDs and association edges, stop active sequences and workflows, take a full snapshot plus a controlled delta, reconcile the target, and keep rollback available until business workflows pass. A downloaded file proves only that a job ran; it does not prove a complete or usable exit.
This page is an incumbent exit-control artifact. Use the HubSpot Sales Hub alternatives guide to choose a replacement, the HubSpot versus Salesforce comparison to compare two platforms, and the vendor-neutral CRM migration checklist to govern the target-side program.
Define the Sales Hub exit boundary
Write an exit charter before requesting the first export. Name the source portal, subscriptions, business units, sandboxes, connected apps, target systems, archive location, cutover date, retention obligations, excluded data, and decision owners. Record whether the objective is a full exit, Sales Hub cancellation while another Hub remains, consolidation into another HubSpot portal, or a historical archive. Those are different projects.
Assign one accountable owner each for CRM data, Sales Hub configuration, integrations, privacy, security, legal hold, finance, target loading, validation, cutover, and rollback. Freeze acceptance thresholds in advance. “Most records arrived” cannot become an emergency definition of success after the old account is unavailable.
Boundary rule: this checklist does not promise that every item in HubSpot can be bulk-exported or imported elsewhere. HubSpot’s official content and data export index explicitly routes different assets through different procedures and notes that certain account-to-account moves require export and recreation rather than a complete merge.
Inventory records, activities, assets, and controls
Inventory Sales Hub as a graph plus its operating configuration. A contact count omits the relationships and behavior that make the CRM useful. Capture current counts, eligibility rules, stable IDs, owners, sensitivity, extraction path, target disposition, and evidence location for every row in the register.
| Inventory layer | Items to enumerate | Evidence to retain |
|---|---|---|
| Records | Contacts, companies, deals, tickets, products, line items, quotes, custom objects, lists | Object definition, view/filter, eligible count, archived/deleted treatment, export job and file hash |
| Activities | Tasks, calls, one-to-one emails, meetings, notes, communications and attachments where applicable | Activity ID, timestamp, owner, body or metadata, participant and associated-record edges |
| Sales assets | Sequences, templates, snippets, playbooks, documents, meetings links, calling settings | Subscription/seat dependency, documented export path or recreation owner, screenshots/configuration record |
| Schema | Properties, types, enumerations, required flags, pipelines, stages, association labels, custom objects | Internal names, IDs, definitions, allowed values, direction and label of each edge |
| People and access | Owners, users, teams, seats, permission sets, private records, integration identities | User-to-target crosswalk, disabled users, least-privilege extraction account, audit log |
| Automation | Sequences, workflows, routing, lead rotation, notifications, scoring, syncs and webhooks | Trigger, action, credential, last run, stop order, target replacement and rollback effect |
| Governance | Consent, lawful-basis fields, subscriptions, suppression, deletion requests, retention, legal holds | Field provenance, policy owner, timestamps, exception handling and archive/deletion decision |
Profile duplicates, missing owners, invalid enumerations, orphaned relationships, stale records, and untraceable consent before extraction using the CRM data-quality framework. Record defects as source defects; silently “fixing” them inside a transformation makes source-to-target differences impossible to explain.
Classify every item by its documented portability path
Give every inventory row one of five path labels: documented file export, documented report export, documented API retrieval, manual recreation, or archive-only/unavailable. Include the official URL, required permission, subscription or seat, format, scope, pagination or limit, fields omitted, relationship behavior, and date verified. A capability observed in one portal is not a universal contract.
HubSpot’s record-export documentation says record exports contain current property values and can include associations, while contact activities use separate routes such as individual exports, activity reports, or engagement APIs. It also documents permissions, formats, association options, job limits, file splitting, and expiring download links. Therefore, do not treat an “all contacts” spreadsheet as an activity-complete backup.
- Properties: export schema separately. HubSpot’s property export guide documents internal names, types, options, usage, and other definitions that a values-only CSV cannot preserve.
- History: document only the history actually retrievable. The property-history guide describes current and historical values for records that had a value and states revision limits; it is not evidence of unlimited event history.
- Tasks: HubSpot documents a task report export. Validate the report’s fields and associations against your target requirements.
- Sequences, templates, snippets, lists, and workflows: never infer bulk portability. Preserve definitions and dependencies, then classify as API, documented export, recreation, or archive-only based on current product documentation and contractual support.
Create a negative-evidence column: “No documented complete export found as of 2026-08-08; vendor confirmation required.” That sentence is more useful than an undocumented promise.
Preserve IDs, fields, owners, and association edges
Preserve identity and relationships in separate, joinable artifacts. Keep the original HubSpot record ID on every exported record and create a crosswalk from source ID to target ID. Keep object definitions, property definitions, current values, history, owners, and relationship edges separately so they can be validated and reloaded in dependency order.
HubSpot’s CRM API model distinguishes objects, records, properties, associations, and activities. Its Associations API documentation also distinguishes direction, default relationships, and labeled association types. Export an edge table with source object type, source ID, target object type, target ID, association category, association type ID, label, status, and extraction timestamp.
Map owners before loading. Former employees, unlicensed users, queues, teams, and integration users need explicit target dispositions; the CRM ownership guide provides a governance pattern. Never assign every unmatched record to an administrator just to make the import pass.
Freeze automations and capture snapshot plus delta
Stop uncontrolled writes, take a full snapshot, then capture a bounded delta. Inventory every writer first: users, sequences, workflows, forms, inboxes, calling, calendar connections, native integrations, private apps, marketplace apps, middleware, imports, enrichment, and API clients. The CRM integration checklist helps document authority, direction, retry, deletion, and incident behavior.
- Announce a configuration freeze and prohibit new properties, pipelines, stages, workflows, sequences, apps, and mappings.
- Record active sequence enrollments, scheduled tasks, pending workflow actions, queued syncs, meetings, and forms that can still create or update records.
- Pause outbound or mutating automations in an approved order; preserve definitions and enrollment state before stopping them.
- Record snapshot start and completion timestamps in UTC, export job IDs, filters, API versions, scopes, counts, filenames, sizes, and checksums.
- Capture records or activities changed after the snapshot watermark as a delta. Define how late-arriving activity and failed jobs will be handled.
- Make the source read-only for ordinary users at the cutover boundary, or run a documented dual-entry process with one authoritative system per field.
Do not cancel seats or the subscription before confirming which permissions are required to repeat a failed export. Test reauthentication, expired download links, API pagination, throttling behavior, and resumability while the account is still operational.
Reconcile counts, values, relationships, and history
Reconcile four layers: records, fields, relationships, and history. Store the numerator, denominator, exclusions, query or file version, timestamp, owner, and evidence URL for every result.
| Control | Formula | Failure it exposes |
|---|---|---|
| Record reconciliation | Matched target records ÷ eligible source records × 100 | Missing or unintended duplicate records |
| Field accuracy | Correct tested target values ÷ tested eligible values × 100 | Truncation, type conversion, enumeration, date, owner or blank-value errors |
| Relationship reconciliation | Correct target edges ÷ expected eligible source edges × 100 | Orphans, wrong parents, missing labels or lost activity associations |
| History coverage | Imported or archived eligible history events ÷ expected eligible history events × 100 | Current-state-only extraction presented as complete history |
| Exception rate | Unresolved exceptions ÷ attempted eligible items × 100 | Failed rows hidden behind a completed job |
Run full comparisons for critical identifiers, consent, suppression, ownership, open-deal amount, stage, currency, close date, next action, and relationships that drive workflows. For sampled fields, freeze the sampling frame and strata before inspecting outcomes. Reproduce known pipeline, task, activity, owner, and suppression reports from independently generated source expectations.
Stage the target and run a controlled dual-run
Load a production-shaped slice before a full import. Include clean and difficult cases: multi-email contacts, multi-domain companies, duplicate records, missing owners, former employees, custom enumerations, long notes, attachments, contacts on several deals, labeled associations, activities tied to multiple records, active sequences, suppressed contacts, deleted records, and records restricted by permissions.
Load schema and reference values first, then owners, parent records, child records, association edges, activities, files, and automation replacements in the target system’s required order. Disable target notifications and outbound automation until validation passes. Test idempotency by replaying the same staged batch: the expected outcome is no unexplained duplicate or destructive overwrite.
During a dual-run, publish field-level authority. For example, HubSpot remains authoritative for open-deal edits until the final delta, while the target accepts test users but does not send. Avoid bidirectional synchronization without conflict rules; it can turn a reversible trial into two divergent systems.
Cut over or roll back using objective gates
Cut over only when named evidence gates pass; otherwise roll back while the source is recoverable. The cutover commander should have a timed runbook covering export, delta, load, reconciliation, integration enablement, user smoke tests, communications, and the last rollback decision point.
- Roll back for unexplained loss, duplicate creation, corruption, owner or permission failure, broken critical associations, or consent/suppression uncertainty.
- Roll back when sellers cannot complete approved contact, deal, task, email, meeting, note, reporting, or handoff workflows.
- Roll back when integration replay creates conflicting state or when the team cannot identify the system of authority.
- Roll back when recovery is likely to exceed the approved outage or the evidence package cannot explain target counts.
A rollback plan names who stops target writes, disables integrations, restores source access, applies the captured delta, communicates with users, validates the reopened source, and preserves the failed target for diagnosis. “We can log back into HubSpot” is not a rollback test.
Decommission the account and retain deletion evidence
Make HubSpot read-only before deletion, and decommission only after dependency, retention, and legal gates pass. Complete at least one representative sales operating cycle in the target. Monitor import exceptions, API failures, owner queues, duplicates, missing activity, report variance, and user task completion.
- Revoke private-app tokens, OAuth grants, marketplace apps, user access, inbox and calendar connections, calling integrations, webhooks, and middleware in dependency order.
- Redirect forms, meeting links, email templates, documents, reports, dashboards, warehouse jobs, bookmarks, and operating procedures.
- Preserve the final archive, schemas, IDs, associations, mappings, export logs, checksums, reconciliation results, exceptions, approvals, and retention schedule.
- Review current contract, DPA, account-deletion procedure, legal holds, and regulatory duties with counsel or the responsible privacy owner.
- Request deletion or closure through the documented process and retain confirmation plus a record of data intentionally retained elsewhere.
Do not claim that cancellation equals immediate deletion, or that a downloaded export contains everything. Contract terms and product behavior can change; verify them before the exit window closes.
Apply the worked example and calculate TCO
Worked example: a team freezes 12,000 eligible contacts, 1,800 companies, 900 deals, and 38,000 eligible association edges. Its first target load matches 11,940 contacts and reconstructs 37,620 correct edges. These are illustrative inputs, not Gangly or HubSpot benchmark results.
- Contact reconciliation = 11,940 ÷ 12,000 × 100 = 99.5%.
- Relationship reconciliation = 37,620 ÷ 38,000 × 100 = 99.0%.
- The remaining 60 contacts and 380 edges enter an exception queue with source IDs, reason codes, owners, and disposition. Whether those results pass depends on thresholds approved before migration; the example does not prescribe them.
Calculate exit TCO as: remaining contract and seat cost + vendor or consultant services + internal labor + target licenses + storage and archive + integration rebuild + training and support + expected exception remediation + contingency. Keep one-time migration cost separate from recurring target cost. Include the cost of retaining read-only access if the evidence plan requires it.
Print the HubSpot Sales Hub export checklist
Copy this artifact into the project register. Add owner, due date, evidence URL, status, exception, approver, and approval date to every line.
HubSpot Sales Hub exit control sheet
Portal: ______ · subscriptions: ______ · target/archive: ______ · snapshot UTC: ______ · cutover UTC: ______ · commander: ______ · rollback owner: ______
- Charter: ☐ exit type ☐ scope ☐ exclusions ☐ owners ☐ retention ☐ legal holds ☐ thresholds ☐ rollback authority
- Inventory: ☐ records ☐ activities ☐ files ☐ properties ☐ pipelines ☐ owners/teams ☐ associations ☐ sequences ☐ templates/snippets ☐ lists ☐ workflows ☐ consent/suppression ☐ integrations
- Portability register: ☐ official URL ☐ permission ☐ subscription/seat ☐ file/report/API/recreate/archive label ☐ limits ☐ omissions ☐ verification date
- Identity: ☐ original record IDs ☐ target crosswalk ☐ internal property names ☐ value maps ☐ association type IDs ☐ labels/direction ☐ owner map
- Freeze: ☐ configuration lock ☐ active enrollments ☐ workflow queue ☐ users informed ☐ integrations paused ☐ full snapshot ☐ timestamps ☐ checksums ☐ delta rule
- Reconcile: ☐ object counts ☐ required fields ☐ history ☐ associations ☐ activities ☐ files ☐ owners ☐ consent/suppression ☐ reports ☐ exception queue
- Stage: ☐ difficult test slice ☐ load order ☐ outbound disabled ☐ idempotent replay ☐ permissions ☐ user tasks ☐ target reports ☐ failure injection
- Cut over: ☐ final delta ☐ smoke tests ☐ integrations in stages ☐ objective gates ☐ decision time ☐ communications ☐ support coverage
- Rollback: ☐ stop target writes ☐ disable target integrations ☐ restore source authority ☐ apply delta ☐ validate ☐ preserve incident evidence
- Decommission: ☐ read-only period ☐ dependency scan ☐ final archive ☐ revoke credentials ☐ contract decision ☐ deletion request ☐ confirmation ☐ postmortem
Final gate: do not call the exit complete until every in-scope item is either reconciled in the target, preserved in an approved archive, intentionally retired with approval, or recorded as an exception with an accountable owner.