The short answer: the Data Import Wizard loads up to 50,000 records at a time, from a CSV file of up to 100 MB, into accounts, contacts, leads, solutions, campaign members, person accounts, and custom objects — and nothing else. It cannot import Opportunities, Cases, Products, Price Books, or Users; it cannot delete; it cannot export; it cannot be scheduled; and it will not transform your data on the way in. If your job crosses any of those lines, the tool is Data Loader (or the Bulk API), not the wizard.
The limits, in one table
Every number below comes from Salesforce Help or the Data Loader Guide.
| Limit | The number | Where it bites |
|---|---|---|
| Records per import | 50,000 | You cannot raise it. You split, or you switch tools. |
| Objects supported | Accounts, contacts, leads, solutions, campaign members, person accounts, custom objects | That list is exhaustive. |
| Objects not supported | Everything else | Opportunity, Case, Product2, Pricebook Entry, Opportunity Product, User, Asset, Contract, Order, Quote. |
| File format | CSV only | Converting Excel to CSV is where leading zeros, long IDs, and dates get mangled. |
| File size | Up to 100 MB; no single record over 400 KB | Rarely binding — the 50,000-row cap bites first. |
| Fields per record | 90 | The wizard maps up to 90 columns. The effective limit can be lower on objects with long field names, because the underlying mapping has its own character budget. |
| Notes and descriptions | 32 KB each | Longer text is truncated, not rejected. No error — just amputated content. |
| Operations | Add, update, or add and update | No delete. No export. A one-way door. |
| Matching key for updates | Salesforce record ID, a unique External ID field, account name and site, contact email, or lead email | Any other key, and you cannot update with the wizard. |
| Transformations | None | No trim, no find-and-replace, no value mapping, no date reformatting, no joins. |
| Scheduling / automation | None | A person uploads a file; results arrive by email. That is the whole loop. |
When the wizard is genuinely the right tool
It gets unfairly maligned. For a large share of real imports it is the correct choice, and reaching past it costs you time. Use it when:
- The object is on the supported list.
- The file is under 50,000 rows and reasonably narrow.
- The data is already clean and shaped like the target fields.
- It is a one-off, run by hand.
- You want its duplicate handling. The wizard can match on account name and site, contact email address, or lead email address, so a re-run does not double your database — a convenience Data Loader will not hand you for free.
It runs in the browser with no install, no API enablement, and no security token. If the job fits, use it.
Workaround per limit
More than 50,000 records
Switch tools. Salesforce documents Data Loader as handling CSV files with a maximum of 150,000,000 records when it uses Bulk API 2.0. It is free, it comes from Salesforce, and it is what the docs point you toward once you cross the wizard's ceiling. See how Data Loader compares if you have not used it.
Split the file. Tempting, occasionally fine — but understand what you are signing up for:
- Parent-child ordering. A child can only point at a parent that already exists. Load every Account before any Contact; load parents before children on custom objects. Split by row count rather than by object and you will slice a parent away from its children, and the lookups fail.
- No rollback across chunks. Each chunk is a separate job. If chunk 4 of 6 fails, the first three are already committed.
- Six error reports, not one, which you merge by hand before you can even see the shape of the failure.
- Matching happens per run. Duplicate handling evaluates the chunk you just uploaded, not the five queued behind it.
Splitting is reasonable for 60,000 rows of one flat object. It is a bad answer for 180,000 rows across three related objects.
The object is not supported
There is no workaround inside the wizard, and no Setup toggle that adds Cases to it. Opportunities
are the case people hit first and hardest — the wizard has never supported them, and the API's three
required fields (Name, StageName, CloseDate) plus the Account
lookup most orgs expect make it a fiddly load. We wrote it up separately:
importing Opportunities into Salesforce.
For any unsupported object, Salesforce's own guidance is to use Data Loader — or the Bulk API, or a
tool that speaks to the API on your behalf.
The data needs transformations or a join
The wizard maps columns to fields. It does not change what is inside them. So every one of these has to be solved before you upload:
- Source values that the field will not accept —
a restricted picklist rejects
USwhen it wantsUnited States. - Dates in a format Salesforce parses differently, which is how 1 July arrives as 30 June.
- Currency symbols, thousands separators, or a comma as a decimal point.
- A blank cell in a field the object requires — the wizard will not invent a value for you, and the row fails.
- Data spread across two files, where the account name lives in one and the account ID in the other.
Solve it in the file, with formulas, VLOOKUPs, and a lot of care — or solve it in a tool built to prepare the file. There is no third path: the wizard has no opinion about your data at all.
You need it to run on a schedule
Wrong tool, permanently. The wizard is a browser upload driven by a person, and it emails you when the job finishes. Data Loader's command-line interface (Windows only) can be scripted and scheduled; beyond that you are looking at an integration platform.
You need to delete, or you already imported garbage
The wizard cannot delete. If you have just imported 8,000 wrong records, your options are:
- Mass Delete Records in Setup — covers accounts, leads, activities, contacts, cases, solutions, products, and reports, and deletes at most 250 records per run. It does not cover custom objects. At 250 a run, it is a tool for a mistake of tens, not thousands.
- Data Loader — delete or hard delete by record ID, which means first exporting the IDs of what you loaded. For 8,000 rows this is the realistic answer.
Both are unpleasant, which is the argument for catching the problem in preview rather than in production.
Your data is in Excel, not CSV
The conversion is mandatory — and it is where a phone number loses its leading zero, an 18-character ID becomes scientific notation, and a date re-formats to your machine's locale. Why that happens, and how to avoid it.
What no import tool can do for you
This applies to the wizard, to Data Loader, and to us. Validation rules, required-field logic, Apex triggers, Flows, and duplicate rules all execute inside Salesforce at write time. A tool can tell you a picklist value will be rejected, because the accepted values are published in the object's metadata. It cannot tell you a Flow will reject the row, because that logic is code in your org. Expect a first run to surface org-side failures no file preparation would have caught, and read the error reference when it does.
Wizard vs. Data Loader vs. a preparation tool
| Data Import Wizard | Data Loader | INQUA | |
|---|---|---|---|
| Record ceiling | 50,000 | 150,000,000 (Bulk API 2.0) | Bulk API 2.0, but sized for interactive review — not nine-figure loads |
| Objects | Seven supported types | All | Any object your org's API exposes, standard or custom |
| Input format | CSV | CSV | CSV, TXT, XLSX, XLSM — read natively |
| Transformations | None | None | 13 chainable per-column rules, value mapping among them |
| Joins across files | No | No | Up to 5 files (1 primary + 4 lookups) |
| Delete | No | Yes | No — never deletes, by design |
| Export from Salesforce | No | Yes | No |
| Scheduling | No | Yes (CLI, Windows) | No |
| Update by record ID | Yes | Yes | No — insert, or upsert on an External ID |
The honest read: Data Loader is the better loader. It deletes, it exports, it schedules, and it will move a hundred million records. What neither it nor the wizard does is help you get the file right in the first place — and that, not the upload, is where import days disappear.
INQUA sits in that gap. It reads
your .xlsx or CSV as it is, joins up to five source files with a match-rate preview,
applies per-column transformations (trim, find-and-replace, parse a date with an exact format,
map values to the picklist entries the field actually
accepts), and shows a typed preview with per-cell errors before anything is written. It captures
the accepted picklist values from your org's metadata, so a value a restricted picklist would
reject is flagged in preview rather than in an error email. Then it either writes a typed workbook
onto your own load template — no Salesforce connection required — or performs a Bulk API 2.0
insert or External-ID upsert, double-confirmed. It refuses the upload outright while any cell
error remains.
What it does not do, so you can rule it out quickly: it does not delete, does not export records from Salesforce, does not schedule jobs, and does not update by record Id. It cannot simulate your validation rules, triggers, Flows, or duplicate rules — nothing outside your org can. It is free during early access, and the whole preparation half works without connecting Salesforce at all. Start from a load template if you do not have one.
The short version
- Under 50,000 rows, supported object, clean data, one-off — use the wizard.
- Unsupported object, or you need delete, export, or scheduling — use Data Loader.
- The file needs work before either will accept it — fix the file first, in something that shows you the errors before Salesforce does.