Skip to main content

HubSpot Contact Import Errors: Why Your CSV Fails (And How to Fix It)

9 min readPipeSheets Team

HubSpot's contact import wizard guides you through file upload, property mapping, and confirmation — and then tells you that 247 of your 1,000 rows failed. Some failures are obvious: invalid email addresses. Most aren't: "unable to update existing contact," "value does not match dropdown options," "date format invalid." The CSV looked fine when you eyeballed it. Here's what's really going on and how to fix each class of failure.

How HubSpot's Contact Import Works

HubSpot's importer validates each row against your portal's contact properties. Every property has a type (single-line text, multi-line text, number, dropdown, date, date picker, boolean checkbox, multi-checkbox) and may have validation rules. The importer maps each CSV column to a contact property in the mapping step, then validates each row's values against the property's type and rules. Rows that fail validation are skipped, and you get a downloadable error report at the end.

Email is the unique identifier

HubSpot uses email address as the de facto unique identifier for contacts. The importer's deduplication logic, the "create new vs update existing" decision, and most validation rules center on the email column. Missing emails, malformed emails, and duplicate emails cause the majority of import failures.

Email Validation Errors

Error: "Invalid email address"

HubSpot validates each email against a syntax check. Anything that isn't text-at-text-dot-text fails. The usual suspects: missing the @ sign, missing the domain, missing the TLD, extra whitespace, smart quotes around the email (when copied from a source that auto-formatted them).

Common bad-email patterns:

  • Leading/trailing whitespace: " user@example.com" (with spaces)
  • Smart quotes around the email: "user@example.com" (curly quotes)
  • Missing TLD: user@example
  • Multiple @ symbols: user@@example.com
  • Display name included: "User Name <user@example.com>"
  • Trailing punctuation: user@example.com,
  • Internal IDs that look like emails: NOREPLY@example.com (HubSpot accepts but flags)

Error: "Email is blocked"

HubSpot blocks contacts on certain domains by default (your own domain, common spam-trap domains). You can adjust the block list in Settings > Marketing > Email > Subscription Types. If you need to import a contact on a blocked domain, you'll need to either unblock the domain or change the email.

Duplicate Handling

HubSpot's importer asks at the start of the wizard whether to update existing contacts or skip them. "Update" matches incoming rows to existing contacts by email and overwrites the mapped properties. "Skip" creates only new contacts.

Error: "Multiple matches found"

Your CSV has two rows with the same email, or your portal has two contacts with the same email (which can happen if the original creation bypassed the deduplication). HubSpot can't decide which to update. Fix: deduplicate your CSV before import (keep the most recent row, or merge values), and resolve any duplicate contacts in HubSpot first.

Error: "Cannot update read-only property"

Some properties are computed by HubSpot and can't be set via import (Created Date, IP City, Lifecycle Stage in some configurations). If your CSV includes these columns, either drop them or skip the column in the mapping step.

Property Type Mismatches

Date and date-picker properties

HubSpot date properties expect dates in one of these formats: MM/DD/YYYY (default for US accounts), DD/MM/YYYY (international accounts), YYYY-MM-DD (ISO, always accepted), or Unix timestamp (numeric). Mixing formats within a column fails the inconsistent rows. Don't include time portions in date properties — date pickers reject "05/15/2026 14:32:05." If you need a datetime, use a date-with-time property and the YYYY-MM-DD HH:MM:SS format.

Number properties

Number properties must contain plain numbers. No currency symbols, no thousand separators, no parentheses for negatives. "$1,234.56" fails — should be 1234.56. "(50)" fails — should be -50.

Dropdown (single-select) properties

Dropdown values must exactly match one of the property's options. "high priority" doesn't match "High Priority." Trailing whitespace fails. Common workaround: tell HubSpot to auto-create new options when it encounters unknown values (a checkbox in the import wizard). This is convenient but creates property option clutter over time — better to clean values to match existing options.

Multi-checkbox properties

Multi-checkbox properties hold multiple values separated by semicolons. "Email;Phone;Direct Mail" is valid; "Email, Phone, Direct Mail" fails because commas are CSV delimiters and HubSpot expects semicolons. If your source data uses commas, transform to semicolons before import.

Boolean (single-checkbox) properties

Boolean checkboxes accept true/false, yes/no, or 1/0 — case-insensitive. Empty cells are treated as false. "Y," "N," "checked," "unchecked" all fail.

Required Property Errors

HubSpot has a small set of always-required properties (just Email by default), but your portal admin may have made other properties required for create operations. If a row is missing a required property value, the row fails on create (but succeeds on update of existing contacts, because the existing record already has the value).

Error: "Required property missing"

Check your portal's required-properties list in Settings > Properties. Provide values for all of them in the import file. If a required property is something HubSpot computes (lead source, lifecycle stage), set a default value in the CSV.

Multi-Value and List Errors

Country and phone formatting

Country properties expect either the country name or ISO 3166-1 alpha-2 code (US, GB, DE). "USA" fails because HubSpot expects "United States" or "US." Phone numbers don't have strict format validation, but HubSpot normalizes E.164 format (+1XXXXXXXXXX) for click-to-call and SMS features. Inconsistent phone formats cause poor enrichment results downstream even if the import succeeds.

Encoding Issues

HubSpot expects UTF-8 encoded CSVs. Files with smart quotes, BOMs, or non-UTF-8 encoding may import but with garbled accented characters in the resulting contact records. Symptoms: contact names with names like "Renée" appearing as "Renée" in HubSpot. If you see this, re-export your source as UTF-8 (without BOM) and re-import.

For deeper coverage of encoding fixes, see our guide on UTF-8 BOM and CSV encoding errors. The fixes are the same regardless of the import target.

Step-by-Step: Fixing Your File

Step 1: Standardize and trim email

Trim leading/trailing whitespace from every email. Lowercase the email (HubSpot is case-insensitive on email, but consistency helps). Strip smart quotes and display-name prefixes. Run a basic syntax check (text-at-text-dot-text) and flag/remove rows that don't pass.

Step 2: Deduplicate by email

If multiple rows share the same email, decide whether to keep the most recent, merge them, or split into separate import batches. Don't rely on HubSpot's importer to deduplicate — it will fail those rows.

Step 3: Normalize property types

For each column you're mapping, look up the property type in HubSpot and conform the CSV values. Dates → ISO 8601 (YYYY-MM-DD). Numbers → plain decimals, no symbols. Dropdowns → exact match to options (or use auto-create). Multi-checkboxes → semicolon-separated. Booleans → true/false or 1/0.

Step 4: Strip read-only columns

Drop or unmap columns for read-only properties (Created Date, computed fields). If you need to preserve a created-at timestamp from the source, map it to a custom date property you control.

Step 5: Encode and save

Save as UTF-8 (without BOM). Replace smart quotes and em-dashes in any free-text fields (names, addresses, notes).

PipeSheets can do most of this in one pipeline: trim whitespace, lowercase emails, validate email syntax, standardize date formats, and normalize encoding. Build the pipeline once for your usual contact-import source (Salesforce export, CSV from your CRM, marketing list provider) and reuse it every time.

Common Error Messages and Translations

"Some properties could not be updated"

Read-only properties in your column mapping. Drop them or unmap them in the wizard.

"Value does not match any of the property options"

Dropdown property mismatch. Either change the CSV value to match an existing option, add the new option in HubSpot's property settings, or enable auto-create in the import wizard.

"Number format invalid"

Currency symbol, thousand separator, or parentheses in a number column. Strip them and re-import.

"Date format not recognized"

Mixed date formats in the column or a date with timezone/time. Standardize to YYYY-MM-DD (always works) and strip time portions.

Prevention: Build a Per-Source Pipeline

You usually import contacts from the same handful of sources: an export from another CRM, a list from a marketing vendor, a webinar registration export, etc. Each source has predictable formatting quirks. Build a cleanup pipeline once per source (Salesforce → HubSpot, Zoom → HubSpot, etc.) and run it every time. The same errors stop tripping you.

Try the automated solution

PipeSheets can fix these issues automatically. Clean your first file free.

Clean Your CSV