CRM Import Failures: Salesforce, HubSpot, Shopify & More (2026)
Quick Answer
You uploaded the file. The progress bar filled. "Import complete." Then you opened the CRM and half the records have blank fields. Or 2,000 rows are simply gone. Or Salesforce threw 45 "Bad Value for Restricted Picklist Field" errors and you don't know which rows, which fields, or why.
CRM import failures are uniquely frustrating because they're silent. The platform often calls it a success. The data tells a different story.
Every failure traces to one of five root causes: structural problems in the file itself, data type mismatches, relational errors (picklist values your CRM doesn't recognize), uniqueness violations like duplicate emails, or permission and configuration blocks. The platform doesn't matter. Salesforce, HubSpot, Shopify, Airtable, QuickBooks—the same five causes, different error messages.
The fix is architectural: validate before upload, not after rejection. This guide covers every major error type across all five platforms with exact fixes, a cross-platform diagnostic matrix, and a pre-import framework that cuts failure rates from 40% to under 5%.
Already mid-failure? Jump straight to your platform:
Want to stop this happening again: run Data Validator on your file before the next upload. Catches every issue in seconds. Nothing leaves your machine.
🔧 Instant Fix: Catch every import error before it reaches your CRM
Validate Your CRM File Before Upload →
Table of Contents
- Why CRM Imports Fail: The Root Cause Taxonomy
- The Real Cost of Skipping Pre-Import Validation
- Pre-Import Data Quality Checklist
- Salesforce Import Errors: Causes and Fixes
- HubSpot Import Errors: Causes and Fixes
- Shopify CSV Import Errors: Causes and Fixes
- Airtable and QuickBooks Import Errors
- Cross-Platform Data Quality Fixes
- Pre-Import Benchmark: What Clean Data Actually Looks Like
- FAQ
Why CRM Imports Fail: The Root Cause Taxonomy
Every CRM import failure traces back to one of five root causes. Understanding the taxonomy before you open the error log saves hours of trial-and-error re-importing.
Root Cause 1: Structural Errors The file itself is malformed. Wrong delimiter (semicolons where CRM expects commas), extra blank columns after the data, a BOM character at the start of the file, or UTF-8 encoding with characters that the CRM's import engine misreads. These errors typically cause the entire import to reject before a single record is processed. If you get a "file cannot be parsed" or "invalid CSV format" error before reaching the field mapping screen, this is your problem. See our guide on fixing CSV delimiter and encoding problems for the full structural troubleshooting workflow.
Root Cause 2: Data Type Mismatches A CRM field expects a number, but your CSV contains "10,000" (with a comma). A date field expects YYYY-MM-DD, but your file has "21/02/26" (UK format). A picklist field expects exactly "Hot Lead," but your file has "Hot" or "hot lead." These errors let the file parse successfully but silently drop values or reject individual rows. They are the hardest to find because the import may report "success" while leaving fields blank.
Root Cause 3: Relational Errors CRMs are relational databases. Your CSV must reference values that already exist: picklist options, account IDs, owner email addresses, pipeline stage names. If your file references a stage named "Discovery Call" but the CRM only knows "Discovery," every row with that stage fails. Salesforce's picklist enforcement and HubSpot's deal stage validation are the most common triggers. This root cause is responsible for the majority of partial import failures—where the import completes but 20–60% of records are missing field values.
Root Cause 4: Uniqueness Violations CRMs enforce uniqueness on certain fields: email address for HubSpot contacts, Salesforce ID for Salesforce records, Handle for Shopify products. If your CSV has duplicate emails in a contact import, only one row per email makes it in. If you are importing 5,000 leads from an event list into HubSpot and 800 of them have emails already in the system, those 800 will merge (or fail, depending on your settings) rather than creating new records. Removing duplicate emails before import is the single highest-impact pre-import step for marketing list imports.
Root Cause 5: Permission and Configuration Errors The user running the import doesn't have write access to a field, or the field is controlled by a workflow that prevents manual update. In Salesforce, validation rules can silently reject records that violate business logic. In HubSpot, trying to import to a property that's set to read-only will silently drop that column's values. These errors are the most frustrating because the error message is often cryptic—or absent entirely.
For a broader overview of how CRM systems handle incoming data, our guide on why your CRM rejects CSV imports covers the architecture behind these validation layers.
CRM Import Error Diagnostic Matrix
Use this table to identify your error type, understand platform behavior, and go straight to the right fix.
| Error Type | Salesforce | HubSpot | Shopify | Airtable | QuickBooks | Row Rejected? | Silent Drop? | Fix Priority |
|---|---|---|---|---|---|---|---|---|
| Wrong delimiter / encoding | ✅ Whole file fails | ✅ Whole file fails | ✅ Whole file fails | ✅ Whole file fails | ✅ Whole file fails | Yes — all rows | No | Fix first |
| Missing required field | ✅ Row rejected | ⚠️ Row created, field blank | ✅ Row rejected | ⚠️ Row created, field blank | ✅ Row rejected | Partial | Yes (HubSpot/Airtable) | Fix before upload |
| Picklist value mismatch | ✅ Row rejected | ⚠️ Field dropped, row kept | N/A | ⚠️ Field dropped, row kept | N/A | Partial (SF) | Yes (HubSpot) | High |
| Invalid email format | N/A | ✅ Row rejected | N/A | N/A | N/A | Yes | No | High |
| Duplicate email | ⚠️ Depends on rules | ⚠️ Merges to existing | N/A | N/A | N/A | No | No | Medium |
| Invalid date format | ✅ Row rejected | ⚠️ Field blank | N/A | ⚠️ Silent drop | ✅ Row rejected | Partial | Yes (HubSpot/Airtable) | Medium |
| Number with comma separator | ⚠️ Silent blank | ⚠️ Silent blank | N/A | N/A | ✅ Row rejected | No (SF/HS) | Yes | Medium |
| Wrong owner / user name | ⚠️ Owner field blank | ⚠️ Owner field blank | N/A | N/A | N/A | No | Yes | Low |
| File over row limit | ✅ Hard stop at 50K | ⚠️ Timeout over 100K | ⚠️ Variant limit at 1K/day | N/A | N/A | Yes (beyond limit) | No | Pre-upload |
🔧 Don't diagnose manually — scan your file and get the answer in seconds
The Real Cost of Skipping Pre-Import Validation
Most teams treat CRM import errors as a minor inconvenience—spend 20 minutes fixing the file, try again. The actual cost is significantly higher.
The IBM Institute for Business Value's 2025 CDO study found that over a quarter of organizations lose more than $5 million annually due to poor data quality. U.S. businesses collectively lose an estimated $3.1 trillion per year to data quality problems according to IBM research, with CRM data being one of the primary vectors. For individual sales teams, the operational impact is concrete: Validity's 2025 State of CRM Data Management report found that 37% of teams report losing revenue directly attributable to poor CRM data quality. Sales reps waste an estimated 550 hours per year—nearly 14 working weeks—dealing with inaccurate CRM information including duplicate records and missing field values.
The specific cost of failed imports compounds over time. A typical scenario: a marketing team imports a 10,000-contact event list with 30% failure rate. The 3,000 failed records are either lost entirely, manually re-entered (at 3–5 minutes per record = 150–250 hours of work), or imported with blank fields that corrupt reporting and automation. The original bad import creates downstream errors for months: marketing automation triggering on incomplete profiles, sales reps calling numbers in the wrong format, and reporting dashboards showing inflated lead counts from duplicates.
Worse: 94% of organizations suspect their customer and prospect data is inaccurate, per Experian research, yet most validate after import rather than before. The fix is architectural: validate before upload, not after rejection. Our case studies on how duplicate data costs companies thousands per quarter and the hidden cost of manual CSV processing quantify what this looks like in practice.
What a Failed Import Actually Costs: A Real Scenario
A B2B marketing team finishes a three-day trade show. They collect 8,400 leads across badge scans, business cards, and a raffle form—three different data sources, three different formats. Monday morning, someone merges the lists in Excel and imports them into Salesforce. The import "succeeds."
What actually happened: 2,100 records failed silently—wrong picklist values for Lead Source, phone numbers formatted as "(555) 123-4567" instead of E.164, and 340 email addresses from the badge scanner with trailing spaces that Salesforce read as invalid. The remaining 6,300 records imported but 1,800 had blank Lead Source fields because the merge defaulted to an empty cell.
The sales team calls the 6,300. Pipeline projections are built off that number. Quota assignments go out. Two weeks later, someone notices the import log. The 2,100 "lost" leads are manually re-entered over three days—15 minutes per record, split across four SDRs. That's 525 hours of selling time gone. The pipeline projection was off by roughly $380,000.
The entire thing would have taken 4 minutes to catch with pre-import validation. Running Data Validator on the merged file would have surfaced every silent failure before a single record was submitted—picklist mismatches, email format errors, blank required fields, all flagged in one report, locally, without the data leaving the machine.
This is not a data engineering problem. It's a workflow timing problem. The data was fixable. The question is whether you fix it before the import or three weeks later, in a pipeline review meeting, in front of your VP of Sales.
🔧 Stop the bad-import cycle at the source — before it reaches your pipeline
Pre-Import Data Quality Checklist
Run this checklist against any CSV before uploading to any CRM. It catches the top 10 causes of import failures across all platforms.
File Structure:
- File is saved as UTF-8 CSV (not ANSI, not UTF-16)
- No BOM character at start of file (open in text editor, check for
at line 1) - Single sheet only (Excel multi-tab files fail every CRM import)
- Header row is row 1 with no blank columns to the right of your data
- No blank rows between data rows or at the end of the file
Data Types:
- Date fields match CRM-expected format (Salesforce: YYYY-MM-DD, HubSpot: MM/DD/YYYY by default)
- Number fields contain only digits, no comma separators ("10000" not "10,000")
- Boolean fields use only
true/falseorYes/No(check your CRM's requirement) - Currency fields contain only numeric values, no
$or currency symbols
Relational Integrity:
- All picklist/dropdown values match exact CRM options (case-sensitive in Salesforce)
- Owner fields use email address, not full name (avoids "owner matches multiple users" errors)
- Required fields have values in every row (no blanks in mandatory columns)
- Lookup field IDs are valid 15 or 18-character Salesforce IDs (if applicable)
Uniqueness:
- Email addresses are unique (no duplicates within the file for contact imports)
- Record IDs (if updating existing records) match actual IDs in your CRM
- Product handles/SKUs are unique (for e-commerce platform imports)
Scale:
- File size under platform limit (Salesforce: 5MB/import wizard, HubSpot: no hard cap but 10MB recommended, Shopify: no official limit but 1,000 variant/day limit applies)
- Row count within batch size (Salesforce Data Import Wizard: 50,000 max)
🔧 Run this entire checklist automatically in seconds
Auto-Validate Your Import File →
Salesforce Import Errors: Causes and Fixes
Salesforce has two main import tools: the Data Import Wizard (up to 50,000 records, web UI) and the Data Loader (bulk operations, command-line). Error behavior differs between them, but the underlying causes are the same.
Error: "Bad Value for Restricted Picklist Field"
What it means: A value in your CSV does not exactly match an existing picklist option in Salesforce. Picklist fields in Salesforce are strict—"Hot," "hot," and "Hot Lead" are three different values and only one of them (the one in the picklist) is valid.
Where it appears: Record-level error in the failure log. The row is rejected entirely.
How to fix it:
- Export your org's picklist values: Setup → Object Manager → [Object] → Fields & Relationships → [Field] → Values
- Open your CSV and run a find-replace for every variant of the wrong value
- If you need to add new picklist values, do it in Salesforce before importing
Prevention: Before every Salesforce import, export a test record from the target object to see exact picklist values in use. Use those as your CSV template.
Our detailed guide on fixing Salesforce bad value restricted picklist errors covers the multi-value picklist edge case and how to handle historical data with deprecated picklist values.
🔧 Standardize all picklist values across 50,000+ rows instantly
Error: "Invalid Number: [Field Name]"
What it means: A number field received a value it cannot parse—most commonly because your CSV has comma-formatted numbers ("10,000" instead of "10000") or currency symbols ("$5,000" instead of "5000").
The silent failure variant: Salesforce may report the row as a success in the import log, but when you check the record, the number field is blank. This happens with the Data Import Wizard specifically. Data Loader is more likely to fail the row explicitly.
How to fix it:
- In Excel/Sheets, select the number column
- Format → Number → No decimal places, no thousands separator
- For currency fields, use Find & Replace to remove
$,€,£, and comma separators - Save as CSV and re-import
For the full walkthrough including the silent-blank failure detection method, see our guide on fixing Salesforce invalid number comma separator errors.
Error: "TRANSFER_REQUIRES_READ on [Object]"
What it means: You are trying to assign a record to an owner who does not have read access to the object. This commonly happens when importing leads or contacts with an Owner field that contains a username from a different permission set or org unit.
How to fix it:
- Verify the assigned owner has at minimum Read access to the object
- If bulk-assigning to a queue, use the Queue's exact API name, not its label
- If the error is on a large subset of records, check whether those records are associated with an account type that restricts ownership transfer
For the full context, see fixing the Salesforce TRANSFER_REQUIRES_READ error before CSV import.
Error: Date Format Rejected
What it means: Salesforce's Data Loader expects dates in ISO 8601 format (YYYY-MM-DD) and DateTime in YYYY-MM-DDThh:mm:ssZ format. The Data Import Wizard is more forgiving but still fails on many European date formats.
Common failures:
21/02/2026→ fails (DD/MM/YYYY is not accepted)02-21-26→ fails (abbreviated year, wrong separator)February 21, 2026→ fails (text month)1740787200→ fails in UI (Unix timestamps work in API only)
How to fix it: In Excel, select the date column, format as YYYY-MM-DD using a custom format string, then save as CSV. Google Sheets: use =TEXT(A2, "YYYY-MM-DD") to convert.
Error: "Duplicate Record Detected"
What it means: Salesforce's duplicate rules (configured in Setup → Duplicate Management) have flagged this record as matching an existing one. The import may still create the record or block it entirely, depending on your duplicate rule action setting.
How to fix it:
- If you want to update existing records: export them first, note their Salesforce IDs, add an ID column to your import file, and use Upsert (Data Loader) instead of Insert
- If you want to block true duplicates: clean your file before import using Remove Duplicates on the email column, then reimport
- If you're getting false positives: temporarily disable the duplicate alert (not recommended for production orgs without admin sign-off)
HubSpot Import Errors: Causes and Fixes
HubSpot's import engine is more forgiving than Salesforce in some areas (it uses email as the primary deduplication key and handles partial matches gracefully) but has its own rigid requirements—especially around deal stages, contact associations, and property type matching.
Error: "Field Mapping Failed" / Column Not Recognized
What it means: HubSpot's auto-mapping could not match your column header to a known property. This happens because HubSpot matches on property internal name (e.g., hs_lead_status), not display label. If your column says "Lead Status" but the property's internal name is hs_lead_status, HubSpot may not auto-map it.
How to fix it:
- Before importing, go to Settings → Properties → export the property list
- Match your CSV headers to the property internal names
- Alternatively, use HubSpot's mapping UI to manually assign each column during import setup—don't rely on auto-mapping for non-standard properties
The ghost column problem: If HubSpot shows far more columns than you have data columns, you have blank columns in your file (hidden spaces or empty cells after the last data column). Select all columns to the right of your data in Excel and delete their contents before saving. See our detailed guide on fixing HubSpot CSV field mapping failed errors.
🔧 Find and remove ghost columns before upload
Clean Ghost Columns Automatically →
Error: "Invalid Value for Email Property"
What it means: The email column contains a value that fails RFC 5322 validation—multiple @ signs, consecutive dots, spaces, unescaped quotes, or domains with no TLD.
HubSpot's behavior: The entire row is rejected (not imported at all) when the email is invalid, because email is the unique identifier HubSpot uses to match and deduplicate contacts.
Common invalid patterns:
john.smith(no @ or domain)john@[email protected](two @ signs)[email protected](consecutive dots)"john smith"@company.com(unescaped quotes)john@company(no TLD)
How to fix it: Use Data Validator to flag every invalid email in a column before upload. Regex pattern for valid email: ^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$. Our guide on cleaning 100,000-row email lists in under 5 minutes covers bulk validation at scale.
Error: "Duplicate Records in Import File"
What it means: Two or more rows in your CSV have the same email address. HubSpot will import one and skip the rest. Which one it keeps depends on row order.
Why this matters beyond import counts: If you are importing an event attendee list merged from multiple sources, duplicates create artificially inflated enrollment counts for list-based workflows. Marketing automation runs against the surviving record—not both—meaning follow-up sequences may fire for only half the intended audience.
How to fix it:
- Before import, sort your CSV by email, then manually review duplicates to decide which row to keep
- For large files, use Remove Duplicates to deduplicate on the email column—keeping either the first or last occurrence
Our benchmark on removing duplicates from 10 million rows in 23 seconds shows what client-side deduplication looks like at scale.
🔧 Remove duplicate contacts before HubSpot import—no upload required
Error: "Deal Stage Invalid" / "Pipeline Not Found"
What it means: The Deal Stage or Pipeline value in your CSV does not match an existing stage in HubSpot. Unlike contacts (where invalid property values are ignored and the record is still created), Deal Stage validation is hard—records with an invalid deal stage are rejected entirely.
How to fix it:
- In HubSpot, navigate to Settings → CRM → Deals → Pipelines
- Export or note the exact stage names (they are case-insensitive in HubSpot, but the label must match exactly)
- If your stage names differ, use find-replace to standardize before import
Error: "Owner Does Not Match a User in HubSpot"
What it means: The record owner value in your CSV (usually a name like "John Smith") matches more than one user in your HubSpot portal, or matches zero users. The record is imported but the Owner field is left blank.
How to fix it: Use email addresses for the Owner column instead of display names. HubSpot resolves owners by email reliably; name resolution fails whenever two users share a name or when the name in your file differs from the HubSpot display name by a single character.
Shopify CSV Import Errors: Causes and Fixes
Shopify's product CSV importer is stricter than most CRM importers because product data has relational constraints (handle → variant → image chain) and strict field type enforcement. Shopify's 2026 import engine rejects malformed rows without logging a detailed reason in the UI—you get "X products failed to import" with minimal guidance.
Error: "Invalid CSV Header: Missing Headers"
What it means: The required header columns are not present. Shopify requires specific column headers in a specific format. The minimum required header row is:
Handle,Title,Body (HTML),Vendor,Type,Tags,Published,Option1 Name,Option1 Value,Variant SKU,Variant Price,Variant Inventory Qty,Image Src
Common cause: Downloading a Shopify CSV export, opening in Excel, saving without UTF-8 encoding, or having Excel convert the comma-delimited format. The header row gets corrupted or truncated.
How to fix it:
- Always export a sample from Shopify first and use it as your template
- Save your file as "CSV UTF-8" (not just "CSV") in Excel
- Never open a Shopify CSV in Excel and re-save it without checking encoding
Error: "Validation Failed: Options Are Not Unique"
What it means: Two or more variant rows for the same product have identical option combinations. Shopify treats Size: M / Color: Black as a unique variant—you cannot have two rows with Handle: "t-shirt" and Option1: "M" / Option2: "Black."
How to fix it: Sort your CSV by Handle, then by Option1/Option2, and look for rows with identical combinations. Either merge them (keeping the one with the correct price/inventory) or add a differentiating option.
Error: "Validation Failed: Price Can't Be Blank"
What it means: The Variant Price column has an empty or non-numeric value in one or more rows.
Common cause: Excel auto-formatting. When a price column contains $14.99, Excel may interpret and strip the currency symbol when saving as CSV, leaving a blank or a value with formatting artifacts.
How to fix it: In Excel, format the price column as "Number" with 2 decimal places before saving. Ensure no cells in the column are blank or contain currency symbols.
Shopify's 1,000 Variant/Day Limit
Non-Plus Shopify stores can create a maximum of 1,000 new product variants per 24-hour period via CSV import. If your import creates more than 1,000 new variants, the import will appear to complete but many variants will be silently skipped.
Detection: After import, compare variant counts in Shopify against your CSV. If the numbers don't match and you imported more than 1,000 lines, you've hit this limit.
Fix: Split your product CSV into multiple files of ≤1,000 variants each and import across multiple days.
For large catalog migrations, splitting CSVs while preserving row relationships is the right approach. Our guide to cleaning product catalog CSVs for Shopify and WooCommerce covers the full catalog import workflow. If your catalog also lists on Amazon Seller Central, see fixing the invalid SKU format error in Amazon CSV imports—the handle and SKU requirements differ significantly between platforms.
Airtable and QuickBooks Import Errors
Airtable: "Invalid Date Format"
Airtable expects dates in ISO 8601 format (YYYY-MM-DD) for date fields and will silently drop values that don't match. Unlike Salesforce, Airtable won't tell you which rows failed date validation in the import UI—you'll see blank date fields on records you expected to be populated.
Fix: Before importing to Airtable, convert all date columns to YYYY-MM-DD format. In Excel: select the date column → Format Cells → Custom → YYYY-MM-DD. Our guide on fixing Airtable CSV invalid date format errors covers the mixed-date-format scenario where a single column has three different date formats from different data sources.
🔧 Standardize mixed date formats across 1M+ rows instantly
QuickBooks: "Continue Button Grayed Out"
This error prevents the import from starting at all. The Continue button in QuickBooks' CSV import wizard goes gray when the file has structural problems: wrong number of columns, a header row it doesn't recognize, or blank rows before the data begins.
Fix:
- Delete all blank rows above and below your data
- Ensure the column headers exactly match QuickBooks' expected format (export a sample from QuickBooks first)
- Remove any merged cells (if the file was originally an Excel workbook)
- Save as CSV UTF-8
For the full diagnostic, see fixing QuickBooks CSV continue button grayed out.
QuickBooks: "Zeros Not Allowed" Import Error
This error appears when importing journal entries or transactions where a debit or credit amount column contains zero. QuickBooks requires every transaction line to have a non-zero amount in either Debit or Credit—a zero in both columns violates the double-entry accounting rule the importer enforces. Our full fix guide is at fixing QuickBooks zeros not allowed CSV import error.
Cross-Platform Data Quality Fixes
These four data quality issues cause import failures across all platforms. Fix them once before uploading anywhere.
1. Duplicate Email Addresses
The single highest-volume cause of partial import failures across all CRMs. Before any contact or lead import, run deduplication on the email column.
SplitForge approach: Use Remove Duplicates, select Email as the deduplication key, choose "Keep last occurrence" (usually has the most recent data), download the cleaned file. For 100,000-row lists, this runs in under 5 seconds. For the business case on why deduplication matters before CRM upload, see remove duplicate emails before CRM import.
2. International Phone Number Formatting
CRMs are opinionated about phone number format. Salesforce and HubSpot both accept multiple formats but normalize to E.164 internally. Shopify requires no specific format but validates length. If your list contains numbers from 50+ countries mixed with US numbers, you have a formatting problem.
Common failures:
(555) 123-4567→ may fail country code detection+1-555-123-4567→ acceptable but inconsistent with5551234567in the same column0044 20 7946 0958→ UK number in trunk format, fails E.164 check
The international phone number standardization guide covers the 50+ country format matrix. SplitForge Data Cleaner handles bulk phone number normalization to E.164 format (e.g., +15551234567) that all major CRMs accept.
🔧 Standardize phone numbers from 50+ countries to E.164 — no code, no upload
3. Date Format Normalization
Different export sources use different date formats. When you merge data from Salesforce export (ISO 8601), a trade show scan (MM/DD/YYYY), and a European partner list (DD/MM/YYYY), you get a single column with three different date formats—and every CRM will silently drop the ones it doesn't recognize.
Detection: Open the date column in a text editor (not Excel—Excel will auto-format and hide the problem). Look for values where the day/month interpretation is ambiguous (02/03/2026—is that February 3 or March 2?).
Fix: Sort by date column, identify format clusters, convert each cluster to YYYY-MM-DD using the appropriate conversion formula. Our guide on fixing mixed date formats in CSV columns has the exact Excel formulas for each format variant.
4. Required Field Validation
Every CRM has required fields—fields that must have a value for the record to be created. Missing values in required fields cause row-level rejections that are easy to miss in large import files.
How to find them:
- Export a single existing record from the target CRM object
- Note which fields are marked required in the field list
- Before import, run a blank-cell check on those columns in your CSV
SplitForge Data Validator profiles every column in your file: null percentage, data type, unique count. Any column with >0% null rate that maps to a required CRM field is a guaranteed partial failure.
Salesforce vs HubSpot: Import Strictness Compared
Both are dominant CRMs. Their import engines behave very differently. Understanding the difference changes how you prep your file.
| Dimension | Salesforce | HubSpot |
|---|---|---|
| Primary deduplication key | Salesforce ID (for updates) / Email (for leads) | Email (always) |
| Picklist enforcement | Hard — row rejected if value doesn't exist | Soft — field blank, row still created |
| Required fields | Hard — row rejected | Hard — row rejected |
| Invalid email | Depends on field type | Hard — entire row rejected |
| Number with comma | Silent blank (Wizard) / failure (Loader) | Silent blank |
| Date format | Hard — ISO 8601 required for Loader | Soft — field blank |
| Deal stage | N/A (Opportunity stage: soft drop) | Hard — deal rejected |
| Owner resolution | Uses username / email | Uses email (name causes ambiguity) |
| Import row limit | 50,000 (Wizard) / unlimited (Loader) | No hard cap, session timeout ~100K |
| Error reporting | Downloadable failure log per import | Downloadable error CSV with error codes |
| Silent failures | Common with Data Import Wizard | Common — HubSpot creates record regardless |
The key difference: Salesforce fails loudly on strict fields (picklists, required fields, IDs) but can silently corrupt number and date fields. HubSpot fails loudly on emails (because email is the identity key) but silently drops almost everything else—creating records that look complete in the import count but are missing field values you need for automation and reporting.
This is why HubSpot imports often feel like they "worked" until your marketing sequences start firing on contacts with no phone number, no company, or no lifecycle stage. The import succeeded. The data didn't.
🔧 Validate against Salesforce picklist rules AND HubSpot property types before you choose which file to upload where
Platform-Specific Pre-Import Validation →
Pre-Import Benchmark: What Clean Data Actually Looks Like
Import success rates vary dramatically based on data quality at upload time. The following benchmarks are based on internal testing in February 2026 across 15 sample datasets (ranging from 5,000 to 75,000 rows) against live Salesforce Developer Edition, HubSpot Sales Hub Professional, and Shopify (non-Plus) accounts. Test environment: Chrome 132, Windows 11, 32GB RAM, Intel i7-12700K. All datasets were sourced from real export formats (Salesforce report exports, trade show badge scanners, e-commerce catalog exports) with identifying information removed. Results vary by org configuration, active validation rules, duplicate detection settings, and data complexity.
| Data State | Salesforce Success Rate | HubSpot Success Rate | Shopify Success Rate |
|---|---|---|---|
| Raw export, no cleaning | 58–65% | 70–78% | 62–70% |
| After deduplication only | 72–80% | 83–88% | 72–80% |
| After deduplication + type fixes | 87–93% | 91–96% | 88–94% |
| After full pre-import validation | 97–99% | 98–99% | 96–99% |
The most consistent finding across all 15 datasets: Salesforce orgs with active duplicate detection rules and restricted picklists have the highest raw failure rates (58–65%) because both rule types reject rows outright rather than silently dropping field values. HubSpot's higher raw success rate (70–78%) reflects its more forgiving import behavior—it creates records even when field values fail, which inflates "success" counts while creating data quality debt downstream.
The gap between "raw export, no cleaning" and "full pre-import validation" represents hours of re-import cycles, manual record fixing, and data quality debt that persists in your CRM for months.
For the performance benchmark of the underlying processing that powers pre-import validation at scale, see our detailed post on processing 10 million CSV rows in 12 seconds.
FAQ
Why does my CRM import show "success" but records have blank fields?
This is a type mismatch or relational error that the CRM's import engine handles as a soft failure—the record is created but the problematic field value is silently dropped. Salesforce does this with invalid number formats (the row succeeds, the number field is blank). HubSpot does this with invalid property values for dropdown fields. The fix is to download HubSpot's error file (Settings → Imports → hover import → Download Error File) or Salesforce's failure log after import. These files show exactly which fields failed per row.
How do I import contacts without creating duplicates in HubSpot?
HubSpot deduplicates contacts automatically on email address during import—if a contact with that email already exists, it will be updated, not duplicated. The problem is with contacts that have no email or have invalid emails: those are imported as net-new records regardless of whether they already exist. Before importing, remove duplicate emails from your file, then validate email format with Data Validator. Set the import to "Update existing contacts" if you want to update rather than add.
Salesforce keeps rejecting my picklist values even though they look correct. What am I missing?
Picklist validation in Salesforce is case-sensitive and whitespace-sensitive. "Hot Lead" and "Hot Lead " (trailing space) are treated as different values. The most reliable fix: export the picklist values directly from Setup → Object Manager → Field → Values, copy-paste those exact strings into your CSV using find-replace, and verify there are no trailing spaces or hidden characters. Our guide on Salesforce bad value restricted picklist errors has the specific fix for multi-select picklist fields.
Why does Shopify silently skip products instead of showing me which ones failed?
Shopify's CSV import engine processes rows sequentially and stops logging errors after a threshold for large imports. To get useful error information, split your import file into smaller batches (under 500 rows). The error rate per batch is more visible and the fix-retry cycle is faster. For large catalog imports, our guide on splitting large CSV files covers how to maintain row relationships (handle → variant → image) across split files.
My QuickBooks import says "the data is not in the correct format" but it looks fine. What's wrong?
QuickBooks's CSV parser is sensitive to line endings and encoding. Files saved on Mac (LF line endings) or with non-standard encoding often trigger this generic error. The fix: open in a text editor, verify the encoding is UTF-8, and save with Windows-style CRLF line endings. If the error persists, check for any cell that contains a comma inside a value that isn't wrapped in quotes—QuickBooks's parser treats unquoted commas as column separators.
Is it safe to validate a CRM import file containing customer PII in an online tool?
No—for any file containing personal data. Uploading customer names, emails, phone numbers, or account data to a cloud validation tool creates data exposure risk under GDPR, CCPA, and sector regulations. SplitForge runs entirely in your browser—your file never leaves your machine. For teams processing customer data, see our full guide on privacy-first data processing for GDPR and HIPAA compliance. Pre-import validation of sensitive data should always happen client-side.
How do I handle a 200,000-row CRM import that keeps timing out?
Most CRM import tools have a per-import row limit or session timeout for large files. Salesforce's Data Import Wizard caps at 50,000 records per file; for larger loads, use Data Loader in batch mode. HubSpot handles large imports but times out on browser sessions—use the HubSpot API for imports over 100,000 records. For all platforms: split large files into chunks before attempting import. Use CSV Splitter to divide the file, then import each chunk separately. Our guide on batch processing 50+ CSV files without code covers the multi-chunk import workflow.
What's the fastest way to standardize phone numbers for a CRM import from international event data?
International phone number normalization is a two-step problem: detect the country of origin for each number, then apply the correct E.164 formatting. For data from known countries, prefix the country code manually in a helper column and strip non-numeric characters. For mixed-country data, use SplitForge Data Cleaner's phone normalization feature, which handles E.164 conversion for 50+ country formats. Our complete guide on cleaning international phone numbers for CRM import covers the format table for all major markets.
Related Resources
- Why Your CRM Rejects CSV Imports (Hidden Formatting Errors Revealed)
- Remove Duplicate Emails Before CRM Import (Save Your Sender Score)
- Fix Salesforce 'Bad Value for Restricted Picklist Field' Error
- Fix Salesforce TRANSFER_REQUIRES_READ Error Before CSV Import
- Salesforce Invalid Number Comma Separator
- HubSpot CSV Import: Fix 'Field Mapping Failed' Error (2026 Guide)
- Airtable CSV Import: Fix 'Invalid Date Format' Error (2026 Guide)
- Fix QuickBooks CSV 'Continue Button Grayed Out' Import Error
- Fix QuickBooks 'Zeros Not Allowed' CSV Import Error
- Stripe CSV Export to QuickBooks: Complete Import Guide (2026)
- How to Clean Product Catalog CSVs for Shopify/WooCommerce Imports
- Clean International Phone Numbers for CRM: 50+ Countries
- How to Standardize Phone Numbers in CSV Files (For CRM Import)
- Clean a 100,000-Row Email List in Under 5 Minutes
- Duplicate Data Cost This Company $800/Quarter
- How Duplicate Data Cost One Company $3,300/Year
- The Hidden Cost of Manual CSV Processing
- Privacy-First Data Processing: GDPR, HIPAA & Zero-Cloud Workflows (2026)
- Fix Mixed Date Formats in CSV Column: 4 Methods (2025)
- How to Split Large CSV Files Without Excel
- How to Fix CSV Import Errors in 5 Minutes (2025)
- 15 Common CSV Errors and Instant Fixes (2025)
- CSV File Validation Before Upload Guide (2025)
- Validate CSV Files Before Import: Catch Errors in 10M Rows
- Fix CSV Import Delimiter Errors (2025 Guide)
- Fix 'Invalid SKU Format' in Amazon Seller Central CSV
- Fix 'Address Validation Failed' in MLS CSV Imports
- How Accounting Firms Process Year-End CSV Reports 10x Faster
- Fix 'Tax ID Format Invalid' Error in Accounting Software