RevOps HQ

HubSpot CRM Migrations and Integrations

A CRM migration is judged on one question after it completes: can the business still answer what it could answer the week before. Record counts matching is necessary and proves very little, because the counts can match while every association that made the records useful has been lost.

Two shapes of engagement sit in this category and they are not the same problem. A migration ends with one system. A coexistence keeps both, permanently, and needs a conflict policy rather than a cutover plan.

Deciding which one is being attempted, in writing, before any export runs, is the step most often skipped.

15 systems in this category, 3 of them documented in a published case study.

What survives a migration, and what quietly does not

Records move easily. What breaks is everything that gave them meaning: associations between objects, historical activity, the stage a deal was in when it was lost, custom fields whose type has no equivalent on the other side, and automation that fired against values that no longer exist.

A fidelity check is the only defence, and it has to be agreed before the move rather than constructed afterwards to explain a discrepancy. It asks a small number of questions of both systems and requires the same answer from each.

A rollback position matters more than a rehearsal. A migration that cannot be reversed is a decision taken under time pressure with no way back, and the window in which reversal stays possible is shorter than most plans assume.

The three fidelity checks, what each catches and what each missesThree checks run against every migrated object. The count reconciliation requires that records extracted equal records loaded plus records rejected, catching losses in transit and truncated batches, and missing any record that arrived with a field emptied. The field sample compares every mapped field on 500 random records per object, catching dropped picklist values, truncation and timezone shifts, and missing defects rarer than the sample can detect. The assertion check computes pipeline value, owned account count and deals carrying a close date on both sides, catching a mapping that is individually valid but wrong in aggregate, and missing offsetting errors that leave the total unchanged. Each check is listed with its blind spot because the defect this migration actually had — picklist values silently dropped — was invisible to the first check and found only by the second.THREE CHECKS, CHOSEN TO FAIL DIFFERENTLYCOUNTExtracted = loaded + rejected, per objectCATCHESrecords lost in transit; truncated batchesMISSESa record that arrived with a field emptiedFIELD SAMPLE500 random records, every mapped fieldCATCHESdropped picklists, truncation, timezonesMISSESa defect rarer than the sample can seeASSERTIONPipeline value, owners, close datesCATCHESvalid record by record, wrong in totalMISSESoffsetting errors that cancel outThe defect this migration had — picklist values dropped on import — is invisible to the first check and was found only by the second.

The checks that have to return the same answer on both systems

Which system is authoritative for each object across two CRMsSix objects, each assigned to one authoritative system. HubSpot owns leads and contacts, where marketing engagement is recorded. Salesforce owns accounts, opportunities and the price book, which carry the forecast and the enterprise hierarchy. Activity is written by both systems and reconciled on a shared identifier rather than owned by either. A filled marker indicates the authoritative system for that object.OBJECTWHYHUBSPOTSALESFORCELeadCreated and worked in marketingContactEngagement history lives hereAccount / CompanyEnterprise hierarchy and territoryOpportunity / DealForecast of recordActivityWritten by both, reconciled on identityProduct / PricingPrice book is authoritativeFilled: the authoritative system. Hollow on both: written by each and reconciled on a shared identifier, never merged by guess.

Where two CRMs coexist, which system owns which record and which field

Systems in this category

Salesforce

Coexistence or migration, with a system of record agreed per field before anything moves.

Zoho CRM

Migration with a rehearsal, a reconciliation and a documented rollback position.

Microsoft Dynamics 365

Built to a regulatory constraint where the packaged connector could not meet it.

Pipedrive

Pipeline and activity history carried across without flattening the stage model.

Copper

Google-native records mapped onto HubSpot's object model.

SugarCRM

Custom modules resolved to objects rather than dropped into notes.

Keap

Campaign and contact history preserved through the move.

Insightly

Projects and opportunities separated on arrival rather than merged.

Close

Call and sequence history retained against the contact.

monday CRM

Board columns mapped to properties with types decided rather than inferred.

Attio

Relational records reconciled against HubSpot associations.

DealCloud

Relationship and coverage data joined to the commercial pipeline.

Clari

Forecast submissions read against the pipeline that produced them.

Gong

Conversation signals attached to the deal, with retention agreed first.

Chorus

Call analysis surfaced on the record rather than in a second tab.

Documented engagements

Each of these is a published study of one build, with the object model, the decisions taken and what the approach does not establish.

Common Questions

Frequently Asked Questions

The export is days. The decisions are weeks. Time is spent on the object model, on which historical activity is worth carrying, and on reconciling identity between systems that each minted their own identifiers. A migration quoted on record volume alone has been quoted on the cheapest part of it.

Yes, and it is a legitimate architecture rather than a failure to decide, provided ownership is settled per field. It is also permanently more expensive than one system, because every schema change has to be made twice and reconciled once.

Association history, field-level audit trails, attachments over a size limit, and the meaning of any custom field whose options were free text. None of that appears in a record count, which is why record counts are a poor acceptance test.

Selectively. Activity attached to open relationships almost always earns its place. Activity attached to records closed years ago is volume that slows every subsequent operation and is consulted rarely, and it can be archived outside the CRM and referenced.

Further reading

Long-form already published on the argument this category turns on.

Related categories

A system in this category that is not listed

The directory shows range rather than limits. A scoped build is quoted from the object model on each side and the fields that have to cross between them.

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