Skip to content
DataUntangler

NetSuite CSV import files, cleaned and deduped before the Import Assistant runs

A NetSuite CSV import fails or creates duplicates for reasons that sit in the file, not in NetSuite: the same customer twice under two spellings, states written out in full, USA where NetSuite wants a country name, balances with dollar signs and dates in four formats. DataUntangler finds those problems in your browser before you open Setup, Import/Export, Import CSV Records, and shows each fix as a change you approve. You upload a file you have already read.

In-browser your file never leaves your computer

Every row proposed to you before it is applied

CSV log of what you approved and rejected

Clean a file
01 Try it on this page

Load a messy sample and watch it work

The same engine described below, running on your own machine. Nothing is uploaded and nothing is applied until you approve it.

1. Load a file

Your file is read on your own machine. Nothing is uploaded, so nothing can leak.

Or start from a messy sample

Status

Loading the sample file.

File: CRM contact export

Rows

--

Columns

--

Changes

--

Duplicate rows

--

Date formats

--

Blank or invalid emails

--

Load a file to see the diff

Drop a CSV or pick one of the messy samples. Every proposed change appears here as a line you approve or reject.

02 About netsuite csv import

What the NetSuite Import Assistant expects from your file

NetSuite documents its CSV rules in the help center, and most failed jobs break one of a short list. The Import Assistant takes up to 25,000 records or 50 MB per job, and on a multiple file upload the files together have to stay under that. You reach it at Setup, Import/Export, Import CSV Records, with the Import CSV File permission, and it walks you through five steps: scan and upload, import options, file mapping for multi file jobs, field mapping, then save and run.

The rules that cause the most rework are about values rather than structure. Reference fields have to be written exactly as they appear in the dropdown on the NetSuite form. States have to use the short names your account is set up with, and NetSuite asks for country names rather than country codes. Dates are validated against the date format in the preferences of the user running the import, which is MM/DD/YYYY on a default US account. And if two columns share a header, only the second one is imported.

NetSuite rule How a raw export breaks it What the pass on this page proposes
State short names massachusetts, Pennsylvania, pa, il in one column MA, PA, IL on every row
Country names, not codes U.S.A., USA, US, U.S. United States
Numbers NetSuite can read $15,000.00 next to 15000 15000.00 on every row
One date format per column 03/04/2026, 4 Mar 2026, 2026-02-11, 1/15/2026 One consistent date per row, ready to format once
Leading zeros kept A Boston ZIP code saved as 2110 02110
No duplicate records Brightwater Supply Co and brightwater supply co. with the same email One cluster, the most complete row marked to keep
Clean text values Trailing spaces, Café where Café should be Spaces trimmed, the original character restored

Every row in this table came out of a real run of the engine on a seven row NetSuite customer file. Phone numbers were left exactly as they were: the engine does not reformat phones, so NetSuite receives them as your source system wrote them.

Why a NetSuite CSV import creates duplicate customers

NetSuite has duplicate detection for customers, contacts, partners and vendors, and by default it looks for duplicates by email address. When the Duplicate Detection and Merge feature is on and at least one record type is set to be checked, page two of the Import Assistant shows a Prevent Duplicate Records box under Advanced Options. Tick it and any row NetSuite considers a duplicate fails with the error Duplicate record was detected. Leave it unticked and the row is created and marked as a duplicate, to be sorted out later under Lists, Mass Updates, Entity Duplicate Resolution.

Both outcomes rely on NetSuite recognizing the pair. A customer whose email is missing on one row, or who arrived as Keystone Fabrication Inc from one system and Keystone Fabrication from another, can pass an email check and land twice. Merging afterwards has its own limits too: NetSuite will only merge two records with the same tax registration number or none, and in OneWorld it will not merge records that belong to different subsidiaries. So a duplicate that gets in is not always one click to remove.

The cheaper place to catch it is the file. The engine here compares email after trimming and lowercasing, then name and company after normalizing legal suffixes such as Inc, LLC and Corp, and proposes each group as a cluster with its reason. That is the same fuzzy matching used on every other page of this site, pointed at the rows you are about to import.

How to prepare a CSV for a NetSuite import

  1. 1 Export the records from the source system, QuickBooks, a CRM, a spreadsheet somebody kept by hand, as CSV. Keep one row per record and give each column a plain, unique header: Company Name, Contact, Email, Phone, State, Zip Code, Country. Remember that NetSuite drops the first of two columns with the same header.
  2. 2 Add an External ID column holding each record ID from the old system. It lets later imports update the same records instead of adding new ones, and it gives you something to reconcile against after the job runs.
  3. 3 Load the CSV into the demo at the top of this page. It is parsed and matched inside your browser tab, so a customer master does not leave your laptop while you are deciding what goes into NetSuite.
  4. 4 Read the proposed changes and the duplicate clusters. Approve what is right, reject what is not, then download the cleaned CSV and the audit log of every decision.
  5. 5 Set the date column to your NetSuite date format before you save the CSV. The cleaned file carries one consistent date per row, so in Excel this is a single Format Cells change to mm/dd/yyyy rather than a hunt through four formats.
  6. 6 Run a small test job first, a few dozen rows, ideally in a sandbox account, check the results on the job status page, then run the full file in chunks under the 25,000 record limit.

If the import is one part of a bigger move, the full cutover sequence, from freezing the source system to reconciling record counts, is in data migration cleansing software, and the QuickBooks specific version, including the display name suffixes QuickBooks forces on customers who are also vendors, is in QuickBooks to NetSuite migration.

Should I use Add, Update or Add or Update in the NetSuite Import Assistant?

Use Add for a first load into an empty record type, and Add or Update once records exist. Update and Add or Update match rows to existing records on a key field such as the internal ID or the External ID, so the key column has to be clean and unique. A duplicate in the key column updates one record twice and leaves its twin untouched.

That is why deduplication comes before the data handling choice rather than after it. A file with one row per real customer and one External ID per row behaves predictably under any of the three options. A file with duplicates behaves differently under each, and none of them warns you.

Vendor and item imports need the same pass

Customer files get the attention, but vendor imports carry the most expensive duplicates. Two vendor records for one supplier split the spend, split the 1099 totals and let the same invoice be paid twice, once against each record. The same pass works on a vendor list: supplier names normalized, emails trimmed, remit to states and ZIP codes put back into shape, and near duplicate suppliers grouped for review. One caution from our own testing: give the vendor number column a plain header such as ID, because a header like Vendor ID is read as a company column and weakens the matching. The longer write up on vendor files is vendor master data cleansing software.

Item imports are mostly a formatting job. Prices with currency symbols, SKUs that lost their leading zeros in Excel and units written three ways all fail or import wrongly. The engine fixes currency and leading zeros on columns it recognizes, and anything it is unsure of is shown to you with a confidence label rather than changed quietly. Keeping those lists clean after the go live is ordinary data hygiene.

When a NetSuite partner or an integration tool is the better buy

If you are importing transactions with sublists, rebuilding a chart of accounts, or moving history for several subsidiaries, a NetSuite partner earns the fee. Their work covers mapping, sequencing and testing well beyond one file. If the same data has to flow into NetSuite every day from another system, an integration platform or a scheduled import through SuiteScript is the right tool, because a person should not be cleaning a file every morning.

DataUntangler fits the job in between: a customer, contact, vendor or item file that has to go in clean this week, where somebody will be asked afterwards what was changed. It does not connect to NetSuite and does not claim to. It is a data cleaning tool that gives you the cleaned CSV and a log of every approved change, on the Analyst plan at 59 dollars a month with unlimited files up to about 100,000 rows each. The broader version of this workflow, for any file headed into any system, is data cleaning software.

03 Read it off a real file

A NetSuite customer import file, run through the engine on this page

External ID Company Name Email State Result
C-1001 Brightwater Supply Co laura.chen@brightwatersupply.com massachusetts Kept, state to MA, U.S.A. to United States
C-1002 brightwater supply co. LAURA.CHEN@BrightwaterSupply.com MA Same email address, likely: two External IDs, so you approve the merge, ZIP 2110 to 02110
C-1003 Keystone Fabrication Inc treyes@keystonefab.com pa Kept, state to PA
C-1004 Keystone Fabrication Pennsylvania Same company name, likely: two External IDs, so you approve the merge
C-1005 Northfield Dental Group pshah@northfielddental.com IL Left alone
C-1006 Northfield Dental Group billing@northfielddental.com il Left alone: two emails, flagged for you to decide

The Keystone pair has no email on one row, so an email based duplicate check has nothing to compare. The Northfield pair shares a name and a company but carries two different emails, and the engine keeps those as two records on purpose: it could be a second contact, and that is your call, not ours.

04 Fixing a NetSuite CSV import by trial and error

What a failed job teaches you, one error at a time

The Import Assistant reports the rows it rejected. It says nothing about the duplicates it accepted, and every rerun of a partly successful job risks adding the good rows a second time.

CRM data cleansing

Errors arrive one row at a time

An invalid state or a mixed date format fails some rows, you fix them, rerun, and find the next problem.

Email is the default duplicate check

A customer with no email on one row, or two spellings of one company, can pass and land twice.

Merging is not always possible

Records with different tax registration numbers, or in different subsidiaries, cannot be merged afterwards.

What the pass on the file adds

Every format problem and every duplicate cluster listed before the first job, each one approved or rejected by you, and a CSV of what changed keyed on your External ID.

05 Before you run it

Questions about netsuite csv import

How do I import a CSV file into NetSuite?
Go to Setup, Import/Export, Import CSV Records. You need the Import CSV File permission. Choose the import type and record type, upload the file, pick the data handling option, map the fields, then save the mapping and run it. Each job takes up to 25,000 records or 50 MB.
What is the maximum number of records in a NetSuite CSV import?
The Import Assistant accepts up to 25,000 records or 50 MB per import job, and on a multiple file upload the files combined must stay under both limits. NetSuite also recommends splitting large jobs into smaller chunks, because smaller files import faster and are easier to check.
How do I prevent duplicate records in a NetSuite CSV import?
Turn on Duplicate Detection and Merge, choose which record types to check, then tick Prevent Duplicate Records under Advanced Options on page two of the Import Assistant. NetSuite checks email by default, so also dedupe the file beforehand for pairs with a missing or different email.
What date format does a NetSuite CSV import use?
The date format set in the preferences of the user running the import, under Home, Set Preferences. On a default US account that is MM/DD/YYYY. A column that mixes formats will fail on some rows, so bring every date into one format, then apply the NetSuite format once.
Does DataUntangler connect to NetSuite?
No. It works on the CSV you are about to import, in your browser, and returns a cleaned file plus an audit log of every change you approved. You run the import in NetSuite yourself. Nothing on this site has access to your NetSuite account and nothing writes to it.
06 What it costs

Plans for when the file is bigger than the demo

Yearly billing saves 50 percent. There is no free plan, and no card is needed to use the browser demo above.

Yearly billing saves 50 percent, half the monthly price.

Switch to yearly and save 50 percent.

Analyst

Self-serve

One person with files to clean, as many as they like.

$29$59/mo

Billed $348 a year Billed monthly

Buy Analyst, yearly Buy Analyst, monthly
  • Unlimited files
  • Files up to 25MB, about 100,000 rows
  • Exact and fuzzy duplicate detection
  • Dates, numbers, currencies, encoding and casing fixed
  • Every change reviewable before you download
  • Cleaned CSV and a change log, both downloadable
  • Runs in your browser: files never leave your machine
  • Email support

Enterprise

Several people on one invoice, a DPA on request, priced per seat.

$49$98/seat/mo

Billed $588 a seat a year, from 2 seats ($1,176) Billed monthly per seat, from 2 seats ($196)

Buy Enterprise, yearly Buy Enterprise, monthly
  • Everything in Analyst
  • Several people on one invoice
  • DPA on request
  • Invoicing and purchase orders
  • A named contact for support

Payment is by card through our payment provider, monthly or yearly, and you can cancel from your account at any time. The free try is one file of your own, up to 5MB, in the browser demo. Already paid? Sign in.

Clean the file, and be able to show what you changed

Try the demo on your own CSV first. It runs in your browser, it costs nothing, and no card is required.

No card required. Your file never leaves your computer.

Clean a file