RevOps HQ
← BACK TO BLOG
••
CRM Migration•HubSpot

HubSpot Migration Services: How to Scope a CRM Migration and Compare Quotes

HubSpot migration services scoped by evidence: move, rebuild or abandon for each configured object, why quotes differ fourfold, and what a buyer should ask.

P

Paul Maxwell, PhD

AUTHOR

GET WEEKLY REVOPS INSIGHTS

No spam. Unsubscribe anytime.

Two providers quoting HubSpot migration services for the same source system can return numbers four times apart without either having made an arithmetic mistake. The low quote moves records and fields and prices nothing else, so the automations and reports still in use return after cutover as change requests. The high quote rebuilds every automation and report the source has accumulated, including hundreds nobody has opened in a year. Neither provider was given the input that sets the price: which configured objects are still in use, and in what form each should reach HubSpot.

This article explains how to scope a migration before requesting quotes. It covers the three questions every quote folds together, the three dispositions and the usage evidence that assigns them, the defence step, and what HubSpot can hold at each tier. It then prices one sample estate three ways, and closes with the procedure, the evidence to request, costs and returns, and the symptoms of a scoping error.

A configured object is anything in the source that somebody built rather than entered: a custom field, automation, saved report, formula field, custom object, integration or permission rule. A disposition is the decision recorded against one configured object: move it as it stands, rebuild it in HubSpot's terms, or abandon it. The observation window is the period over which usage evidence is read. The defence step circulates every proposed abandonment, with a deadline, to the people who might depend on it.

Scope of a HubSpot CRM Migration Service

A CRM migration service contains six workstreams: an audit, target data model design, record movement, configuration rebuild, integration rework, and cutover with enablement. The movement itself is set out in CRM data migration: a method. This article covers the scoping decision in front of it, which differs from scoping HubSpot implementation services because every decision the old system encodes needs a disposition.

A migration quote answers three questions, and a buyer comparing totals sees none of them separately. The first is the cost of moving records, which depends on volume and cleanliness and is the answer least open to interpretation. The second is the disposition of configuration: how many automations, reports and computed fields come across, and in what form. The third is target capacity, meaning whether HubSpot at the tier the business will buy can hold what it keeps.

Move, Rebuild and Abandon Dispositions

Every configured object receives exactly one disposition, and a scope is complete when the count of dispositions equals the count of objects in the inventory.

Move applies where HubSpot holds the same thing in the same shape, meaning records and the fields carrying values on them. Rebuild applies to anything in use that expresses behaviour, such as an automation, report, formula field or permission rule, because a literal port of behaviour runs and cannot be maintained. Abandon applies to anything with no evidence of use and no defender at the deadline, other than an automation tied to a periodic event; it costs nothing, and the object survives in the source export.

How a configured object receives its migration dispositionA top-to-bottom flow. Every configured object in the source system, whether a field, automation, report, formula, custom object, integration or permission rule, first meets a usage test: evidence of use inside the observation window, which is set against the longest business cycle the source supports. Objects with evidence of use go to a portability test, which asks whether HubSpot holds the object in the same shape at the tier the business will buy; if it does, the object is moved, and if it expresses behaviour that must be re-expressed, it is rebuilt. Objects without evidence of use go to the defence step, where a named use and a named owner before the deadline return the object to the portability test, and an object undefended at the deadline is abandoned, kept only in the source export. A note beneath the flow states that reports and fields without evidence of use are proposed for abandonment, while automations are only flagged, and an automation tied to a quarterly or annual event is kept unless someone argues for dropping it, because a rule that fires once a year looks dead in any shorter window.ONE DISPOSITION PER CONFIGURED OBJECT, ASSIGNED BY EVIDENCEused in the windowno evidence of usedefendedrejoins the used setsame shapenot portable as writtenundefendedCONFIGURED OBJECTfield, automation, report, formula,custom object, integration, permissionUSAGE TESTevidence of use inside the observationwindow, set against the business cyclePORTABILITY TESTdoes HubSpot hold it in the same shape,at the tier the business will buy?DEFENCE STEPa named use and a namedowner, before the deadlineMOVErecords and the fieldsthat carry values on themREBUILDre-expressed as workflows,reports and calculationsABANDONkept in the source export,nothing migratedReports and fields without evidence of use are proposed for abandonment. Automations are only flagged, and onetied to a quarterly or annual event is kept unless someone argues for dropping it, because a rule that firesonce a year looks dead in any window shorter than a year.
Each configured object receives one disposition: usage evidence decides whether it is carried, a portability test decides between move and rebuild, and a defence step decides abandonment.

Usage is tested before portability so that no design time is spent on objects that will be abandoned, and a defended object rejoins the used set because some defended objects are plain fields that move as they stand. A proposal with no rebuild line has not removed the rebuild work; it has deferred discovery until a user reports the missing automation.

Usage Evidence by Object Class

The evidence for each class already sits in the source system's logs and records, and the table pairs each test with its HubSpot destination and tier.

The usage evidence for each class of configured object, and where a surviving object lands in HubSpot
Object classRecordsUsage evidenceOpen, or created or modified inside the retention period the business setsHubSpot destinationStandard objects, by import
Object classCustom fieldsUsage evidencePopulation rate on records created in the last twelve monthsHubSpot destinationCustom properties
Object classAutomationsUsage evidenceExecution history over a window longer than the rule's cycle; flags for review onlyHubSpot destinationWorkflows, on Professional or Enterprise
Object classSaved reportsUsage evidenceRun or view history inside the window; enough to propose abandonmentHubSpot destinationReports rebuilt against the new data model
Object classFormula and rollup fieldsUsage evidenceReferenced by a surviving report or automationHubSpot destinationCalculation and rollup properties, on Professional or Enterprise
Object classCustom objects and record typesUsage evidenceRecords created or modified inside the windowHubSpot destinationCustom objects on Enterprise, or pipelines and properties below it
Object classIntegrationsUsage evidenceA successful sync inside the windowHubSpot destinationA connector or custom integration, switched at cutover
Object classPermission rulesUsage evidenceA user whose access depends on the ruleHubSpot destinationView and edit scopes of all, team or own records

The evidence differs in strength by class, and the strength decides what it may do. A report nobody ran in the window informs no decision, and a field empty on recent records carries no information, so usage alone is enough to propose both for abandonment. Automations differ, because a rule that fires once a year at fiscal close can carry the largest consequence in the system. The illustrative Salesforce to HubSpot migration case study adopts that rule: usage condemns reports and fields outright and only flags automations for a person to read.

The same study supplies the finding this article is built around. In a 90-day window, 96 of 340 automations had fired, 71 of 612 reports had been run, and 402 of 1,140 fields held a value on more than 5 percent of records. Flagging did not protect the automations. Two were dropped after review and rebuilt in the second month. The first notified the contracts team when a pursuit with a joint-venture partner attached reached a particular stage. It had fired eleven times in three years and not once in the window, so it was flagged, read, and dropped with the reviewer's agreement; it was missed within six weeks. The second set a default on a field used only in the annual fee-schedule update. A usage test cannot distinguish a rule whose cycle is longer than its window from a dead rule, and careful review does not correct that, because the reviewer reads the evidence the test read.

A window long enough to see every annual rule would have caught both, and the study rejected it because collecting that history would have delayed the project by a year. Its correction is a different question: the natural period of each flagged automation. An automation tied to a quarterly or annual event is kept unless someone argues for dropping it, which reverses the burden of proof for exactly the class the window cannot see. Reports and fields keep the short window, and among flagged automations only those with no periodic trigger face the defence deadline.

The Defence Step and Periodic Rules

The defence step circulates the proposed abandonments with a deadline, and restores any item defended with a named use and a named owner. The owner becomes the owner of the rebuilt object in HubSpot, so an item nobody will own has not been defended. The deadline stops undecided objects from being migrated by default at cutover, with one exception: an automation tied to a periodic event is kept unless someone argues for dropping it.

The prompt decides what the step can catch. Asking whether anyone still uses an automation invites recollection, which is weak evidence in both directions. Asking which events recur on a cycle longer than the window (quarter close, fiscal year end, annual renewal, a price-list update, board reporting) addresses the class both returning automations belonged to, and it identifies the triggers that earn the exception. The list is organised by calendar event rather than by object, so the finance lead reads the year-end candidates and the contracts lead reads the partner rules.

HubSpot Target Capacity and Tier Gates

Portability is judged against the subscription the business will buy. Workflows require a Professional or Enterprise subscription of Marketing Hub, Sales Hub, Service Hub, Data Hub, Smart CRM or Revenue Hub, and calculation and rollup properties, the destination for formula fields, require Professional or Enterprise. Custom objects require Enterprise, so an active source object with no standard equivalent has three options on a Professional portal: flatten it into properties, model it as a pipeline, or buy Enterprise. A quote that picked one silently has made a licensing decision for the buyer.

The import mechanics impose constraints rather than choices. On a paid subscription, import files can reach 512 MB, 1,048,576 rows and fewer than 1,000 columns, with up to 10,000,000 rows per rolling 24 hours. HubSpot documents automatic deduplication for contacts by email and companies by domain only, so a deal import repeated without an identifier creates a second copy of every deal. The multi-object import accepts a custom unique-value property as the identifier for contacts, companies, deals, tickets and custom objects, which turns a re-run into an update. The same page states that existing emails, meetings, notes and tasks cannot be updated by import, so activities load last and once, after the parent records reconcile.

Record access can change policy rather than configuration. The permissions guide grants view access per object as all records, the team's records or the user's own, and edit access on the same scopes plus none. A source rule granting access through a relationship, such as a second team seeing records on which it is a named partner, has no equivalent among those scopes; the illustrative case study resolves one by opening pursuit visibility firm-wide and moving two confidential pursuit types to a restricted pipeline.

HubSpot Migration Services Pricing on a Sample Estate

The figures below are sample data constructed for this article, not drawn from any client. The estate holds 150,000 records, 600 custom fields, 120 automations, 200 saved reports, 40 formula fields and three integrations. The unit efforts in the table are illustrative assumptions, not rates. The audit results sit near the case study's proportions: 240 fields populated on recent records, 30 automations fired and 30 reports run, 4 automations and 5 reports restored by defence, and 16 formula fields referenced by what survived.

One sample estate quoted three ways, in hours, with object counts in brackets
LineAudit and defence stepQuote A: records and fields0Quote B: port everything0Quote C: audited50
LineRecord movement, including reconciliationQuote A: records and fields100Quote B: port everything100Quote C: audited100
LineFields at 0.2 hQuote A: records and fields120 (600)Quote B: port everything120 (600)Quote C: audited48 (240)
LineAutomations at 3 hQuote A: records and fields0Quote B: port everything360 (120)Quote C: audited102 (34)
LineReports at 1 hQuote A: records and fields0Quote B: port everything200 (200)Quote C: audited35 (35)
LineFormula fields at 1.5 hQuote A: records and fields0Quote B: port everything60 (40)Quote C: audited24 (16)
LineIntegrations at 20 hQuote A: records and fields0Quote B: port everything60 (3)Quote C: audited60 (3)
LineTotal quotedQuote A: records and fields220Quote B: port everything900Quote C: audited419
LineUsed work left out, returning after cutoverQuote A: records and fields221Quote B: port everything0Quote C: audited0

Quote B is 4.1 times Quote A, and record movement is 100 hours in all three. The whole spread sits in one unstated assumption, the share of configured objects each provider expected to rebuild: none in A, all in B, and in C only what survived the usage test and the defence step.

One sample estate quoted three ways, in hoursThree horizontal stacked bars on one hour scale, using the article's sample data. Every bar begins with the same 100 hours of record movement. Quote A, records and fields only, adds 120 hours of field mapping for 220 hours quoted, and a dashed extension shows 221 hours of used automations, reports, formula fields and integrations it left out, which return after cutover and take the work to 441 hours. Quote B, port everything, adds 120 hours of fields and 680 hours of rebuild for 900 hours. Quote C, audited, adds 48 hours of fields, 221 hours of rebuild and 50 hours of audit and defence step for 419 hours. The spread between 220 and 900 hours is entirely the rebuild assumption.SAMPLE DATA · HOURS · SAME RECORDS, THREE REBUILD ASSUMPTIONSRecord movementFieldsRebuildAudit and defenceUsed work left outleft of this line: the same 100 hours of record movement in every quoteQUOTE Arecords and fields220 h quoted441 h once the left-out work is builtrecord movement 100 · fields 120 · left out 221QUOTE Bport everything900 h quotedrecord movement 100 · fields 120 · rebuild 680QUOTE Caudited419 h quotedrecord movement 100 · fields 48 · rebuild 221 · audit and defence 50
The sample estate quoted three ways: record movement is the same 100 hours in every quote, and the spread between 220 and 900 hours is the rebuild assumption.

Two further results can be recomputed from the table. Quote A is the lowest number and not the lowest project: the 34 automations, 35 reports, 16 formula fields and three integrations still in use cost 221 hours whenever they are built, taking A to 441. Quote B spends 531 hours on 360 fields, 86 automations, 165 reports and 24 formula fields that failed the usage test and found no defender. Removing that work and adding the 50-hour audit gives Quote C's 419 hours exactly.

The table does not show that audited quotes are cheaper in general. It shows that a quote is a function of disposition counts, so a buyer who supplies the counts receives quotes differing only in unit effort and rate, which are the numbers worth comparing.

Scoping Procedure Before Requesting Quotes

  1. Export an inventory of every configured object in the source, with a count for each class in the usage table.
  2. Record the longest business cycle the source supports, such as fiscal year end or annual renewal, set the observation window, and note any class whose history is shorter than that cycle.
  3. Pull the usage evidence per class as the table specifies, marking failed reports and fields as proposed abandonments and failed automations as flagged, and record each flagged automation's natural period; any tied to a quarterly or annual event is kept unless someone argues for dropping it.
  4. Circulate the proposed abandonments grouped by calendar event, with a deadline, and restore any item defended with a named use and a named owner.
  5. Test every surviving object for portability against the HubSpot tier the business will buy, recording move or rebuild and the tier each rebuild requires.
  6. Write the disposition counts per class into the request for quotes, with record volumes per object and each integration's direction of sync.
  7. Verify the inventory: for each class, the move, rebuild and abandon counts must sum to the count from step 1, and any shortfall is an object nobody assigned.
  8. Verify each returned quote by asking for the provider's counts per class and checking them against the counts supplied; a quote built on different counts is restated before it is compared.

Evidence to Request from a Migration Provider

A provider's scope is sound when it traces to the estate rather than to the record count, and five pieces of evidence establish that.

  • Disposition counts per object class, with rebuild priced separately from move, so the quote can be recomputed line by line.
  • The observation window and the treatment of automations that did not fire in it, since condemning automations on usage alone makes no provision for annual rules.
  • The subscription tier each rebuild assumes, because a calculation property or custom object cannot be built on a tier that lacks it.
  • A reconciliation plan covering sums of reported financial fields and a field-by-field sample of awkward records, beyond record counts.
  • A switch date and owner for each integration, with every switch on the cutover date, so that nothing writes to the source after go-live.

HubSpot's own migration services page, as listed in September 2026, offers template setup and website migration by its Replatforming Team and lists no service for CRM records or configuration. The firm is a HubSpot Solutions Partner that sells CRM migration work, which is an interest in this subject, and the procedure above needs no partner: an administrator who knows the source can build the inventory and defence list in-house.

Costs and Returns of a Pre-Quote Audit

What the audit buys is a scope that can be priced and compared, with the rebuild assumption turned from a judgement hidden inside each estimate into a count the buyer owns. It retires configuration that would otherwise be rebuilt at full cost, and its field inventory becomes the mapping document, so its hours carry into the migration.

What it costs is time from the finance, sales and service leads who must answer the defence list by a date, and calendar time wherever execution history has to be switched on first. It also costs an early single number, because a price given before the audit is an estimate of the unknown with the provider's allowance for risk inside it.

The case is strongest for an estate that has run for years under several administrators, holds hundreds of automations and reports nobody can vouch for, and will be quoted by more than one provider. It is weakest for a small estate or spreadsheet source, where one conversation can disposition a few dozen objects, and for a source without usage telemetry, where the defence step carries the whole decision. It is also weak where record history is the real scope: in the illustrative Zoho to HubSpot migration case study, 118,000 of 214,000 records stay behind by age and type, a retention decision no configuration audit makes.

Symptoms After Cutover and Their Causes

A report from the old system is missing at year end. A window shorter than its cycle condemned it, and the defence prompt asked about use rather than the year-end calendar; the report is rebuilt, and later phases run their defence lists by calendar event.

Change requests after go-live exceed the original quote. The quote priced move and abandon only, and the used configuration it left out arrives one request at a time; a disposition inventory, built now if none exists, shows which objects were never assigned.

Pipeline value doubles after a corrected import. Deals were re-imported without a unique identifier, and HubSpot does not deduplicate deals automatically; the repair is a merge plan and a unique-value source identifier on every migrated object, as set out in HubSpot deduplication.

Users see records they could not see before. A source sharing rule had no equivalent among HubSpot's all, team and own scopes, and the rebuild widened access without a recorded decision; the repair starts with a written visibility policy.

A rebuilt total disagrees with the old system's figure. The formula became a workflow-maintained property, correct as of its last run rather than when read; the fix lives in the property definition, checked by exporting both systems for the same records.

Boundaries of This Article

This article covers scoping a migration from another CRM into HubSpot. Website and CMS migration is a separate discipline, extraction differs by source platform and is treated separately for Pipedrive to HubSpot migration and Salesforce to HubSpot migration, and a further illustrative case study covers a law firm migration. Tier gates, import limits and deduplication rules are as documented in September 2026 and change on HubSpot's schedule, so the linked documentation is authoritative over this text.

The evidence has limits. The usage proportions and the two returning automations come from one illustrative case study, a composite whose figures are illustrative rather than measured, so it illustrates the window problem and says nothing about how frequently it occurs. The fourfold spread is a construction on sample data with assumed unit efforts, and no survey of migration quotes was found to cite. It supports a narrower claim: a quote is a function of disposition counts, which any buyer can test by asking for them.

Frequently Asked Questions

Are there migration services HubSpot provides itself?

For websites, yes: as of September 2026, HubSpot's migration services page lists template setup and website migration by its Replatforming Team, and no service for CRM records or configuration.

Do HubSpot migration services include workflows and reports?

Only where the quote says so. The import tool loads records and activities, so workflows and reports are rebuilt rather than imported, and rebuilt workflows require Professional or Enterprise.

Is HubSpot migration services pricing fixed or hourly?

Providers quote on either basis. Time and materials fits a scope that is still being discovered, and a fixed fee can be priced without a large risk allowance only once disposition counts exist, which is what the pre-quote audit produces.

Do HubSpot CRM migration services cover activity history?

They can, with one constraint: HubSpot's import cannot update existing emails, meetings, notes or tasks, so activity history loads once, last, after the parent records reconcile.

Can HubSpot data migration services leave old records behind?

Yes, and the retention rule belongs in the scope, decided by record age and type and kept separate from the configuration audit.

In Summary

A migration quote conceals three answers: the cost of moving records, the disposition of configuration, and what the purchased tier can hold. Record movement is the stable part and configuration carries the spread, so every configured object needs one disposition, move, rebuild or abandon, assigned by usage evidence and recorded with the tier its rebuild requires. A rule whose cycle outlasts the window looks dead, and reviewing the same evidence did not correct that in the illustrative case study. So an automation tied to a quarterly or annual event is kept unless someone argues for dropping it, and the defence list is read against the business calendar by the people who run quarter close and year end.

The sample estate puts a figure on the pre-quote audit: the 481 hours between Quote B's 900 and Quote C's 419 are 531 hours spent on 360 fields, 86 automations, 165 reports and 24 formula fields that failed the usage test and found no defender, less the 50 hours of audit that found them. A buyer who runs the inventory, usage test and defence step before requesting quotes receives quotes that can be recomputed line by line, from counts that only the buyer's own logs and people can supply.

HubSpot services

Onboarding, implementation, integration, migration, administration and training, each scoped and priced before the work begins

WEEKLY PROGRAM

RevOps Office Hours

A recurring weekly RevOps operating program. Live support plus hands-on HubSpot implementation work.

$1,500/mo
Monthly Operating Program
  • →1 live Office Hours session per week
  • →4 hours of hands-on implementation work per month
  • →Hours allocated against priorities agreed at the start of each period
  • →Recurring monthly cadence