Use the Data Import Wizard for up to 50,000 records on standard objects when you want guardrails and duplicate matching. Use Data Loader when you need more volume, any object, deletes, exports, or a repeatable command-line run. Neither one transforms your data, and that is usually the actual job.
| Tool | Volume | Good for | Cannot do |
|---|---|---|---|
| Data Import Wizard | Up to 50,000 | Accounts, contacts, leads and custom objects, in the browser, with duplicate matching | Most standard objects, deletes, exports, scheduling |
| Data Loader | Up to 5 million | Any object, insert, update, upsert, delete, export, and a CLI you can schedule | Transform your data, or tell you which of 4,000 rows is wrong |
| Bulk API directly | Very large | Programmatic loads inside a wider pipeline | Anything without a developer writing the caller |
| ETL or iPaaS tooling | Any | Scheduled syncs between systems with clean APIs | Read a PDF, or decide what an ambiguous record means |
The decision in one line
If a human is doing this once, in the browser, on a standard object, use the Import Wizard: it matches duplicates and it is harder to break something with. Everything else is Data Loader, and if the load recurs, use the command-line version so the mapping is a file you can review rather than a set of dropdowns someone clicked.
The three jobs neither tool does
Those three consume most of the hours. The load itself takes minutes.
- Transformation. Splitting a name field, normalizing a state, deriving a household key, converting a fee schedule. This happens in a spreadsheet beforehand, by hand, every time.
- Error triage. A load of 4,000 rows returns 180 failures with terse messages. Someone opens the error file, works out which are duplicates, which are picklist mismatches and which are missing required fields, fixes them, and reloads.
- Reconciliation. Confirming that what landed matches what you sent, field by field, rather than by row count.
Traps worth knowing before you start
- Use external IDs and upsert rather than insert, so a rerun updates instead of duplicating.
- Load in dependency order. Parents before children, and keep the ID map from each pass.
- Turn off automations for the load , deliberately and temporarily, or your Flows will fire 4,000 times.
- Dates and numbers are locale-sensitive. Set the user's locale to match the file, not the other way around.
- Picklists reject silently in some contexts and hard-fail in others. Validate the source values against the target before loading, not after.
When the import is not a one-off
The important question is whether this file arrives again next month. A custodian extract, an e-billing export, a partner referral list and a payroll feed all look like one-time imports the first time and turn out to be recurring. At that point the tooling question changes: you are no longer choosing an import tool, you are deciding who owns a weekly job.
Where Caddi fits
Caddi is built for the third case. Record the import the way you do it today, including the spreadsheet work in the middle, and Caddi runs it as deterministic code on a schedule: read the file, apply the transform, load through the API, triage the failures against your rules, and report what changed and what did not. The parts that were manual because no tool covered them are the parts it takes over.
Related: Excel to Salesforce, Salesforce ETL tools, and CRM migration.
The recurring half
See a recurring import run itself
Caddi takes the whole loop, including the spreadsheet step in the middle and the error triage at the end.
Frequently asked questions
What is the record limit for the Salesforce Data Import Wizard?
50,000 records per import. It covers accounts, contacts, leads, solutions, campaign members, person accounts and custom objects, and it can match duplicates on the way in. For anything beyond that list or that volume, use Data Loader.
Is Data Loader better than the Data Import Wizard?
It is more capable, not better. Data Loader handles any object, up to five million records, and supports insert, update, upsert, delete and export, plus a command-line interface you can schedule. It also has fewer guardrails, so a bad mapping does more damage.
Can Data Loader transform data during a load?
No. It maps columns to fields and nothing more. Splitting fields, normalizing values, deriving keys and cleaning formats all happen before the file reaches Data Loader, which is why most imports are really spreadsheet work with a load at the end.
How do I schedule a recurring Salesforce import?
The Data Loader command-line interface can be scheduled by your operating system's scheduler, with the mapping and connection held in configuration files. That covers the load itself. The transformation and error-triage steps around it still need an owner, which is what makes recurring imports a staffing question rather than a tooling one.