Salesforce Data Loader is Salesforce's free client application for working with records in bulk: inserting, updating, upserting, deleting and exporting them from CSV files. According to Trailhead, it can import up to 150 million records at a time, of any data type, through its interface or the command line.
This guide was first published in 2019. It has been rewritten for 2026 and now also covers the CSV file format and exporting attachments, which had their own posts on the old blog.
Data Loader or the Data Import Wizard?
Use the Data Import Wizard for up to 50,000 records into common objects, and Data Loader for anything larger, repeated, or involving deletes and exports.
| Data Import Wizard | Data Loader | |
|---|---|---|
| Records per load | Up to 50,000 | Up to 150 million |
| Objects | Common standard objects (accounts, contacts, leads and others) and custom objects | Any object, including those the wizard doesn't support |
| Where it runs | In the browser, from Setup | A desktop application, or the command line |
| Automation | No | Yes: scheduled loads such as nightly imports |
| Delete and export | No | Yes |
Limits from Trailhead's data import unit. Rule of thumb: under 50,000 rows into a common object, use the wizard; anything bigger, repeated or unusual, use Data Loader.
Salesforce's own pages don't agree on Data Loader's ceiling: Trailhead gives 150 million records, while some Salesforce Help pages give 5 million. For very large loads, split the work into batches and confirm the limit with Salesforce for your org before you plan around it.
How to install Data Loader
Install Java 17 or later, download Data Loader from Setup or GitHub, run the installer and log in with an API-enabled user.
- Check your computer. Salesforce officially supports Data Loader on Windows and macOS; other operating systems are unsupported, according to its GitHub README.
- Install Java. A Java Runtime Environment is required. As of November 2026 the latest release, v67.0.0 of 25 June 2026, needs JRE 17 or later, at least 120 MB of disk and 256 MB of memory, and supports Windows 10 and 11 (x64) and macOS 13, 14 and 15 on Intel and Apple silicon, according to its release notes. Linux works from the zip file but is unsupported.
- Download Data Loader from Salesforce, through the Data Loader page in Setup or the project's release page on GitHub, and run the installer.
- Log in to production or a sandbox with a user that has API access and the permissions for the objects you will touch.
How to prepare your CSV file
A good Data Loader file has a header row, one row per record, IDs for updates, and consistent date and picklist formats.
- One row per record, one column per field, with a header row. Using field API names as headers makes mapping quicker.
- Include record IDs for updates and deletes, or an external ID field for upserts, so Data Loader knows which record each row is.
- Use lookup IDs, not names, for related records, or an external ID on the related object.
- Keep formats consistent: one date format, one encoding (UTF-8 avoids broken accented characters), and picklist values that exactly match the field's values.
- Use an unambiguous date format. The Data Loader guide's supported data types page recommends
yyyy-MM-ddTHH:mm:ss.SSS+/-HHmmfor date-times, with an explicit time-zone offset so times don't shift. Dates written day first, such as31/12/2026, load correctly only if you turn on the Use European date format setting. Excel often rewrites dates when it saves a CSV, so check the file in a text editor before loading. - Test with ten rows before you load ten thousand.
How to use Data Loader, step by step
Every Data Loader job follows the same six steps: operation, object, file, mapping, output folder, then the error file.
- Choose the operation: Insert, Update, Upsert, Delete, Hard Delete, Export or Export All.
- Choose the object, for example Account or a custom object.
- Select your CSV (or, for exports, write or build the SOQL query).
- Map the columns to fields. Save the mapping so the next load is a single click.
- Choose where the success and error files go, and run the job.
- Read the error file. Every row that failed is listed with the reason: a validation rule, a missing required field, a bad lookup. Fix those rows and reload only them.
Data Loader settings that matter
Three settings decide how fast and how safely a load runs: the API, the batch size and the date format.
| Setting | What it does | Recommendation |
|---|---|---|
| Use Bulk API / Bulk API 2.0 | Sends records through the Bulk API instead of the SOAP API | Turn it on for loads in the hundreds of thousands of records |
| Batch size | Records sent per batch: up to 200 with the SOAP API and up to 10,000 with the Bulk API; Bulk API 2.0 sizes batches itself | Lower it if triggers or flows hit governor limits |
| Use European date format | Accepts dd/MM/yyyy and dd/MM/yyyy HH:mm:ss | Only if your file is day first |
Batch sizes are from the Data Loader guide's configuration page, as of November 2026.
The operations, and when to use each
Upsert is the safest operation for repeat loads; Hard Delete is the only one with no undo.
| Operation | What it does | Watch out for |
|---|---|---|
| Insert | Creates new records | Duplicates, if the records already exist |
| Update | Changes existing records by ID | Blank cells can overwrite values, depending on your settings |
| Upsert | Updates matching records and inserts the rest, by ID or external ID | The safest choice for repeat loads from another system |
| Delete | Sends records to the Recycle Bin | Related records may be deleted too |
| Hard Delete | Deletes permanently, skipping the Recycle Bin | No undo; it runs only through the Bulk API and needs the Bulk API Hard Delete permission |
| Export / Export All | Exports records to CSV; Export All includes deleted and archived ones | Large exports take time; filter with SOQL |
How to run Data Loader from the command line
Data Loader has a batch (command-line) mode for scheduled, unattended jobs, configured with process-conf.xml and config.properties files. The GitHub README says batch mode is officially supported only on Windows, gives the equivalent commands for macOS and Linux, and requires an encrypted password, created with the tool's own encryption command. Many teams now script loads with the Salesforce CLI instead, using sf data import bulk.
How to load data safely
Back up first, rehearse in a sandbox, load parents before children, and keep every output file.
- Export before you change. Back up the records you are about to update or delete.
- Rehearse in a sandbox, with the same file, so you see what flows, triggers and validation rules do.
- Load in order: parents before children, for example accounts, then contacts, then opportunities.
- Mind automation: a large load fires every active flow and trigger. Agree with the admin team whether any should be paused.
- Keep the files. The source, success and error files are your record of what changed.
How to download attachments and files
To download attachments and files in bulk, use Salesforce's Data Export service rather than Data Loader. Data Loader can export the attachment and file records themselves, but the Data Export service (Setup, then Data Export) has options to include images, documents and attachments, and Salesforce Files in the export package; including them makes the export take longer. Weekly exports are available in Enterprise, Performance and Unlimited editions. For a few files, downloading them from the record is simplest.
Getting help
For a one-off load, Data Loader is all you need; our guide to Salesforce data migration strategies covers bigger moves, and the Salesforce project management guide shows where data migration fits in an implementation. For a migration from another CRM, or loads that must run every night without errors, the work is in the mapping, the order and the checks. Techila is a Salesforce Summit Partner; see our migration guides, our guide to choosing a sandbox for test loads, and when Workbench is the quicker tool. Talk to us about your data move.
Frequently asked questions
What is Salesforce Data Loader?
Data Loader is Salesforce's client application for bulk data work: inserting, updating, upserting, deleting and exporting records. Trailhead says it can import up to 150 million records at a time, of any data type, through its interface or the command line.
Is Salesforce Data Loader free?
Yes. Data Loader is provided by Salesforce at no extra cost, and its source code is published on GitHub. You need a Salesforce user with API access and the permissions for the objects you load.
When should I use the Data Import Wizard instead of Data Loader?
Use the Data Import Wizard for fewer than 50,000 records into common standard objects or custom objects, when you don't need automation. Use Data Loader for larger loads, objects the wizard doesn't support, or scheduled loads such as nightly imports.
Does Data Loader work on a Mac?
Yes. Salesforce officially supports Data Loader on Windows and macOS. Other operating systems are unsupported, and command-line batch mode is officially supported only on Windows.
Can Data Loader download attachments and files?
Data Loader can export the attachment and file records, but bulk-downloading the files themselves is easier with Salesforce's Data Export service in Setup, which can include attachments and files in the export.
