Data ManagementMagical Import

Import CSV data into your CRM, without duplicates, overwrites, or orphaned records.

Magical Import stages your file before anything touches the CRM. AI maps the columns, matching rules find rows that already exist, and you decide field by field whether CSV data updates, fills, overwrites, or appends. Clean it, validate it, associate it, then import.

AI reads column names only, never record dataFull import report with before and after

CSV Preview · event-leads.csv

Rows staged

2,418

Existing records matched

1,706

No CRM changes
CSV rowCRM matchAction
maya@acme.comMaya Chen ↗Update
noah@orbit.ioNoah Reed ↗Fill
lena@north.de, Create
test@example.comWarningBlocked
Click any match to verify it in the CRMCompare
The CRM is the final step, not the testing ground

See what already exists, decide exactly what changes, and resolve every warning before a single row enters your CRM.

Magical Import turns the CSV into a staging layer where mapping, matching, preparation, validation, and associations happen against a live CRM preview. The import runs once, at the end, exactly as configured.

More than a mapping wizard

Native import tools ask which column maps where, and then ask you to trust the outcome.

Matching is often thin, field behavior applies broadly, and associations become a second project. The usual defense is an hour in Excel: cleaning values, VLOOKUPing against a CRM export, and hoping the re-import does not create the next mess.

How a staged CRM import works

Upload the CSV, map its columns, and define ordered rules that match rows to existing CRM records. Prepare and validate the staged values, configure associations, then run Compare for a read-only report of what would be new or changed. Import only after the file and CRM agree. Save the configuration as a template for the next file.

Match before import

It knows which rows already exist, before you import.

Waterfall rules test each CSV row against the CRM in order. Only a row that exhausts every rule without a match is treated as new.

  1. 1

    Email

    Also checks additional-email fields automatically

  2. 2

    First name + Last name + Company

    All fields inside the rule must match

  3. 3

    First name + Last name + Phone

    Runs only when earlier rules find nothing

  4. 4

    No match

    Only now is the row treated as new

Matching criteria

Records Mode

Update existing and create new

Rule 1

Email

Matched: 1,512 rows

Rule 2

First + Last + Company

Matched: 146 additional rows

Rule 3

First + Last + Phone

Matched: 48 additional rows

1,706 existing · 712 new

Matches appear as live CRM links in Preview

Update existing and create new

Matched rows update; unmatched rows become new CRM records.

Only update existing

Anything unmatched stays out, so no new record can slip into the CRM.

Only create new

Existing CRM records remain untouched; only genuinely unmatched rows are created.

Decide what wins

Your CRM data does not lose to a spreadsheet by default.

Set the behavior per column instead of making one overwrite decision for the whole file.

Update

The CSV value wins, but empty CSV cells are skipped. A blank in the file cannot erase a populated CRM value.

Fill

The CSV value lands only when the CRM field is empty. Existing values are never touched.

Overwrite

The CSV wins outright, including empty values, deliberately chosen per field, never assumed for the whole file.

Append

Add to what is already there: concatenate notes or add multi-select values without re-listing existing ones.

Field mapping

CSV column

Company Industry

CRM field

Industry

Update
Fill
Overwrite
Append
AI-assisted setup, with a narrow scope

Suggestions from metadata, not customer records.

When enabled, AI reads CSV column names and suggests field mappings and matching criteria. Record data is never sent to AI providers. Every suggestion is reviewable, and saved templates take precedence when both apply.

The native wizard makes one decision for the whole file. Magical Import makes the right decision for each field.

Prepare

Clean the file inside the import.

Run the same 60+ Transform Data functions on the staged CSV: format phones and names, standardize countries and states, split and extract text, map values, and fix dates to the CRM's expected format.

Apply a function and watch Preview update. Adjust and reapply as needed. The source file remains untouched, and deleting a function reverts its staged result.

Explore the complete Transform Data function catalog
Validate

Rows with errors do not import.

Require values and patterns, exclude test data, and let automatic picklist and reference checks catch illegal values. Unmapped columns and failed rules are flagged in Preview with the specific reason.

  • Invalid picklist: “Enterprise SaaS” is not an allowed Industry option.
  • Required value missing: Email is blank.
  • Excluded test row: Domain matches example.com.

Validation · 37 rows need attention

RowEmailIndustryStatus
184maya@acme.comSoftwareReady
185, TechnologyBlocked: required email
186test@example.comEnterprise SaaSBlocked: excluded + invalid picklist
Connect

Imported records land linked, not orphaned.

Create associations during the import by matching property values: contacts to companies, deals to accounts, custom objects, or even contacts to existing activities such as meetings by ID.

  • Set a source tag or campaign across every imported row without adding a CSV column.
  • Add HubSpot contacts directly to a list.
  • Add Salesforce records to a campaign with member status.

Associate

Imported object

Contact

Email domain

Existing object

Company

Company domain

2,381 associations ready

37 rows remain blocked by validation

Constant value for all imported records

Lead Source = 2026 Industry Summit

One staging layer, four actions

Do more than import.

Import

Create and update records according to Records Mode, matching, Field Logic, validation, and associations.

Compare

Run the read-only dry run: see net-new versus existing rows and every value an import would change, side by side.

Recommended first step

Export

Feed identifiers into the staging layer and pull selected CRM fields back into a CSV for reverse enrichment.

Delete

Match a CSV of known-bad record identifiers and remove those records in bulk.

Compare first, then Import. Compare is the read-only dry run. Import and Delete apply after confirmation; they are not described as having a separate post-confirm preview step.

Verify and repeat

A receipt for every row, and a template for next time.

Every import finishes with counts for created, updated, failed, and unmodified rows. The Run ID opens a CSV with each row's outcome, failure reason, and before-and-after values. Reports also arrive by email, while large imports remain visible in the Activity Tracker.

Save mapping, matching, preparation, validation, and associations together. The monthly partner list becomes a repeatable import that behaves the same way no matter who runs it.

Import Result · Run 8F42

Created

712

Updated

1,669

Failed

37

Unmodified

0

Download full report Save as template
Native import vs. staged import

Make every decision before the CRM is touched.

CapabilityNative CRM wizardExcel pre-clean + importInsycle Magical Import
Duplicate matchingEmail only, or noneManual VLOOKUP against an exportOrdered waterfall rules, cross-field lookup, and visible matches
Existing valuesOne behavior for the fileWhatever the wizard doesUpdate, Fill, Overwrite, or Append per field
CleaningFix the file firstThe hour in Excel60+ transform functions on the staged file
ValidationImport first, discover laterManual inspectionRules and automatic picklist/reference checks; failing rows blocked
AssociationsLimited or post-importNot possibleCreated during import by matching values
Dry runNo full side-by-side reportThe VLOOKUP was the dry runCompare: a complete read-only report
AuditImport summaryNonePer-row before/after, Run ID, and Activity Tracker
RepeatabilityReconfigure each timeRedo the Excel workSaved templates for team-consistent imports
Proven on import day

Give the person holding the CSV a workflow they can verify and repeat.

Import a high-stakes file with matching, updates, and duplicate prevention decided up front, and preview the result before anything is written.

“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
Frequently asked questions

What happens before the import reaches your CRM?

How do I import a CSV without creating duplicates?

Define ordered matching rules before importing. Magical Import checks each row against existing CRM records, including related email or domain fields, and treats a row as new only after every rule fails to find a match.

Can I update existing records without overwriting good CRM data?

Yes. Choose Field Logic per column: Update skips empty CSV values, Fill changes only empty CRM fields, Overwrite deliberately replaces the CRM value, and Append adds to existing text or multi-select values.

Can I associate contacts to companies during import?

Yes. Configure an association by matching property values so imported contacts, companies, deals, custom objects, and supported activities arrive connected.

Can I preview an import before running it?

Use Compare as the read-only dry run. It reports which rows are new or existing and shows the CRM values beside the staged CSV values without changing anything. After reviewing Compare, run Import with the same saved configuration.

Start with the file in front of you

Upload a CSV and see which rows already exist, before importing anything.

Map, match, clean, validate, and compare the staged file against your live CRM.

Govern what enters the CRM

Every import is a writer, and imports are where most bad data gets in.

Move beyond cleaning what is already there. Define the standards every new file must follow before it becomes CRM data.

See the complete Data Integrity system