The short answer: if you need to update records by Id, delete or hard delete, export records out of Salesforce, or run a load from the command line on a schedule, use Data Loader. Nothing here replaces it, and you should not go looking for a replacement. What Data Loader does not do is prepare the file — no Excel input, no transformations, no joins across files, no de-duplication, and no validation until after the job has run and written the error file. If that is the part costing you the afternoon, that is the part worth replacing.
What Data Loader is genuinely good at
Salesforce describes Data Loader as a client application for the bulk import or export of data, and it is a strong one. Concretely:
- The full set of write operations. Insert, Update, Upsert, Delete, and Hard Delete. Most alternatives — including this one — support a deliberately narrower set.
- Update and delete by record Id. If you have a CSV of eighteen-character Ids and a column of new values, Data Loader is the shortest path there is.
- Getting data out. Export runs a SOQL query and writes the results to CSV; Export All additionally returns archived activity records and soft-deleted records.
- Automation. The command-line interface (Windows only) takes its settings from
a
process-conf.xmlfile and a.sdlfield-mapping file, so you can schedule a nightly load without a human present. - Scale. Salesforce documents Data Loader as handling CSV files with a maximum of 150,000,000 records when it uses Bulk API 2.0 — far past the Data Import Wizard's 50,000-record ceiling, and past anything a browser-based tool should attempt.
- Free, official, and documented. It is a Salesforce tool, its behavior is specified in the Data Loader Guide, and it has been the default answer for bulk DML for years.
Say it plainly: if you need any of the above, use Data Loader. The honest case for anything else is not "Data Loader is bad." It is that Data Loader starts at the moment your file is already correct.
Where it leaves you doing the work by hand
No Excel input
In the UI, Data Loader reads CSV. (The command line can additionally read from a JDBC database
connection, but that is not where your list came from.) What neither reads is .xlsx,
which is almost certainly how your data arrived. So every run begins with a Save As, and the Save As
is where leading zeros get eaten, long Ids turn into scientific notation, and dates get rewritten
into whatever your machine's locale prefers. This is a real source of bad data, not a cosmetic
complaint — we covered it in
importing Excel to Salesforce without the CSV step.
A desktop install, with a Java runtime you supply
Salesforce no longer bundles Java with the Data Loader for Windows installer. You install Zulu OpenJDK 17 or later yourself, then install Data Loader. On a locked-down corporate laptop that is not a five-minute job, and it is a poor fit for the colleague in ops who loads a list once a quarter.
No transformations
Data Loader maps a column to a field. It will not trim whitespace, strip HTML out of a description,
change Prospect to Open - Not Contacted, reformat a date, or split a full
name. Every one of those happens in Excel first, by hand, and has to happen again the next time the
same export lands.
One file in, no joins, no de-duplication
If your Accounts are in one export and their industry codes are in another, you write a VLOOKUP. If the file has three rows per company and you want one, you sort and delete. Data Loader loads what you give it.
Mapping is per-run
You can save a mapping and reuse it — the command line reads a .sdl file whose lines
pair a source with a destination, like Name=Name — but that is a column-name-to-field-name
list and nothing more. It carries no rules, no cleanup, no defaults.
Errors arrive after the write, not before it
This is the big one. Data Loader runs the job, then writes two CSV files into the folder you chose:
one starting with success, one starting with error. There is no pre-flight
check. Nothing tells you in advance that a
restricted picklist will reject your Status
column, or that
a date column will not parse. You find
out by loading, reading the error file, fixing, and loading again — and because the load is not
all-or-nothing, Data Loader writes the rows that passed, so that loop usually starts by cleaning up a
partial import.
Data Loader vs INQUA, row by row
| Capability | Salesforce Data Loader | INQUA |
|---|---|---|
| Source files | CSV in the UI; the CLI can also read a JDBC database source. No Excel either way | .csv, .txt, .xlsx, .xlsm read natively (legacy .xls must be re-saved) |
| Multi-file joins | None — one file per run | Up to 5 files (1 primary + 4 lookups), with a match-rate preview |
| Transformations | None | 13 chainable per-column steps: trim, strip HTML, collapse whitespace, case changes, find & replace (plain or regex), prefix, suffix, default if empty, substring, parse date with an exact format, map values |
| Row filtering and de-duplication | None | Keep all rows, only matching rows, first per group, or one per group (preferring or requiring a match); 14 operators |
| Field mapping | Yes — reusable .sdl map, names only |
Yes, carrying the field's type and accepted picklist values with it |
| Pre-flight validation | None — errors appear in the results file after the run | Typed preview with per-cell errors; flags values a restricted picklist would reject before any write |
| Excel output | CSV only | Typed .xlsx written onto your own load template, header block and formatting preserved |
| Writes supported | Insert, update, upsert, delete, hard delete | Insert, or External-Id upsert. Never an update by record Id |
| Delete records | Yes, including hard delete | No, by design — it never deletes |
| Export records from Salesforce | Yes — Export and Export All, via SOQL | No |
| Scheduling and automation | Yes — command line (Windows), process-conf.xml |
No. It is an interactive tool, not an ETL platform |
| Scale | Up to 150,000,000 records with Bulk API 2.0 | Bulk API 2.0, but sized for interactive review, not nine-figure loads |
| Install | Desktop install; you supply Zulu OpenJDK 17 or later | Browser; the typed-workbook path needs no Salesforce connection |
| Cost | Free | Free during early access |
What the alternative actually is
INQUA is a preparation and validation
workbench, not a Data Loader clone. You give it your spreadsheets, join them, clean the columns,
pick the rows you want, and see a typed preview with the bad cells marked — including values a
restricted picklist would refuse. Then you either export a typed .xlsx written onto
your own load template, which needs no Salesforce connection whatsoever, or push an insert or an
External-Id upsert over Bulk API 2.0 behind a double confirmation. It refuses the upload outright
while any cell error remains, and it refuses an identical repeat upload unless you explicitly
allow it. The full mapping and transformation surface is listed under
import options.
And the limits, stated up front, because a comparison page that hides them is worthless:
- It cannot update records by Id, delete, or hard delete.
- It cannot export records out of Salesforce. Use Data Loader's Export for that.
- It cannot be scheduled or run headless.
- It cannot predict your org's automation. Required-field errors, validation rules, triggers, Flows, and duplicate rules all run inside Salesforce, and no external tool can simulate them. It catches type and picklist problems in the file; it does not catch a validation rule that fires on save. Expect those to appear the same way they always have — see the import error hub when they do.
The realistic setup: use both
These tools do not overlap much, so the sensible pattern is a handoff:
- Prepare in INQUA — join the files, transform the columns, de-duplicate the rows, clear every flagged cell in preview.
- For a straightforward insert or External-Id upsert, load it directly from there and stop.
- For anything Data Loader owns — an update by record Id, a delete, a scheduled run — export the
typed
.xlsx, save it as CSV, and hand it to Data Loader. The file it receives is already clean, so the error file comes back empty.
If your volumes are small and your objects are simple, the Data Import Wizard may still be the right answer; its limits and workarounds are worth knowing before you install anything. And if the CSV keeps coming back with errors, the fastest fix may just be a correct starting file — the import templates are free.