Skip to content
Capra Digitals

HubSpot migration with a reconciliation report, not a shrug

Every migration horror story starts the same way: somebody exported a CSV, imported it, and discovered three weeks later that half the activity history never made it. We map, dry-run and reconcile — and you get a report that accounts for every record.

Sources
Salesforce, Pipedrive, Zoho, Dynamics, Freshsales, Zendesk, spreadsheets
Largest migration
70,000+ records with a full reconciliation report
Method
Map, dry run, dedupe, load, reconcile — in that order
Timeline
3–6 weeks depending on volume and history depth

In short

How do you migrate a CRM to HubSpot without losing data?

A safe HubSpot migration has four non-negotiables: a signed-off field mapping document, a dry-run import into a sandbox portal, deduplication and normalisation before load, and a record-level reconciliation report after. Capra Digitals runs all four on every migration. Our largest single move was over 70,000 records with full data integrity.

  • Sources: Salesforce, Pipedrive, Zoho, Dynamics, Freshsales, Zendesk, spreadsheets
  • Largest migration: 70,000+ records with a full reconciliation report
  • Method: Map, dry run, dedupe, load, reconcile — in that order
  • Timeline: 3–6 weeks depending on volume and history depth

Signals

When a migration needs a specialist

  • Years of history you cannot lose

    Notes, emails, call logs and attachments matter as much as the contact records themselves.

  • Custom objects and odd relationships

    Your legacy CRM has bespoke objects that do not map cleanly to HubSpot's model.

  • A hard switch-off date

    The old contract ends on a fixed day and there is no room to run both systems for a quarter.

  • Data you already know is dirty

    Duplicates, dead domains, inconsistent country fields — importing that as-is just moves the problem.

What you get

How we move a CRM without drama

01 /

Extraction and audit

We pull a full export from the source system and profile it: record counts, field fill rates, duplicate clusters, orphaned associations.

Explore
  • Object-by-object record counts
  • Field fill-rate and quality profile
  • Duplicate and conflict detection
  • List of what is genuinely not worth moving
02 /

Mapping document

Every source field gets a destination, a transformation rule, or an explicit decision to drop it. You sign it before we touch the target portal.

Explore
  • Field-to-property mapping with types
  • Picklist and value normalisation rules
  • Association and ownership mapping
  • Explicit drop list, agreed in writing
03 /

Dry run in a sandbox

A full-volume rehearsal into a test portal, so the first time we see an error is not on go-live day.

Explore
  • Full-volume rehearsal import
  • Error log reviewed line by line
  • Spot-check sampling against source records
  • Timed run so cutover length is known
04 /

Cutover and reconciliation

The live load runs in a planned window, then you get a reconciliation report comparing source and destination counts object by object.

Explore
  • Planned cutover window, usually a weekend
  • Record-level reconciliation report
  • Duplicate merge pass after load
  • Two weeks of hypercare on data questions

How it runs

The migration sequence

  1. 01

    Profile the source

    Before promising anything we read the data. Counts, quality, custom objects, attachment volume and how much history is genuinely used.

  2. 02

    Agree the mapping

    A working session per object until every field has a home or a documented reason to be left behind.

  3. 03

    Rehearse

    Full dry run into a sandbox portal. We fix transformation errors there, not in production.

  4. 04

    Cut over and reconcile

    Live load in a planned window, reconciliation report the same day, then a dedupe pass and two weeks of hypercare.

Compare

CSV import versus a managed migration

CSV import versus a managed migration
DIY CSV importCapra migration
Field mappingGuesswork at import timeSigned-off mapping document
Activity historyUsually lostMigrated and associated
DuplicatesImported as-isDetected and merged
VerificationEyeball a few recordsRecord-level reconciliation report
Rollback planNoneSandbox rehearsal and cutover window

Track record

Records in one migration

70k+

Savance ticket history

Duplicates resolved

20k

Merged during the same programme

Data integrity

100%

Verified by reconciliation report

Weeks typical

3–6

Depending on volume and history

Questions

Straight answers

The questions we get asked on almost every call about this work.

Can you migrate activity history, notes and attachments?

Yes. Emails, calls, notes, tasks and attachments migrate with their associations intact where the source system exposes them via API or export. We tell you upfront if a specific object cannot travel.

Which CRMs do you migrate from?

Most commonly Salesforce, Pipedrive, Zoho, Microsoft Dynamics, Freshsales, Zendesk and spreadsheet-based systems. If it has an API or a full export, we can usually move it.

How long will our team be without a CRM?

Typically a single weekend. The dry run tells us exactly how long the live load takes, so we plan the freeze window around a measured number rather than a guess.

Do you clean the data or just move it?

We normalise and deduplicate as part of the migration. Deeper remediation — enrichment, bulk correction, ongoing hygiene rules — is covered by CRM data cleanup.

What if something is missing after go-live?

The reconciliation report is the first place we look, and hypercare covers the two weeks after cutover. Because the source system is kept read-only until sign-off, anything missed can be re-loaded.

Next step

Send us the record counts and we will scope the move

Object counts and a note on how much history matters is enough for a realistic timeline and a fixed price.