HubSpot import guide
HubSpot import duplicate contacts / duplicate email
Duplicate contacts usually start with email identity. HubSpot can use Email to match existing contacts during import, so duplicate or blank Email values deserve review before upload.
What the error means
HubSpot uses Email as a key contact identifier. If two CSV rows use the same email address, an import can update or dedupe against the same contact instead of creating two separate people.
Blank Email values are a different risk. HubSpot can still create a contact from First name or Last name, but email-keyed matching, updates, and duplicate-safe imports will not apply to that row.
Why duplicate contacts happen
Duplicate contacts often come from merged exports, repeated form submissions, CRM-to-spreadsheet round trips, or copied rows that were not deduped before import. Even when the rows look slightly different, the same email can make HubSpot treat them as the same contact identity.
- Case changes such as
ALEX@example.comvsalex@example.comshould be reviewed as duplicates. - Extra spaces around an email can hide a duplicate in a spreadsheet view.
- Fully duplicate rows usually mean the source export was appended or copied twice.
- Name-only rows can create contacts, but they are harder to match safely later.
How to fix it manually
- Sort or filter by Email after trimming obvious leading and trailing spaces.
- Choose which row is the source of truth when the same email appears more than once.
- Merge useful field values into one row instead of importing conflicting duplicates.
- Review rows with First name or Last name but no Email before using them for updates.
- Keep a backup of the original export before deleting duplicate rows.
How ReadyCSV flags duplicate-contact risk locally
ReadyCSV flags repeated Email values as duplicate_email warnings. The comparison is case-insensitive and ignores whitespace inside the email value, so Alex@example.com and alex@example.com are reviewed as the same email.
ReadyCSV also flags fully repeated rows as duplicate_row warnings, and it flags rows with a blank Email but present First name or Last name as email_recommended_for_dedup warnings. These are review signals, not automatic deletes or HubSpot-side merge actions.
For broader setup, start with how to format a CSV for HubSpot import, then review the invalid email guide and missing required fields guide.
Related HubSpot import guides
How to format a CSV for HubSpot import
Use an end-to-end HubSpot contact CSV checklist before uploading: identity, headers, emails, dates, phones, owners, encoding, and enums.
HubSpot import date format errors
Fix HubSpot date columns that use Excel serials, written-out dates, dots, or unsupported formats.
HubSpot invalid email import error
Understand INVALID_EMAIL, INVALID_DOMAIN, duplicate emails, and additional email address imports.
HubSpot lifecycle stage import error
Check lifecycle stage and lead status values before HubSpot rejects an import row.
HubSpot import missing required fields
Fix contact rows missing First name, Last name, and Email before a HubSpot import.
HubSpot contact owner import error
Review Contact owner values that need an active HubSpot user email or internal owner value.
HubSpot CSV column format errors
Fix duplicate headers, blank headers, and rows with extra cells before importing a CSV.
HubSpot phone number format import
Review HubSpot phone number format import risks and use E.164-style values before uploading contacts.
HubSpot import special characters broken / UTF-8 encoding CSV
Fix CSV encoding workflows when HubSpot import special characters look broken, such as José instead of José.
HubSpot import unmapped / unrecognized columns
Review unmapped CSV headers, manual mapping risks, and local mapping suggestions before HubSpot import.
HubSpot website URL import format
Clean Website URL values, whitespace, and clearly invalid website text before importing contacts.
Check your CSV before importing
ReadyCSV preflights HubSpot contact CSVs locally in your browser. Your CSV contents stay on your device: no upload, no account, no AI calls, and no license server call for local checks.
It is still your responsibility to review every finding, cleaned export, Issue Report, and HubSpot import setting before importing. ReadyCSV cannot guarantee that HubSpot will accept every row.
Open ReadyCSV local preflight