Home/Insights/This article

A field mapping is the document that records, for every Salesforce field you intend to keep, where it lands in HubSpot, how the value is transformed on the way, and how you will prove it arrived intact. It is the control that prevents data loss in a CRM migration. Most migrations that go wrong skipped it or kept it in someone's head.

This is the checklist version, organized by object. For the surrounding plan, timeline, and cutover, see the complete migration guide.

The short version: Map every field you keep, one row each, with a transformation rule and a validation check. Match records on the Salesforce ID, not on names. Translate picklists by value, not label. Treat opt-outs, owners, and dates as the three highest-risk field groups. Prove every mapped field with counts, sums, and a sample read before cutover.

The mapping document: columns to include

ColumnWhat goes in it
Salesforce object and API nameThe field's API name, not its label. Labels get renamed. API names do not.
Data type and fill ratePicklist, date, currency, and so on, plus the percentage of records populated.
Target HubSpot object and propertyThe internal name, field type, and whether it already exists or must be created.
Transformation ruleTrimming, case, date format, value map, split or merge. Written as a rule, not "clean it up".
Required or uniqueWhether the property must be populated or must hold unique values.
Decision ownerThe named person who approved the mapping, in sales, marketing, or finance.
Validation checkThe specific test that proves the field migrated: count, sum, distinct values, or sample.
StatusUnmapped, mapped, built in HubSpot, loaded in test, validated.

Any field with a fill rate under 5 percent and no named owner is an archive candidate. Do not map it.

Checklist by object

Accounts to companies

Contacts to contacts

Leads to contacts

Opportunities to deals

Activities

Products, quotes, and custom objects

Users and owners

Field-type translation rules

Salesforce typeHubSpot typeWatch for
PicklistDropdown selectMap internal values. Mismatched values load as blanks.
Multi-select picklistMultiple checkboxesSalesforce and HubSpot both use semicolon-separated values. Confirm every option exists in HubSpot first.
CheckboxSingle checkboxTrue and false only. Decide what null means.
DateDate pickerFormat and time zone. A one-day shift can change a quarter.
Date and timeDate and time pickerSalesforce stores UTC. Confirm the display time zone.
CurrencyNumber or deal amountMulti-currency orgs need a conversion rule, stated and tested.
FormulaCalculated property, workflow, or static valueThe logic does not migrate. Rebuild it or load a snapshot.
Roll-up summaryCalculated property or workflowRebuild from associations. Calculated properties need Professional or Enterprise.
Lookup or master-detailAssociationRebuild from IDs, then count associations to verify.
Long text areaMulti-line textCheck for truncation against the target limit.
Auto-numberSingle-line textKeep as text so leading zeros and prefixes survive.

Validation checks for every mapped field

  1. Null counts match. The number of blank values in Salesforce equals the number in HubSpot, after documented exclusions.
  2. Distinct values match. For picklists, the list of values and their counts agree after mapping.
  3. Sums and ranges match. For currency and numbers, totals tie out. For dates, the minimum and maximum agree.
  4. Keys are unique. Zero duplicates on the Salesforce ID, email, and domain.
  5. Associations tie out. Contacts per company, deals per company, and deals per contact agree for a sample of 50 accounts.
  6. Sample read. Open 50 to 100 random records in both systems and compare field by field.
  7. Rerun test. Run the full load in a sandbox twice. The second run should change nothing.

Sign-off before the production load

Frequently asked questions

What is a field mapping in a CRM migration?
A field mapping is a document that lists every source field, the destination property it loads into, the transformation applied, and the check that proves it migrated correctly. It is the main control against data loss.
What is the most common field mapping mistake in a Salesforce to HubSpot migration?
Mapping picklist labels instead of values. The load completes without errors, but mismatched values arrive as blanks, and the loss only shows up later in reporting.
How do you preserve pipeline history during field mapping?
Map closed deals along with open ones, and store original created dates, close dates, and key stage-entry dates in dedicated custom date properties. Do not rely on HubSpot to reconstruct them.
Which fields should not be migrated?
Fields with very low fill rates and no owner, formula fields whose logic will be rebuilt, and legacy fields tied to retired processes. Keep them in a full Salesforce export instead.
How do you match records between Salesforce and HubSpot?
Store the Salesforce ID in a unique-value property on each object and use it as the identifier for every import. Matching on names or partial emails creates duplicates and broken associations.
How many records should you sample when validating a CRM migration?
Reconcile totals on every field, then read 50 to 100 random records side by side. Increase the sample for any object where totals did not tie out on the first pass.

More from Revenue Systems Group

← All insights