Navigated to blog › crm-custom-field-validation-csv
Back to Blog
crm-import-guides

CRM Custom Field Validation: Fix Invalid Values Before Upload (2026)

March 21, 2026
13
By SplitForge Team

Quick Answer

CRM custom field import failures split into four categories: dropdown/picklist values that don't match any configured option, type mismatches where the value format doesn't match the field definition, required custom fields that are blank in the CSV, and lookup field references that point to records that don't exist in the target CRM.

Why it happens: Custom fields are configured per account — the same field name may have completely different valid values across two Salesforce orgs, two HubSpot portals, or two Zoho instances. Source data validated in one environment is not automatically valid in another.

The fix: Export your custom field definitions from the target CRM before validating the CSV. Check every dropdown column against its configured options, every number field for formatting characters, every date field for format consistency.

Root cause: Dropdown/picklist mismatches are one of the most common custom field failures. A value imported from a legacy system that doesn't exist in the target CRM's dropdown definition fails silently — the record imports, the field is blank.


The Silent Custom Field Failure

Custom field errors are different from structural import errors. A structural error (wrong column count, bad email format) usually produces a row rejection. Custom field type mismatches almost always produce a silent drop — the record imports, the custom field is blank, and the failure is invisible in the import summary.

3 symptoms of silent custom field failures:

1. DROPDOWN BLANK AFTER IMPORT
   Record imported successfully → custom dropdown field shows blank
   → Value in CSV doesn't exist in the dropdown's configured options
   → Fix: export dropdown options from CRM, align CSV values to exact match

2. NUMBER FIELD BLANK AFTER IMPORT
   Record imported → numeric custom field shows blank
   → Currency symbol, comma, or text in the numeric value
   → Fix: strip formatting from number columns before importing

3. DATE FIELD BLANK AFTER IMPORT
   Record imported → date custom field shows blank
   → Date format doesn't match what the CRM field expects
   → Fix: standardize to the CRM's expected date format (see Fix 3)

Rule: If custom fields are blank after a "successful" import, don't re-import yet. Diagnose which field type is failing and fix the source data first.


Fast Fix (90 Seconds)

If custom fields are blank after import, run this check sequence:

  1. Open 3–5 affected records in your CRM — identify which specific custom fields are blank.
  2. Go to the field definition — CRM Settings > Fields > [Object] > [Custom Field]. Note the field type and, for dropdowns, the configured option values.
  3. Open your CSV — Find the column corresponding to that field. Check: does every value exactly match one of the configured options? Are there currency symbols in numeric fields? Is the date format correct?
  4. Run Data Validator — Provide the configured dropdown options as the valid value list. The validator checks every row against it in your browser.
  5. Fix the source CSV, reimport affected records using merge/update — don't reimport the full file.

TL;DR: Custom field failures are almost always silent — the record imports, the field is blank. Export your dropdown option lists from the CRM before validating. Check number fields for currency characters. Validate date formats match the CRM's expected format. Run Data Validator to catch all mismatches before uploading.


You imported 8,000 contacts into Salesforce. The import summary says 8,000 succeeded, 0 failed. Three weeks later, a sales manager reports that the "Account Tier" field is blank on every record. You check the import CSV — the field was populated in every row. The values were: Gold, Silver, Bronze. The Salesforce picklist uses: Tier 1, Tier 2, Tier 3. None of the CSV values matched any picklist option.

8,000 records. Zero failures flagged. All the Account Tier data is gone.

CRM data often contains customer classifications, deal stages, and account segmentation data — commercial intelligence that's personal data when paired with contact information under GDPR Article 4(1). Most CSV validation tools upload your file to a remote server to process it. For a CRM export containing contact names alongside account tier, deal stage, or revenue fields, that upload creates a GDPR Article 5(1)(c) data minimization exposure — transferring data outside your control, often without a Data Processing Agreement — and triggers Article 28 processor obligations with the vendor. This occurs before you've confirmed the file is even correct. SplitForge's Data Validator processes validation entirely in Web Worker threads in your browser — the file never reaches any external server. Confirm this in Chrome DevTools under the Network tab during validation: zero outbound requests.

Validation patterns in this guide were tested against Salesforce, HubSpot, and Zoho CRM custom field configurations, March 2026. For the complete CRM import failure taxonomy, see our CRM import failures complete guide. For Salesforce-specific picklist errors, see Fix Salesforce Bad Value for Restricted Picklist. For field mapping errors, see the CRM CSV Field Mapping Guide.


Custom Field Failure Patterns by Type

Field TypeCommon FailureWhy It FailsFix
Dropdown / PicklistValue not in option listCase mismatch, legacy value, wrong systemExport options from CRM, align CSV values
Number / CurrencyValue is blank after importCurrency symbol or comma in valueStrip $, , commas before import
DateValue is blank after importWrong date format for CRM localeConvert to CRM's expected format
Checkbox / BooleanValue ignored"Yes/No" instead of TRUE/FALSEUse CRM's accepted boolean format
Lookup / Relationship"Record not found"Referenced record doesn't exist in CRMPre-import referenced records
Required custom fieldRow rejectedField is blank in CSV, required in CRMPopulate or provide default value
Multi-select picklistOnly one value importedValues not correctly comma-separatedFormat as "Value1;Value2" per CRM docs

Table of Contents


Fix 1: Dropdown and Picklist Mismatches

Dropdown custom fields in every CRM compare the imported value to a configured list of valid options. The comparison is almost always case-sensitive and whitespace-sensitive. Gold and gold are different values. Gold and Gold (trailing space) are different values.

❌ BROKEN — Picklist values from source system don't match target CRM:

Source system picklist options: Gold, Silver, Bronze
Target Salesforce picklist options: Tier 1, Tier 2, Tier 3

CSV values imported:
Gold     → no match in target → field blank
Silver   → no match in target → field blank
Bronze   → no match in target → field blank

All rows import successfully. All Account_Tier__c fields are blank.
No error generated.

FIXED — map source values to target values before import:
Gold   → Tier 1
Silver → Tier 2
Bronze → Tier 3

How to export dropdown options from each CRM:

  • Salesforce: Setup > Object Manager > [Object] > Fields & Relationships > [Field] > Values section lists all active options
  • HubSpot: Settings > Properties > [Object] > [Property] > Options tab shows all defined values
  • Zoho: Setup > Modules and Fields > [Module] > [Field] > Edit shows option list

Build a mapping table before importing any file with dropdown custom fields. Every source value must map to an exact target option.

What a Dropdown Validation Failure List Looks Like

This is the output you want to see BEFORE importing — not after discovering blank fields in the CRM.

❌ INVALID DROPDOWN VALUES DETECTED (Data Validator output):

Column: Account_Tier__c
Valid options: Tier 1, Tier 2, Tier 3

Row 14:  "gold"      → case mismatch — no match in option list
Row 27:  "Gold "     → trailing space — "Gold " ≠ "Gold" ≠ "Tier 1"
Row 82:  "Tier One"  → synonym, not the configured label
Row 103: "SILVER"    → all caps — no match
Row 241: ""          → blank — required field

5 rows would import with Account_Tier__c = [blank].
4 require value remapping. 1 requires data to be sourced.

Fix every row in this list before importing. Running validation again after fixing confirms zero mismatches before the upload.

Here's what the silent failure looks like at the system level — this is what Salesforce's internal log records for a picklist mismatch, which never surfaces in the import summary:

❌ RAW IMPORT RESULT (Salesforce internal field assignment):

Field:        Account_Tier__c (Restricted Picklist)
Input value:  "Gold "          ← trailing space, invisible in spreadsheet
System check: "Gold " not in [Tier 1, Tier 2, Tier 3]
Assigned:     null

Field:        Account_Tier__c
Input value:  "gold"           ← case mismatch
System check: "gold" not in [Tier 1, Tier 2, Tier 3]
Assigned:     null

Import summary line: "1 record(s) imported successfully."
Account_Tier__c in Salesforce: [blank]

The import didn't fail. The field assignment silently failed.

The trailing space is the version that kills you — it looks identical to "Gold" in every spreadsheet viewer. Only a raw text editor or a validator that trims and compares values will catch it.


Fix 2: Number and Currency Field Failures

Number and currency custom fields behave identically to standard number fields — they only accept plain decimal values. Currency symbols, comma thousands separators, and percentage signs cause silent field drops.

❌ BROKEN — Number custom field values that import as blank:

Custom field type: Currency (Number)

CSV values that fail silently:
"$12,500.00"    → currency symbol + comma → blank
"12,500"        → comma as thousands separator → blank
"12500.00 USD"  → trailing text → blank
"(500.00)"      → accounting negative notation → blank
"12.5K"         → abbreviated → blank
"N/A"           → text in numeric field → blank

FIXED:
12500.00
12500.00
12500.00
-500.00
12500.00
[remove row or use 0 — N/A has no numeric equivalent]

Fix 3: Date Field Format Mismatches

Custom date fields follow the same format requirements as standard date fields — the expected format depends on the CRM and account locale. For custom fields, the format requirement is the same as the standard date field for that CRM.

❌ BROKEN — Date custom field formats that import as blank:

CRM expecting MM/DD/YYYY (Salesforce US locale):
"15/04/2026"    → DD/MM/YYYY → blank
"April 15 2026" → natural language → blank
"2026-04-15"    → ISO 8601 → may work in some versions; use MM/DD/YYYY to be safe
"04-15-26"      → two-digit year → blank

FIXED — MM/DD/YYYY for Salesforce US:
04/15/2026
04/15/2026
04/15/2026
04/15/2026

For cross-platform imports, use ISO 8601 (YYYY-MM-DD) as the universal format — it's accepted by HubSpot, Pipedrive, and most Salesforce configurations regardless of locale.


Fix 4: Lookup Field Reference Failures

Lookup and relationship custom fields store references to other records by ID or by a unique external identifier. If the referenced record doesn't exist in the target CRM, the lookup fails — either the row is rejected or the lookup field is left blank.

❌ BROKEN — Lookup fails on company name mismatch (silent field blank):

Custom field: Primary_Account__c (lookup to Account object)

CSV value → CRM record name → Match?
"Acme Corp"        ↔ "Acme Corporation"    → ❌ no match → field blank
"ACME Corporation" ↔ "Acme Corporation"    → ❌ case mismatch → field blank
"Acme Corp."       ↔ "Acme Corporation"    → ❌ period difference → field blank
"Acme Corporation" ↔ "Acme Corporation"    → ✓ exact match → field populated

No import error generated for the ❌ rows.
The contact imports. The Primary_Account__c field is blank.

FIXED — two approaches:

Approach A (match by ID — most reliable):
  CSV value: 001XX000003AAAA   (18-character Salesforce Account ID)
  Salesforce resolves by ID, not name — no name matching ambiguity

Approach B (match by exact name):
  Export Account records from Salesforce
  Find the exact Account Name for each lookup value in your CSV
  Replace CSV values with exact matches character-for-character

Import parent records before child records. Always. If your import includes contacts with a custom Account lookup field, the Accounts must exist in the target CRM before importing the contacts.


Fix 5: Required Custom Field Violations

Some CRM administrators configure custom fields as required — meaning every record must have a value. A CSV row with a blank required custom field is rejected. Unlike dropdown mismatches (which are silent), required field violations usually produce an explicit error.

❌ BROKEN — Required custom field blank in CSV:

Salesforce custom field: Contract_Type__c (required)
CSV row: Alice Chen, [email protected], , Enterprise

Error: "Required fields are missing: [Contract_Type__c]"
Row rejected.

FIXED:
Alice Chen, [email protected], SaaS, Enterprise

If the required value genuinely isn't known:
  Option A: Use a placeholder ("Unknown", "TBD") — creates data quality debt
  Option B: Make the field optional before the import, reimport, then make it required again
  Option C: Exclude rows without the required value and import them separately after gathering data

Platform-Specific Custom Field Rules

Salesforce

Salesforce custom fields have an API Name (e.g., Contract_Type__c) and a Label (e.g., "Contract Type"). CSV imports map by Label in the Data Import Wizard. Data Loader maps by API Name. If your CSV uses API names and you're importing via the Wizard, the mapping won't work.

Restricted picklists (controlled by a controlling field or explicitly restricted) only accept exact API values — not display labels in some configurations. For restricted picklists, use the API value in the CSV rather than the display label.

HubSpot

HubSpot custom properties have an Internal Name (e.g., contract_type) and a Label ("Contract Type"). CSV imports map by Label in the browser-based importer. The internal_name is used in the API. For dropdown properties, imported values must match the option labels exactly — including capitalization.

Zoho CRM

Zoho custom fields can be created during the import wizard mapping step ("Add as custom field") — you don't need to pre-create all custom fields before importing. However, for dropdown custom fields, pre-creating the field with its valid option values is safer because on-the-fly dropdown creation may not support all option configurations.


Pre-Import Custom Field Validation Workflow

BEFORE every CRM import containing custom fields:

STEP 1: Export custom field definitions
  → Document every custom field: name, type, required status, dropdown options
  → For Salesforce: Setup > Object Manager > Fields & Relationships
  → For HubSpot: Settings > Properties

STEP 2: Audit your CSV against the definitions
  → For each dropdown column: do all values match configured options exactly?
  → For each number column: are there currency symbols or commas?
  → For each date column: is the format consistent with the CRM's locale?
  → For each lookup column: do all referenced records exist in the target CRM?
  → For each required column: is every row populated?

STEP 3: Run Data Validator
  → Provide dropdown option lists as valid value sets
  → Flag all rows with non-matching dropdown values, blank required fields,
    and format violations in one pass

STEP 4: Fix and re-validate
  → Correct all flagged rows
  → Run validation again to confirm clean
  → Import

Additional Resources

Official CRM Documentation:

Technical Standards:

Tested: Custom field import behavior validated against Salesforce Developer Edition, HubSpot free CRM, and Zoho CRM free tier with custom fields of each type (dropdown, number, date, lookup, required). March 2026.

PLATFORM SPECIFICATION SOURCE
Platform: Salesforce, HubSpot, Zoho CRM
Sources:
  Salesforce: help.salesforce.com — Custom Fields and Picklists
  HubSpot: knowledge.hubspot.com — Custom Properties
  Zoho: help.zoho.com/crm — Custom Fields
Verified: March 2026
Next re-verify: June 2026

Custom field behavior may vary by CRM edition and account configuration.
Always verify dropdown options and required field settings in the target CRM
before a large import operation.

FAQ

The most common cause is a dropdown value that doesn't match any configured option in the target CRM. The record imports, but the field is silently left blank. Export the dropdown option list from your CRM, compare against your CSV values, and fix any mismatches. Check also for trailing spaces — "Gold " and "Gold" are different values to the validator.

No. HubSpot and Zoho CRM both allow creating custom fields during the import wizard mapping step. Salesforce's Data Import Wizard requires fields to exist before mapping. For all platforms, pre-creating dropdown fields with valid option values before importing is safer — it ensures your imported values are validated against the correct option set rather than creating an unconstrained free-text field.

Unrestricted picklists accept any text value — imported values that don't match existing options are added as new values. Restricted picklists only accept values from the configured list — imported values that don't match are rejected or silently dropped. For imports, treat all picklists as restricted and align your CSV values to exact matches regardless of restriction setting.

Export the referenced records from the target CRM and check that every lookup value in your CSV exists in that export. For Salesforce, use the 18-character record ID in the CSV rather than the record name when possible — name matching is case-sensitive and fails on any name variation, while ID matching is exact and reliable.

No. Read-only fields are set by admin configuration or formula field status and cannot be populated via import. If a field needs to receive imported data, the CRM administrator must change its field access to writable before the import runs.


Validate Custom Field Values Before Your CRM Silently Drops Them

Check dropdown columns against your CRM's configured option list before importing
Detect currency symbols, commas, and format issues in numeric custom fields
Identify blank required fields that will cause row rejections before upload
Files validate entirely in your browser — customer classification data never transmitted to any server

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

We use analytics cookies to improve SplitForge. Your files never leave your browser — ever. Privacy policy