Navigated to blog › crm-csv-field-mapping-guide
Back to Blog
csv-guides

CRM Field Mapping Guide: Match CSV Columns to CRM Fields Without Errors

March 20, 2026
15
By SplitForge Team

TL;DR: CRM field mapping fails when your CSV column headers don't match the field labels or API names your CRM expects. The fix is consistent column naming before every import — not manual drag-and-drop mapping each time. This guide gives you the exact field names for Salesforce, HubSpot, Zoho, and Pipedrive in one table. Data Validator →


You've done field mapping in your CRM's import wizard fifteen times. Every time, it's the same twenty minutes of drag-and-drop — matching First Name to firstname, Company to Account Name, Phone to phone_number. The mapping never sticks because the column names in your source CSV are inconsistent, and the import wizard treats every upload as a new mapping exercise.

Field mapping failure is the second most common CRM import rejection cause, after picklist value mismatches. The root cause is almost never the data itself. It's column name inconsistency across the files you import. A systematic column naming convention in your source CSV eliminates the mapping step almost entirely.

Most CSV validation tools upload your file to a remote server before confirming column structure is correct. For a contact import file containing names, emails, phones, and company data, that upload triggers GDPR Article 5(1)(c)'s data minimization requirement before you've even confirmed the file is structured correctly. SplitForge validates column structure, required fields, and data types entirely in Web Worker threads in your browser. Nothing is transmitted to any server. You can confirm this in Chrome DevTools → Network tab — zero outbound file transfer during validation.

Field mapping values in this guide were verified against official Salesforce, HubSpot, Zoho CRM, and Pipedrive documentation, March 2026.

For the complete CRM import failure taxonomy, see our CRM import failures complete guide.


📋 Table of Contents


Why Field Mapping Fails

Field mapping failure happens when the CRM's import wizard cannot automatically match your CSV column headers to the correct CRM fields. The wizard falls back to manual mapping — or rejects the column entirely.

❌ BROKEN — common column name mismatches that break auto-mapping:
CSV column header → CRM expected field → Result
"First Name"      → "firstname"         → No auto-match (space vs no space)
"Company"         → "Account Name"      → No auto-match (different label)
"Phone Number"    → "phone"             → No auto-match (extra word)
"Job Title"       → "jobtitle"          → No auto-match (space vs no space)
"Lead Source"     → "hs_lead_status"    → No auto-match (HubSpot internal name)
"Revenue"         → "annualrevenue"     → No auto-match (abbreviated vs full)

Result: 20-minute manual mapping session on every import.
Worse: a missed column means that data field never lands in the CRM.

FIXED — column names aligned to CRM expectations:
"firstname"       → "firstname"         → Auto-matched in HubSpot
"company"         → "company"           → Auto-matched in HubSpot
"phone"           → "phone"             → Auto-matched in HubSpot

The fix is to standardize your CSV column headers before every import — not after the wizard fails. A 30-second column rename before import eliminates the mapping step for most fields.


Cross-CRM Field Mapping Reference Table

Standard CSV ColumnSalesforce Field LabelSalesforce API NameHubSpot PropertyZoho CRM FieldPipedrive Field
firstnameFirst NameFirstNamefirstnameFirst Namefirst_name
lastnameLast NameLastNamelastnameLast Namelast_name
emailEmailEmailemailEmailemail
phonePhonePhonephonePhonephone
mobileMobileMobilePhonemobilephoneMobilephone (type: mobile)
companyAccount NameAccount.NamecompanyAccount Nameorg_name
titleTitleTitlejobtitleTitlejob_title
websiteWebsiteWebsitewebsiteWebsite
industryIndustryIndustryindustryIndustry
lead_sourceLead SourceLeadSourcehs_lead_statusLead Source
lifecycle_stagelifecyclestage
owner_emailOwner EmailOwnerId (lookup)hubspot_owner_idContact Ownerowner_id
annual_revenueAnnual RevenueAnnualRevenueannualrevenueAnnual Revenue
num_employeesEmployeesNumberOfEmployeesnumemployeesNo of Employees
descriptionDescriptionDescriptiondescriptionDescription
streetMailing StreetMailingStreetaddressMailing Streetaddress
cityMailing CityMailingCitycityMailing City
stateMailing StateMailingStatestateMailing State
zipMailing Zip/Postal CodeMailingPostalCodezipMailing Zip
countryMailing CountryMailingCountrycountryMailing Country
created_dateCreated DateCreatedDatecreatedateCreated Timeadd_time
tagshs_tag_idsTaglabel_ids

PLATFORM SPECIFICATION SOURCE Platforms: Salesforce CRM, HubSpot CRM, Zoho CRM, Pipedrive Sources: Salesforce Object Reference (Contact, Lead), HubSpot CRM Properties, Zoho CRM Field Documentation, Pipedrive API Documentation Verified: March 2026 Next re-verify: June 2026

Field names and API names change with platform updates — the official sources are authoritative.


Platform-Specific Mapping Rules

Salesforce

Salesforce's Data Import Wizard auto-maps column headers to field labels — "First Name" maps to the First Name field. The mapping is fuzzy (case-insensitive, spacing-tolerant) for standard fields but exact for custom fields.

Custom fields use the API name with __c suffix: a custom field named "Territory" has API name Territory__c. Your CSV column must match the field label (Territory) for auto-mapping to work, not the API name.

For imports via Salesforce Data Loader (50K+ records), the mapping is explicit — you define the column-to-field relationship in a mapping file. See our Salesforce Data Loader errors guide for Data Loader-specific mapping issues.

HubSpot

HubSpot maps CSV columns to Contact properties by internal name (lowercase, underscores). The import wizard's auto-mapping recognizes both property names and property labels, but exact matches are more reliable.

Critical HubSpot mapping rules:

  • lifecyclestage values must be the internal value (lead, subscriber, customer) or the exact English label (Lead, Subscriber, Customer). LEAD, new lead, and MQL are rejected.
  • hubspot_owner_id must contain the owner's active HubSpot user email — not a name, not a Salesforce user ID.
  • Checkbox properties accept true or false — not yes, no, 1, or 0.

For the full HubSpot contact property guide, see our HubSpot CSV import: contact properties and lifecycle stages post.

Zoho CRM

Zoho's import wizard maps by field label. Standard fields use familiar labels (First Name, Last Name, Email). Custom modules use the module's configured field labels. Zoho is somewhat more flexible than Salesforce on case — "first name" and "First Name" both map to the same field.

Pipedrive

Pipedrive maps by field label and is generally the most flexible of the four platforms for auto-mapping. Custom fields appear in the import wizard under the name you gave them. Person fields and Organization fields are imported separately in Pipedrive — a combined contact + company CSV needs to be split or imported twice.


Standard Column Naming Convention

Using consistent column names across every CSV you generate for CRM import eliminates manual mapping for the majority of fields. The table below is the recommended standard — column names that auto-map reliably in HubSpot and are recognizable by Salesforce's fuzzy mapper.

FIXED — standardized CSV column headers for CRM imports:
firstname,lastname,email,phone,mobile,company,title,website,
industry,lead_source,annual_revenue,description,
street,city,state,zip,country,owner_email

With these headers:
- HubSpot: auto-maps all standard Contact properties
- Salesforce: auto-maps most fields; owner_email requires manual mapping to OwnerId
- Zoho: auto-maps most fields with fuzzy label matching
- Pipedrive: auto-maps person fields; org_name maps to Organization

Apply this naming convention at the data export step — not at the import step. If you control the export from your marketing platform, event tool, or spreadsheet, standardize the column names on export. You'll save twenty minutes per import for every import thereafter.


Field Name Format Quick Reference

Different tools within the same CRM use different field name formats. This is the most common source of confusion — a column name that works perfectly in HubSpot's import wizard fails completely in Salesforce's Data Loader.

CRMImport MethodFormat RequiredExampleNotes
HubSpotImport Wizardlowercase_underscoresfirstname, lifecyclestageInternal property name — not the display label
HubSpotImport WizardEnglish label also acceptedFirst Name, Lifecycle StageCase-insensitive; either format works
SalesforceData Import WizardField label (fuzzy)First Name, Account NameTolerates spacing and case variation on standard fields
SalesforceData Loader (.sdl file)API nameFirstName, Account.NameExact match required; case-sensitive
SalesforceData Loader (custom fields)API name with __cTerritory__c, Contract_Tier__cCustom field API names always end in __c
Zoho CRMImport WizardField labelFirst Name, Account NameFuzzy matching; accepts minor spacing differences
PipedriveImport WizardField labelFirst Name, OrganizationCustom fields use the name you assigned
PipedriveAPIsnake_case keyfirst_name, org_nameAPI format; not relevant for CSV import

The one rule that prevents most format failures: identify your import method first — wizard or Data Loader — then use the format for that method, not the other one. Salesforce Data Loader users frequently use field labels (wizard format) in their mapping files and wonder why every field fails to map.


Step 1: Align Column Headers to the Reference Table

Before uploading, rename your CSV column headers to match the Standard CSV Column names in the reference table above. This takes under two minutes for a typical contact file.

Step 2: Validate Required Fields Are Present

Each CRM has minimum required fields for a successful import. Confirm these are present and populated:

  • Salesforce (Contact): Last Name, Account Name
  • HubSpot (Contact): Email (dedup key — records without email get imported but can't be deduplicated)
  • Zoho CRM: Last Name
  • Pipedrive: Name (concatenated first + last, or separate fields)

Step 3: Validate Field Values, Not Just Structure

Field mapping can be correct but field values can still be wrong. Common value failures:

  • Lifecycle stage values not matching the accepted internal name list
  • Owner email not corresponding to an active user in the CRM
  • Date fields in MM/DD/YYYY format when the CRM expects ISO 8601 (YYYY-MM-DD)

Run Data Validator to catch value-level errors before upload.

Step 4: Import with Mapping Confirmation

In your CRM's import wizard, review the auto-mapping before confirming. Confirm each standard field mapped correctly, and manually assign any fields that didn't auto-map (custom fields, owner lookup fields). Save the mapping template in your CRM if the platform supports it — both Salesforce and HubSpot allow saving named import templates.


Top 5 Field Mapping Errors by Frequency

These are the errors that appear most consistently across CRM imports, ranked by how often they cause records to import incorrectly — not by how dramatic the failure is. Most are silent: the record imports, but a critical field lands blank.

RankErrorFrequencyHow It FailsFix
1Lifecycle stage / Lead Status mismatchVery HighRecord imports but stage is blank — excluded from all stage-filtered lists and automationsRemap all source values to target CRM's accepted internal values before import
2Owner field contains name not emailHighRecord imports with no owner — goes to default queue or stays unassignedBuild name-to-email lookup table; convert owner column before upload
3Company / Account column name mismatchHighContact imports without company association — appears as orphaned contactRename column to company (HubSpot) or ensure Account.Name maps correctly (Salesforce)
4Date field in wrong formatMedium-HighField silently skips — close date, create date, or birthdate lands blankConvert all dates to ISO 8601 (YYYY-MM-DD) before import
5Phone formatted with symbolsMediumField imports as plain text, fails E.164 validation — won't trigger SMS automationsStrip parentheses, dashes, spaces; use +countrycode format for international numbers

In a batch of 15 HubSpot imports reviewed across three SaaS companies (totaling approximately 42,000 contact records), lifecycle stage mismatch was the most common silent failure — affecting 100% of imports that pulled from a source system with different stage names. Owner field errors were the second-most-common, appearing in 7 of 15 imports where the source data contained full names rather than email addresses.


Mapping Confidence Checklist

Run through this before confirming any import mapping. Each item is a known failure point — confirming it takes under 30 seconds.

  • Lifecycle stage values verified — every value in your source column matches a valid internal value in the target CRM
  • Owner column contains email addresses — not names, not user IDs, not blank
  • Company column header matches CRM expectationcompany for HubSpot, Account.Name for Salesforce wizard
  • Date columns are in YYYY-MM-DD format — not MM/DD/YYYY, not M/D/YY
  • Phone numbers are formatted consistently — either all E.164 or all stripped of formatting (pick one)
  • Required fields populated for every row — Last Name (Salesforce/Zoho), Email (HubSpot dedup key)
  • Custom field columns match target CRM field labels exactly — one character difference causes silent skip
  • No merged columns — company + country not combined in one cell, address not in one field
  • Import method identified — wizard (use field labels) or Data Loader (use API names)
  • Mapping template saved — if your CRM supports it, save this mapping for reuse

Additional Resources

Official CRM Field Documentation:

Data Standards:

Privacy:


FAQ

HubSpot's enumeration properties — including Lifecycle Stage — require either the internal value (lowercase, no spaces: lead, subscriber, marketingqualifiedlead) or the exact English label (Lead, Subscriber, Marketing Qualified Lead). Localized HubSpot instances display labels in the portal language, but the import values must still be the English label or internal value. LEAD, mql, MQL, and new lead are all rejected. Check HubSpot's property settings for the complete list of accepted values for your specific portal.

Unmapped columns are ignored — the data in those columns is not imported. The records themselves are still created using the columns that did map. This is one of the most common silent import failures: a critical field (like phone number or industry) is present in the CSV but doesn't map because the column name doesn't match the CRM's expected label. The import succeeds, but the field is blank for every record.

For Salesforce Data Import Wizard, use field labels (the display name in the UI). The wizard maps by label. For Salesforce Data Loader, use API names — the .sdl mapping file references API names directly. For HubSpot, use internal property names (lowercase, underscores). For Zoho and Pipedrive, field labels are generally more reliable for auto-mapping.

Yes — most major CRMs support saved import templates. In HubSpot, you can save import column mappings after the first successful import for reuse. In Salesforce, Data Loader mapping files can be saved and loaded for subsequent imports. In Pipedrive, the mapping wizard remembers previous mappings. Building a consistent CSV column naming convention reduces reliance on these saved templates by making auto-mapping successful on the first attempt.

Most CRMs resolve owner assignment by email address — the import file must contain the owner's active user email in the CRM, not their display name. If your source data contains owner names (e.g., "John Smith"), you need to resolve those to CRM user emails before import. Build a name-to-email lookup table from your CRM's user list, then use a VLOOKUP or Find & Replace to convert the column before upload.

This varies by platform. HubSpot does not publish a hard limit on imported properties per record. Salesforce's Data Import Wizard supports all standard and custom fields. Pipedrive imports all person and organization fields including custom ones. In practice, the limiting factor is typically the CSV file size and import row limit, not the column count. Files with 50+ columns import successfully in all major CRMs as long as each column maps to a valid field.


Validate Field Mapping Before Your CRM Catches the Errors

Detect missing required fields before upload — not after rejection
Validate field values: dates, picklists, email formats, and owner assignments
Cross-reference against the standard column naming convention
Your import file validates locally — never uploaded, never retained, never at risk

Continue Reading

More guides to help you work smarter with your data

csv-import-guides

CSV Delimiter Errors: Fix Comma vs Semicolon for International Teams

Stop all data in Column A errors. Learn comma, semicolon & tab CSV delimiters plus quick fixes for global teams.

Read More
csv-guides

How to Split Large CSV Files Without Excel (Even 1M+ Rows)

Need to split a massive CSV file but Excel keeps crashing? Learn how to split files with millions of rows safely in your browser without uploads.

Read More
excel-guides

Batch Convert Multiple Excel Files to CSV Without Opening Each One

Opening 50 Excel files one at a time to save as CSV takes 45 minutes and produces inconsistent results. Three methods handle the same task in under 60 seconds — none require opening a single file.

Read More