Before importing contacts into HubSpot, clean your file so email addresses and identifiers are valid, duplicate contacts are reviewed, property options match your HubSpot schema, and accidental blank cells or formatting defects are addressed. HubSpot relies on Email, Record ID, or custom unique properties to recognize contacts, making pre-import identity checks essential.
1. Start with an untouched copy of your original file
Importing a contact list directly into HubSpot modifies your marketing and sales database. When records are imported, HubSpot creates new contacts or updates existing ones based on matching criteria. Overwriting valid contact details, introducing formatting defects, or accidentally importing thousands of unverified records can disrupt active workflows, automated sequences, and list segmentation. Always save an untouched, timestamped backup copy of your source spreadsheet before beginning any data cleaning or preparation.
Distinguish general preparation best practices from strict HubSpot requirements. While retaining a backup copy and auditing column quality are universal operational recommendations, specific formatting rules—such as accepted date formats, single-sheet file structures, and unique identifier mappings—are enforced directly by HubSpot's import tool.
- Save an untouched, dated backup copy of the original source file.
- Document where the contact list originated and any consent or opt-in records.
- Review which HubSpot portal and business units will receive the data.
2. Know whether you are creating or updating contacts
Before structuring columns or standardizing cell values, clarify your import intent. HubSpot handles imports differently depending on whether your goal is inserting net-new contacts, updating existing records, or executing a mixed upsert operation.
When **creating new contacts**, your focus is ensuring that required properties (such as Email) are present and valid, that duplicates are eliminated from the source file, and that contact properties match your portal's schema. When **updating existing contacts**, your file must include a valid unique identifier—such as HubSpot's internal `Record ID` or a pre-existing `Email`—so HubSpot knows exactly which contact record to modify. In mixed imports, unmapped or blank identifiers can lead to unwanted new contacts instead of updates.
3. Identify the correct unique key: Email vs. Record ID
HubSpot relies on specific unique identifiers to match incoming spreadsheet rows with contacts already in your CRM. Choosing the right identifier is the single most critical step in avoiding unintended duplicates or misattributed updates.
For contacts, **Email** is the primary default unique identifier. If an imported row contains an email address that already belongs to an existing HubSpot contact, HubSpot updates that contact rather than creating a duplicate row. However, if a contact's email address in your spreadsheet has changed or contains a typo, HubSpot will treat it as an entirely new contact.
When performing targeted updates on existing contacts, the safest identifier is HubSpot's **Record ID** (the unique numeric string assigned to each object in HubSpot). Exporting existing contacts with their `Record ID` and including that column in your update CSV guarantees that HubSpot updates the exact intended record, even if you are changing the contact's email address.
In paid subscriptions (such as Operations Hub or Professional/Enterprise tiers), HubSpot also allows admins to configure custom properties to **require unique values** (such as an ERP Customer ID, legacy account number, or internal employee ID). These custom unique properties can be used during imports to match and update records without relying on email addresses.
Never attempt to use First Name and Last Name as unique identifiers. Multiple contacts frequently share the same name, and HubSpot does not use name combinations to deduplicate contact records.
4. Clean and validate email addresses
Because Email is the primary key for HubSpot contacts, email syntax and hygiene directly determine import success and delivery reputation. Formatting issues in email columns frequently trigger import errors or bounce risks.
Inspect and trim accidental surrounding whitespace. A leading or trailing space in an email cell (for example, `' alex@example.com '`) can prevent HubSpot from recognizing an existing contact match or cause email validation flags during import. In addition, review the column for obvious syntax defects, such as missing `@` symbols, missing top-level domains, or unescaped commas.
Understand the distinction between CRM conventions and HubSpot requirements: while HubSpot treats email matching as case-insensitive (`alex@example.com` matches `Alex@Example.com`), standardizing all email addresses to lowercase is standard marketing operations hygiene. Check for blank emails: if Email is your chosen unique identifier, rows missing an email address cannot be imported as contacts unless an existing `Record ID` is provided.
You can scan your contact list with RowDesk's CSV Data Quality Checker to identify invalid email syntax, empty rates, and structural anomalies before importing.
- Trim leading and trailing whitespace from every email cell.
- Standardize email values to lowercase for CRM consistency.
- Flag and remove rows with syntactically invalid email addresses.
- Confirm that every row intended for import has an email address or a valid Record ID.
5. Review duplicate records before HubSpot ingestion
There is an important distinction between duplicate rows inside your source file and HubSpot's CRM deduplication behavior. If an import file contains multiple rows sharing the same email address, HubSpot processes the file sequentially: each subsequent row overwrites properties populated by earlier rows. If the final row has empty cells or outdated values, valid data from earlier rows may be lost.
Deduplicating your spreadsheet before import gives you deliberate control over which values survive. Decide on an identity rule appropriate for your list: exact matching on `Email` is standard for individual contact lists, while matching on `Email + Company` or a custom unique ID can help separate contacts associated with different business entities.
Use RowDesk's CSV Duplicate Remover or the Deduplicate feature to inspect duplicate contact groups side-by-side. Choose whether to **Keep First** or **Keep Most Complete** (preserving the row with the most populated fields, such as phone numbers, titles, and addresses) before generating a clean, duplicate-free CSV.
6. Standardize names, text fields, and placeholder values
Inconsistent casing, stray spaces, and dummy database tokens make CRM data difficult to search and degrade the quality of marketing personalization tokens. Cleaning text fields before upload ensures professional CRM communication.
Trim whitespace from first names, last names, job titles, and company names. Standardize character casing: names imported in ALL CAPS (`'SARAH CONNOR'`) or all lowercase (`'sarah connor'`) will appear exactly that way in automated email salutations unless corrected. Distinguish cosmetic hygiene from schema requirements: HubSpot will not reject a contact for improper capitalization, but consistent title casing prevents embarrassing personalization errors.
Audit your spreadsheet for placeholder values. Data exported from legacy systems or forms often includes dummy text such as `'NULL'`, `'N/A'`, `'None'`, or `'#N/A'`. Unless explicitly cleared, HubSpot will import these placeholder tokens as literal string values into your contact properties. Use RowDesk's Free CSV Cleaner to strip whitespace, remove completely empty rows, and replace dummy tokens with clean blank cells.
- Trim leading and trailing spaces from all name, title, and company cells.
- Standardize name casing to proper Title Case for clean email personalization.
- Remove dummy placeholder strings such as 'N/A', 'None', or 'NULL'.
- Delete completely blank rows that contain no useful contact information.
7. Map columns to HubSpot contact properties
During the import process, HubSpot presents an interactive mapping interface where each column in your spreadsheet is matched to a corresponding HubSpot property. Structuring your header row accurately minimizes mapping confusion and prevents misallocated data.
The first row of your spreadsheet must be an unambiguous header row. Ensure every column has a unique, descriptive header name (such as `First Name`, `Last Name`, `Email`, `Phone Number`, `Job Title`, or `Lifecycle Stage`). Avoid duplicate header names, merged cells, or empty header cells, which will cause column mapping errors.
If your dataset contains business data that does not fit into default HubSpot properties (for example, `Contract Renewal Date`, `Product Tier`, or `Lead Source Detail`), create those **custom properties in HubSpot Setup** before initiating the import. Standard CSV imports cannot create new property definitions on the fly. RowDesk does not connect to your live HubSpot portal via API; you should verify your property names directly in HubSpot Settings.
8. Check required and operationally relevant contact properties
When importing contacts into HubSpot, distinguish between fields that are mandatory for record creation and fields that are essential for operational sales and marketing success.
For standard contact creation via import, **Email** is typically the only universally required field (or `Record ID` if you are updating existing records). However, HubSpot portal administrators can configure specific properties to be required upon record creation. If your HubSpot admin has set `Company Name` or `Lead Status` as a required field, any row in your CSV missing that value will fail to import.
Key operational properties to audit before import include `Email` (primary identifier and communication channel), `First Name` & `Last Name` (essential for email personalization), `Phone Number` (for sales outreach, ensuring country codes and leading zeros are preserved), `Lifecycle Stage` (classifying contacts as Lead, MQL, or Customer), and `Contact Owner` (which must match the exact email address of an active HubSpot user in your portal).
- Confirm mandatory fields configured by your HubSpot admin (e.g. Company Name, Lead Status).
- Ensure every row contains an Email address or valid Record ID.
- Verify Contact Owner values match active HubSpot user email addresses.
- Check that phone numbers preserve international country codes and leading zeros.
9. Format Date and Date/Time properties accurately
HubSpot enforces specific formatting rules on Date and Date/Time properties. Entering dates in an unaccepted format will trigger an import error or cause the field to remain blank.
For native HubSpot **Date picker** properties (such as `Close Date`, `Renewal Date`, or custom date fields), HubSpot officially accepts three primary date string formats during import: `YYYY-MM-DD` (ISO 8601, e.g. `2026-12-31`), `MM/DD/YYYY` (Standard US format, e.g. `12/31/2026`), and `DD/MM/YYYY` (Standard European/International format, e.g. `31/12/2026`).
During the import mapping stage, HubSpot prompts you to select the date format that matches your file. Choose the exact syntax used in your spreadsheet column so HubSpot's parser interprets days and months correctly. If using Microsoft Excel, ensure date cells are formatted with an explicit Number or Date format rather than plain text to avoid corruption. Refer to official HubSpot import file guidelines for property formatting details.
| Format Structure | Example Syntax | Description | Mapping Selection |
|---|---|---|---|
| ISO 8601 (Recommended) | YYYY-MM-DD | 2026-12-31 | Universal standard; avoids day/month ambiguity. |
| US Standard | MM/DD/YYYY | 12/31/2026 | Common in North American exports. |
| European / International | DD/MM/YYYY | 31/12/2026 | Standard for UK, Europe, and international datasets. |
| Date/Time (Timestamp) | YYYY-MM-DD hh:mm:ss | 2026-12-31 14:30:00 | Includes 24-hour time for Date/Time picker fields. |
10. Prepare dropdown select (enumeration) options
Dropdown select properties (such as `Lifecycle Stage`, `Lead Status`, or custom picklists) restrict property values to a predetermined list of choices. Formatting errors in these columns frequently lead to import rejections.
Dropdown select fields allow only **one** value per contact. If your spreadsheet cell contains multiple values separated by commas or semicolons, HubSpot will treat the entire string as a single option and reject it with an `Invalid_Enumeration_option` error.
The text in your spreadsheet cell must match an allowed option's **Internal Value** or **Label** in HubSpot exactly, including spelling, punctuation, and capitalization. For example, if your HubSpot property option is `'In Progress'`, importing `'in progress'` or `'In Progress '` (with a trailing space) will fail to map. Crucially, standard CSV imports cannot create new dropdown options dynamically; you must pre-create all required choices in HubSpot Setup under **Settings > Properties** before importing.
- Ensure dropdown select columns contain only a single value per cell.
- Match spelling, casing, and spacing of existing HubSpot property option labels or internal values.
- Pre-create any new dropdown options in HubSpot Setup before starting the import.
- Check export error logs for 'Invalid Enumeration' messages after a test run.
11. Format multiple checkbox properties with semicolons
Multiple checkbox properties in HubSpot allow a contact to have several selections stored in a single field (for example, `Product Interests`, `Event Attendee Badges`, or `Content Topics`). These properties require strict delimiter formatting.
When importing multiple values into a single cell, separate each value with a **semicolon** (`;`), never a comma. Commas inside the cell are treated as literal text and will prevent HubSpot from parsing individual selections.
Pay close attention to update semantics: To **replace existing values**, enter your selections separated by semicolons without a leading semicolon (e.g. `Option A;Option B`). This overwrites any previous checkbox selections on the contact. To **append new values**, begin the cell with a leading semicolon (e.g. `;Option C;Option D`). This adds the new selections to the contact's existing choices without deleting prior values.
As with dropdown properties, every checkbox option included in your import file must be pre-created in HubSpot property settings before you upload.
12. Understand blank value semantics: Do blanks overwrite existing data?
A major concern for CRM administrators during bulk updates is whether empty cells in a spreadsheet will accidentally overwrite and erase existing contact data in HubSpot.
In HubSpot imports, blank cells in your spreadsheet are treated as **'do nothing'** by default. If an existing contact already has a phone number stored in HubSpot and your import file contains a blank cell in the phone number column, HubSpot leaves the existing phone number untouched. It does not overwrite the property with a null value.
If your operational goal is intentionally clearing or erasing an existing contact property, you cannot do so simply by importing a blank cell. Instead, you must use a HubSpot automated workflow with a 'Clear property value' action, or use specialized CRM data maintenance tools.
Similarly, if you import a spreadsheet containing a `Record ID` with a blank `Email` cell, HubSpot will update the other mapped properties on that contact but will **not** delete the contact's existing email address.
13. Preserve Record IDs, phone numbers, and leading zeros
Spreadsheet applications often attempt to auto-format text strings that resemble numbers. This behavior presents a serious risk for contact identifiers, phone numbers, and postal codes.
Opening a raw CSV in Microsoft Excel frequently strips leading zeros from postal codes (converting `'02138'` into `2138`) or converts international phone numbers and long tracking codes into scientific notation (turning `+14155550199` into `1.41555E+10`). Once Excel saves the file, the lost precision cannot be restored.
In RowDesk, all cell values are treated strictly as explicit literal text. Identifiers with leading zeros, plus signs in phone numbers, and long numeric codes are preserved without numeric reinterpretation during cleaning, deduplication, and splitting. If an earlier tool has already altered or truncated digits, RowDesk cannot reconstruct the missing data; always inspect raw source exports before editing.
14. Verify file structure, sheet count, and UTF-8 encoding
Before uploading your prepared contact list, ensure that the file adheres to HubSpot's technical file specifications: HubSpot officially supports `.csv`, `.xlsx`, and `.xls` files, but the workbook must contain **only one sheet/tab**. The file must contain fewer than 1,000 columns.
If your contact list includes international names, accented letters (e.g. `é`, `ü`, `ñ`), or non-Latin alphabets, the file must be saved with **UTF-8 encoding** to prevent character corruption.
- Save the file in .csv or single-sheet .xlsx format.
- Ensure the workbook contains only one sheet/tab.
- Keep total column count under 1,000.
- Export with UTF-8 encoding to preserve special characters and accents.
15. Understand HubSpot import limits by subscription tier
HubSpot enforces practical import limits that depend on whether your portal is on free tools or a paid subscription tier. Reviewing your tier limits prevents unexpected import throttling or failures.
While paid tiers allow up to 1,048,576 rows per file (Excel's maximum worksheet capacity) and 10 million rows per day, CRM specialists and HubSpot documentation recommend importing in smaller, manageable batches (such as 5,000 to 50,000 rows). Smaller files upload faster, reduce the likelihood of browser timeouts, and make troubleshooting import error logs significantly simpler.
| Limit Category | Free Tools Accounts | Paid Subscriptions (Starter, Pro, Enterprise) |
|---|---|---|
| Maximum File Size | Up to 20 MB per file | Up to 512 MB per file |
| Max Imports Per Day | Up to 50 imports / day | Up to 500 imports / day |
| Max Rows Per Day | Up to 500,000 rows / day | Up to 10,000,000 rows / day |
| Max Rows Per File | Subject to daily row cap | Up to 1,048,576 rows per file |
| Simultaneous Imports | Up to 3 imports (max 2 > 10k rows) | Queued automatically by priority |
16. Split large contact lists for staged imports and easier error recovery
When handling large datasets—such as event attendee sheets, marketing lists, or database migrations—dividing your file into smaller batches is standard operational best practice.
If an import of 150,000 contacts encounters a validation error on row 85,000, diagnosing and correcting the issue across a massive error file is time-consuming. Dividing the file into batches of 10,000 to 50,000 records allows you to stage the rollout, verify each segment, and isolate errors immediately.
Use RowDesk's Free CSV Splitter to divide large files into custom batch sizes. The splitter runs entirely in your browser, preserves exact cell contents and identifiers, and automatically repeats the header row across every split part without counting it toward the data-row limit.
17. Compare incoming contacts against an existing HubSpot export
A common challenge in demand generation and list acquisition is determining which contacts in a new list are genuinely net-new versus contacts that already exist in your CRM. Reconciling files prior to import prevents accidental updates and protects lead assignment logic.
The workflow is straightforward: first, export your existing contact database from HubSpot (including `Email` and `Record ID`). Second, open RowDesk Compare CSV Files. Third, load your incoming contact list as File A and your HubSpot export as File B. Fourth, map the `Email` column.
RowDesk evaluates the files and cleanly segments your records: **Only in File A** represents net-new contacts ready for a clean Insert operation; **In Both (Matched)** represents contacts that already exist in HubSpot (review these records to decide whether to update them or exclude them from new-lead workflows); and **Only in File B** represents current HubSpot contacts unaffected by the incoming file.
This comparison runs entirely inside your browser. No HubSpot API connection or OAuth credentials are required; you simply export your report, compare the files locally, and proceed with confidence.
18. Run a small test import before the full upload
Never upload a large contact list into your live HubSpot portal without running a small test batch first. Isolate 5 to 10 representative rows from your prepared file and import them into HubSpot.
After running the test import, open the created or updated contacts in HubSpot and verify: Did all columns map to the correct HubSpot properties? Are dropdown and multi-checkbox selections populated as expected? Do date picker properties display the correct day, month, and year? And did automated workflows, active lists, or lead scoring rules trigger properly?
Review the HubSpot import error log to catch any unmapped values or validation failures. Once the test records look flawless, proceed with the full import.
- Extract 5 to 10 rows for a preliminary test import in HubSpot.
- Verify property mappings and check custom field assignments.
- Inspect contact records in HubSpot to confirm date and dropdown accuracy.
- Confirm whether automated workflows, emails, or tasks triggered as intended.
- Review the HubSpot error log CSV to address issues before importing the full list.
19. HubSpot contact list pre-import checklist
Use this comprehensive pre-import checklist before uploading any contact list into HubSpot:
- Untouched backup copy of the original source file saved and archived.
- Import intent confirmed: Insert new contacts, Update existing, or Mixed.
- Unique identifier verified: Email for contacts, Record ID for existing records.
- Email addresses trimmed of whitespace, validated, and normalized to lowercase.
- Duplicate records reviewed and resolved using Keep First or Keep Most Complete.
- Whitespace trimmed and casing standardized across name and company columns.
- Placeholder tokens ('N/A', 'NULL', 'None') replaced with clean blank cells.
- Header row contains unique, descriptive labels matching target HubSpot properties.
- Custom properties pre-created in HubSpot Setup prior to import.
- Date values formatted as YYYY-MM-DD, MM/DD/YYYY, or DD/MM/YYYY.
- Dropdown select fields verified against allowed property option labels or internal values.
- Multiple checkbox columns formatted with semicolons (;), using a leading semicolon to append.
- Blank value semantics confirmed (blanks do not overwrite existing HubSpot properties).
- Leading zeros in phone numbers and postal codes preserved as text.
- File saved as a single-sheet CSV or XLSX with UTF-8 encoding.
- Dataset split into batches under 50,000 rows if operationally advantageous.
- Small 5–10 record test batch verified in HubSpot before full upload.
20. Prepare your HubSpot contact import with RowDesk
RowDesk provides a unified, browser-local workspace to prepare, clean, deduplicate, and compare contact files before CRM ingestion. The recommended preparation workflow follows a structured sequence:
1. **Scan**: Inspect dataset health, structural defects, and missing rates with the CSV Data Quality Checker.
2. **Clean**: Trim whitespace, remove blank rows, and standardize empty placeholders with CSV Cleaner or Clean Data.
3. **Deduplicate**: Group repeated contacts or companies and select survivor records with CSV Duplicate Remover or Deduplicate.
4. **Compare**: Map incoming rows against a recent HubSpot export to separate net-new leads from existing contacts using Compare CSV Files or Compare Files.
5. **Split (if needed)**: Divide large lists into import-ready parts with the Free CSV Splitter.
6. **Review & Export**: Review changes, verify record counts, and download a verified CSV export.
RowDesk operates strictly as a pre-import preparation workspace. It does not connect directly to HubSpot via OAuth or API, and it does not write data directly into your CRM. You retain full control over when and how your prepared CSV is imported using HubSpot's native tools.
21. Browser-local privacy and data security
When handling customer records, prospect lists, or proprietary CRM data, security and confidentiality are paramount. In RowDesk, all file parsing, data cleaning, deduplication, comparison, and CSV serialization occur locally inside your web browser.
Raw dataset contents, column headers, and cell values are never uploaded to, transmitted across, or stored on RowDesk servers. Administrative metadata—such as optional email capture for tool downloads, billing, and privacy-safe aggregate analytics—utilizes standard secure backend infrastructure, but your contact data remains strictly on your device.
HubSpot is a registered trademark of HubSpot, Inc. RowDesk is an independent browser-based data preparation tool and is not affiliated with, endorsed by, or sponsored by HubSpot, Inc.
