← Back to guides

HubSpot import checklist

How to format a CSV for HubSpot import

Use this checklist before uploading a HubSpot contact CSV. It links to the deeper error guides for the fields and file-structure problems that usually create import failures.

Start with contact identity fields

Each contact row needs enough identity information for HubSpot to create or match a contact. For contacts, make sure each row has at least one of First name, Last name, or Email, and prefer Email when you need safer matching, updates, or dedupe.

Deep guide: HubSpot import missing required fields.

Use one clean header row and one contact per row

HubSpot maps columns by header name, so every intended column should have one unique, meaningful header. Keep one contact record per row and repair duplicate headers, blank headers, or rows that have more cells than the header row before you start value-level cleanup.

Deep guide: HubSpot CSV column format errors.

Clean Email values before mapping

The primary Email column should contain one valid address in name@domain.tld form. Trim spaces, fix malformed domains, dedupe repeated email addresses, and put extra addresses in HubSpot's Additional email addresses property instead of mixing them into the primary Email cell.

Deep guide: HubSpot invalid email import error.

Format date columns to match HubSpot mapping

Pick one date format before upload and make the whole column consistent. HubSpot import mapping accepts date values such as MM/DD/YYYY, DD/MM/YYYY, or YYYY-MM-DD; spreadsheet serials, written-out months, and local dot formats should be converted first.

Deep guide: HubSpot import date format errors.

Review phone numbers in international form

Phone and Mobile Phone Number values are safest when they include a leading +, a country code, and a plausible subscriber number. Local-only numbers, 00 prefixes, or mixed display formats should be reviewed before import because HubSpot phone validation is account-specific.

Deep guide: HubSpot phone number format import.

Normalize enumeration fields

Lifecycle Stage and Lead Status are not free-text notes. Values should match the labels or internal values accepted by the destination HubSpot account, and custom account options should be checked during import mapping before the final import.

Deep guide: HubSpot lifecycle stage import error.

Check owner assignment values

Contact owner values are account-specific. Use a HubSpot owner email or internal owner value when you have it, leave the owner blank when assignment should happen later, and do not assume a display name copied from another account will resolve.

Deep guide: HubSpot contact owner import error.

Export as UTF-8 and inspect special characters

Save the final file as UTF-8 and spot-check accented names, apostrophes, and non-Latin characters before upload. If you see mojibake such as José or O’Connor, re-export from the clean source instead of importing damaged text.

Deep guide: HubSpot import special characters broken / UTF-8 encoding CSV.

Run a local preflight before upload

ReadyCSV checks HubSpot contact CSVs locally for real analyzer issue types such as missing_identity, invalid_email, date_format_risk, phone_format_risk, encoding_mojibake_risk, whitespace suggestions, placeholder values, owner review warnings, and structural blockers. Info and warning-level findings mean review before import; they are not guarantees that HubSpot will accept or reject a row.

ReadyCSV does not upload your CSV, call AI on contact rows, connect to HubSpot, or guarantee import success. Review the cleaned export, Issue Report, and HubSpot import mapping screen before committing the import.

Related HubSpot import guides

View all guides

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