Automate Basics
Sales

Import Contacts Into HubSpot Without Changing Existing Records

By

· Updated · 5 min read

To import a contact CSV into HubSpot without changing existing contacts, choose an option that creates new contacts only, if available, or remove rows that match existing contacts before uploading. A small test import shows whether email matching and field mapping behave as expected.

Hand sorts contact printouts and colored cards on a meeting table.
Image: AI-generated illustration.

To import a contact CSV into HubSpot without changing existing contacts, choose an option that creates new contacts only, if available, or remove rows that match existing contacts before uploading. A small test import shows whether email matching and field mapping behave as expected.

The safest choice when existing contacts must stay unchanged

A create-only import is the simplest choice when your goal is to add contacts without updating anyone already in HubSpot. Check the import options in your account for a choice that creates new contacts only. If you cannot select that behavior, compare the CSV with your existing contacts and upload only rows for people who are not already there. Do not rely on a setting that prevents overwriting populated fields if your rule is that existing contacts must not change at all.

Those are different levels of protection. A setting that preserves existing values may still allow an empty contact property to be filled. That changes the record, even though no populated value was replaced. Selecting an update option can also change a populated field when an imported value is mapped to it.

Keep an untouched copy of the original CSV before editing. Decide which columns you actually need, such as email and name, rather than importing every field supplied by another system. Contact details may be sensitive, so agree on who may handle the file and where it can be stored. An AI acceptable use policy checklist can help a team set similar rules for work data, although the import itself does not require AI.

Email matching is the duplicate check to test

HubSpot can use a contact's email address to match an imported row to an existing contact, so check emails before trying to import contacts without duplicates. Look for missing addresses, extra spaces, spelling errors and repeated rows in the CSV. Also check whether a person in HubSpot has a different email address from the one in your file. Email matching cannot reliably identify that as the same person without another dependable way to match the records.

For the test, select a small set of approved rows that includes an email already present in HubSpot and an email that is genuinely new. Before uploading, open the existing contact and note its current name, job title and any other property you plan to map. Use a real address you are permitted to add for the new contact, not a made-up address that might belong to someone else.

Matching and protection are separate decisions. A matched email tells the importer which contact a row refers to; your import choices determine whether that contact can be updated. If a form or automation also creates contacts, review its matching rule separately. The guide to stopping Zapier from creating duplicate CRM contacts covers that ongoing workflow, not this CSV upload.

Field mapping determines what an update could change

A populated HubSpot property becomes vulnerable to replacement when you allow existing contacts to update and map a CSV column to that property. Before confirming the import, read the column mapping screen as an instruction: each accepted mapping tells HubSpot where to put that column's values. A column headed Job Title should map to the intended job title property, not to a similarly named custom property you have not checked.

Make a test copy of the CSV with only the columns needed to prove your plan. Include email for matching and a low-risk field, such as job title, whose value differs from the existing contact's current value. That deliberate difference makes an unwanted overwrite visible. Do not use consent, subscription status, ownership or other consequential fields as test targets. If the import screen offers a choice not to overwrite existing values, inspect and select it when appropriate, but remember that protecting populated properties is not the same as refusing all changes to existing contacts.

Stop if a column has no clear destination. You can leave an unnecessary column out of the test file rather than guessing at a mapping. Save the intended mapping alongside your file notes so the full import can use the same choices after the test succeeds.

A small import reveals the actual effect on existing records

A test import should answer whether HubSpot creates a new contact, recognizes an existing email and leaves that existing record in the state you intended. Upload the small test CSV through HubSpot's contact import flow. Select the create-only option if it is available and your requirement is no changes to existing contacts. If you are testing an update-capable import instead, choose the available protections deliberately and treat the test as a check, not a guarantee.

Before confirming, review the import preview, especially the object type, email mapping, other property mappings and the choice about creating or updating records. If a preview does not make those choices clear, do not continue until you have checked them. Record the test import's name or other identifier so you can find its results later.

Afterward, search for both test email addresses. Confirm that the new contact exists only where expected. Compare the existing contact with the notes you made before importing, including the deliberately different job title and any blank property you mapped. Check the import results for errors and review property history where available. If the existing contact changed unexpectedly, stop before uploading the full CSV. Correct the import choice, file or mapping, then run a fresh small test.

The full upload needs the same controls and a final review

Run the full import only after the test shows the behavior you need, using the same type of CSV, matching approach, field mappings and import choices. A passing test does not make every row safe. Scan the remaining file for duplicate emails, unfamiliar columns and addresses that may belong to contacts under another email. If existing records must remain untouched and you cannot enforce a create-only import, remove uncertain rows for manual review rather than letting the importer decide whether to update them.

Keep the original file, the cleaned import file and a note of the choices you made. When the upload finishes, read the import results instead of assuming that every row became a contact. Errors may leave some rows out, while a successful import can still warrant a check of selected contacts. Inspect a few newly created records and any existing contacts whose emails appeared in the file.

Do not treat deleting imported contacts as a general undo button. An import that updates an existing property calls for checking that contact's history and restoring the correct value with care. If you cannot tell which records changed, pause further uploads and ask the person who manages your HubSpot account to help review the import.

Frequently asked questions

Will a HubSpot import overwrite existing contact fields?

It can if the import is allowed to update existing contacts and a CSV column is mapped to a populated property. Review the create or update choice and every field mapping before confirming. Test with an existing contact whose current value differs from the CSV, then check that contact after the import.

How can I import contacts into HubSpot without duplicates?

Start with consistent email addresses, remove repeated rows from the CSV and test an email already in HubSpot alongside a new one. Email matching helps identify an existing contact, but a changed or misspelled address can still result in a separate record. Review uncertain matches manually before the full upload.

Is preventing overwrites enough to leave existing contacts untouched?

No. An option that preserves populated values may still fill blank properties on an existing contact. If no existing contact may change, select a create-only import when available, or upload only rows you have confirmed are new. Verify the result with a small test before continuing.

What should I do if the test import changes an existing contact?

Stop before importing the rest of the CSV. Check the import's create or update choice and the mapping for the property that changed. Review the contact's property history where available, restore the correct value carefully and run a new small test with corrected settings.

For you

Learn to do this with AI, free

Short courses for people who aren't engineers: ChatGPT, Claude, prompting and automation. Every lesson is free, with no card.

Start a free course

For companies

Make an AI or automation tool?

List it in the directory for $9.99, refunded in full if it isn't approved, or claim its page if it is already here.

Tools in this piece

Drafted with AI assistance and checked automatically before publishing. Tools and prices change; check the official source before you act.

Get the next one by email

One email, most weeks: what changed in AI for people who use it at work, and what to do about it.

One email, most weeks. What actually changed and what to do about it. Unsubscribe in one click.