HubSpotIntegrations

Import CSV data into HubSpot, without duplicates, overwrites, or orphaned contacts.

Stage the file before it touches HubSpot. AI suggests the mappings, matching finds rows that already exist, and you decide field by field what updates, fills, overwrites, or appends. Records land cleaned, validated, associated with the right companies, and added to the right list.

Magical Import · Webinar attendees.csv
1,248

rows staged

892

matched existing

354

net-new

2

blocked

CSV rowHubSpot matchStatus
maya@gmail.comMaya Patel ↗Existing
alex@acme.coAlex Morgan ↗Existing
sam@northstar.ioNew contactCreate
test123@example.comFirst name contains digitsBlocked
Inspect every match before importStaged only
The missing layer is before “Import”

HubSpot imports prepared data. Staging decides whether the data is ready.

HubSpot’s importer can create or update records, match on supported unique identifiers, prevent selected property overwrites, build associations from structured files, create a contact segment, and resolve certain mapping errors. What it does not provide is one working layer where the team can transform the file, evaluate ordered and fuzzy matches against live CRM records, apply deeper field-by-field value logic, enforce reusable validation rules, and rehearse the complete result side by side before confirmation.

Stage first, import last

Your CSV lands in Insycle first, HubSpot is touched once, at the end.

The file loads as a working copy. AI suggests field mappings and matching criteria from column names only; record data is not sent to AI providers, and every suggestion remains reviewable.

Records Mode sets the file boundary: create and update, update existing only, or create new only. Then Field Logic decides what happens property by property instead of applying one rule to the entire record.

  • Update: write the CSV value when the file supplies one.
  • Fill: populate HubSpot only when the destination is blank.
  • Overwrite: deliberately replace the property, even with an empty source.
  • Append: add the incoming value to the existing content.

Explore the full Magical Import staging engine

Map fields · HubSpot Contacts
CSV columnHubSpot propertyField Logic
work_emailEmailUpdate
company_sizeNumber of employeesFill
event_notesEvent notesAppend
Update
FillOnly when HubSpot is blank
Overwrite
Append
Existing company size protectedPer-property decision
Prevent duplicates at the door

Know which rows already exist, before you import them.

HubSpot can identify records using supported unique properties. Insycle adds an ordered matching sequence for the cases where one identifier is not enough, then shows every existing match as a live HubSpot link before the file is committed.

  1. 1
    Email

    Use the direct identifier first, including additional email fields.

    892 matched

  2. 2
    First + Last + Company

    Catch the webinar attendee who registered with a personal email.

    71 matched

  3. 3
    First + Last + Phone

    Use another independent combination when the company is missing.

    19 matched

  4. 4
    Similar match review

    Surface one-character variations for review rather than silently creating.

    8 flagged

See HubSpot deduplication in bulk

Match explanation · row 118

CSV row

Maya Patel

maya@gmail.com · Acme

Rule 2 matchedFirst + Last + Company

Existing HubSpot record ↗

Maya Patel

maya.patel@acme.com

Contact ID 104829

No duplicate createdMatch is reviewable
Delete the Excel hour

Clean the file inside the import, and block rows that do not meet the rules.

Run the standardization catalog on the staged working copy: proper-case names, normalize phones, fix dates for HubSpot, and map a vendor taxonomy to your properties. The source file stays unchanged, and every preparation step can be adjusted or removed before import.

Validation rules decide what is allowed to land: require an email, reject names containing digits, or exclude test rows. Picklist fields are checked against their legal HubSpot options automatically, and rows with unresolved errors remain blocked.

Prepare + Validate · Webinar attendees.csv
First name

JANE → Jane

Prepared
Phone

646.555.0184 → +1 646-555-0184

Prepared
Event date

09/02/26 → 2026-09-02

Prepared
Lifecycle stage

“Prospects” is not a legal option

Blocked
2 rows blockedNothing imported yet
Arrive configured

Records land attached to your portal, not merely present in it.

Associated on arrival

Match contacts to existing companies using cleansed domain, company name, external IDs, or another configured property. Deals and supported custom objects can be associated in the same staged workflow.

Added to the HubSpot list

Put imported contacts into the intended list as part of the saved import template, so the webinar cohort is segmented when it lands.

Configured in flight

Set a source, campaign, owner, or another shared property across imported records without adding another CSV column.

Associate on import · Contacts → Companies

Imported contact field

Email domain

Cleaned before match

Matching options

Ignore www + subdomainFallback: Company name

Existing HubSpot company

Acme, Inc.

Company ID 98341

344 company associations proposedReview before Import
Dry run before, template after

Compare first. Import last. Save the process for next time.

Compare generates a read-only CSV showing the file beside matched HubSpot records: which rows are new, which already exist, and what values differ. It changes nothing and also works for jobs such as checking an unsubscribe list.

Save the complete configuration, mapping, matching, preparation, validation, associations, and list, as a template. The monthly partner list or weekly event export follows the same reviewed process no matter who runs it.

Compare is the safety step. Import applies when confirmed. There is no additional post-confirm preview inside Magical Import.

Compare · Monthly partner list
RecordCSVHubSpotResult
Maya Patel · TitleVP SalesVP of SalesWould update
Alex Morgan · Size500750Protected by Fill
Sam RiveraNew row, Create
Read-only report readyNo HubSpot changes
The questions HubSpot importers ask

Straight answers about importing CSV data into HubSpot.

Why did my HubSpot import create duplicates?

Imports identify existing records through the selected unique identifier, such as Record ID, contact email, company domain, or a supported unique property. If the file lacks the right identifier, or a personal email does not match the work email already in HubSpot, the row may be treated as new. Insycle can evaluate ordered multi-field and fuzzy rules, then show the proposed match before import.

Can I update HubSpot records from a CSV without overwriting good data?

Yes. HubSpot supports a per-property “Don’t overwrite” option. Insycle adds explicit Field Logic for each mapped property: Update, Fill, Overwrite, or Append. Fill is useful for enrichment files because it writes the CSV value only when the existing HubSpot property is blank.

Can I undo a HubSpot import?

There is no one-click rollback for updates to existing records. HubSpot import history can identify records created by an import and those new records can be deleted, but deleting does not reverse property updates. In Insycle, run Compare first; if needed afterward, use the run report to delete records created by that import, and restore updated values with a corrected import matched by Record ID.

Can I import custom objects, tickets, and line items?

Yes. Magical Import uses the same staging workflow for contacts, companies, deals, tickets, leads, line items, orders, listings, courses, and custom objects.

The difference is the working layer before confirmation

HubSpot import, Excel preparation, and Insycle staging.

RequirementHubSpot importerExcel prep + importerInsycle Magical Import
Duplicate matchingRecord ID, email, domain, or a supported unique propertyManual lookup against an exportOrdered multi-rule + fuzzy matching, with live matches shown before import
Existing valuesCreate/update modes plus per-property “Don’t overwrite”Depends on the prepared file and importer settingsUpdate, Fill, Overwrite, or Append per property
CleaningDate/number settings and mapping-stage correctionsSpreadsheet formulas and manual reviewFull transformation catalog on the staged working copy
ValidationMapping errors can be corrected or skippedEyeballing and custom spreadsheet checksReusable rules plus automatic picklist validation; unresolved rows blocked
AssociationsMulti-object imports use shared identifiers and can add labelsRequires correctly structured files and keysMatch staged rows to existing HubSpot records on configured fields
Contact segment/listCan create a segment from imported contactsConfigured after the file is preparedAdd contacts to the intended list within the saved import template
Dry runNo full target-set comparison against live matched valuesThe lookup becomes the rehearsalCompare: full side-by-side read-only CSV
If something goes wrongImport history identifies created/updated records; new records can be deleted, updates require correctionBrowse, delete new records, and correct updatesRun report identifies created records for Delete; restore updates with a corrected Record-ID import
Recurring fileCan reuse a recent past import as a templateRepeat the spreadsheet preparationSaved template includes matching, prep, validation, associations, and list

Developer verification: Recheck HubSpot’s current single-object, multi-object, and import-history documentation immediately before publication. Keep the comparison centered on the staging layer rather than transient UI toggles.

Retire the recurring bad upload

The safest import is a process the whole team can repeat.

The file can change every month while the approved mapping, matching, value logic, validation, and association decisions stay consistent.

“We’ve been able to match and merge records using custom rules, and the preview function gives us peace of mind before making changes. You get much more control and transparency.”

Carlos L. · CRM Admin / Developer · Mid-Market

G2 review

4.6 out of 5 on G2

Based on 209 reviews from CRM and operations teams.

Read the reviews on G2
See the matches before the import

Upload a CSV and find out which rows already exist.

Stage the file, inspect live HubSpot matches, fix validation errors, and run Compare before importing anything.

Govern what enters HubSpot

Every import is a writer, and imports are where much of the bad data enters.

Define what is allowed through the door instead of cleaning the same patterns after they land.

See how teams govern what enters the CRM