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.
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.
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.
| Object class | Usage evidence | HubSpot destination |
|---|---|---|
| Object classRecords | Usage evidenceOpen, or created or modified inside the retention period the business sets | HubSpot destinationStandard objects, by import |
| Object classCustom fields | Usage evidencePopulation rate on records created in the last twelve months | HubSpot destinationCustom properties |
| Object classAutomations | Usage evidenceExecution history over a window longer than the rule's cycle; flags for review only | HubSpot destinationWorkflows, on Professional or Enterprise |
| Object classSaved reports | Usage evidenceRun or view history inside the window; enough to propose abandonment | HubSpot destinationReports rebuilt against the new data model |
| Object classFormula and rollup fields | Usage evidenceReferenced by a surviving report or automation | HubSpot destinationCalculation and rollup properties, on Professional or Enterprise |
| Object classCustom objects and record types | Usage evidenceRecords created or modified inside the window | HubSpot destinationCustom objects on Enterprise, or pipelines and properties below it |
| Object classIntegrations | Usage evidenceA successful sync inside the window | HubSpot destinationA connector or custom integration, switched at cutover |
| Object classPermission rules | Usage evidenceA user whose access depends on the rule | HubSpot 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.
| Line | Quote A: records and fields | Quote B: port everything | Quote C: audited |
|---|---|---|---|
| LineAudit and defence step | Quote A: records and fields0 | Quote B: port everything0 | Quote C: audited50 |
| LineRecord movement, including reconciliation | Quote A: records and fields100 | Quote B: port everything100 | Quote C: audited100 |
| LineFields at 0.2 h | Quote A: records and fields120 (600) | Quote B: port everything120 (600) | Quote C: audited48 (240) |
| LineAutomations at 3 h | Quote A: records and fields0 | Quote B: port everything360 (120) | Quote C: audited102 (34) |
| LineReports at 1 h | Quote A: records and fields0 | Quote B: port everything200 (200) | Quote C: audited35 (35) |
| LineFormula fields at 1.5 h | Quote A: records and fields0 | Quote B: port everything60 (40) | Quote C: audited24 (16) |
| LineIntegrations at 20 h | Quote A: records and fields0 | Quote B: port everything60 (3) | Quote C: audited60 (3) |
| LineTotal quoted | Quote A: records and fields220 | Quote B: port everything900 | Quote C: audited419 |
| LineUsed work left out, returning after cutover | Quote A: records and fields221 | Quote B: port everything0 | Quote 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.
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
- Export an inventory of every configured object in the source, with a count for each class in the usage table.
- 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.
- 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.
- Circulate the proposed abandonments grouped by calendar event, with a deadline, and restore any item defended with a named use and a named owner.
- Test every surviving object for portability against the HubSpot tier the business will buy, recording move or rebuild and the tier each rebuild requires.
- Write the disposition counts per class into the request for quotes, with record volumes per object and each integration's direction of sync.
- 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.
- 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.