Skip to content

Systems and records

Salesforce Data Loader export: a step-by-step guide with a manifest

By SourceX Editorial · Updated

Short answer

Salesforce Data Loader is Salesforce's desktop client for bulk import and export. To export, open it, log in, choose Export (live records) or Export All (also soft-deleted and archived activity records), pick an object, select fields or write SOQL, and save a CSV. For a complete, repeatable export, fix settings first (UTF-8, time zone, batch size, Bulk API) and log every run in a manifest with counts and checksums.

Key takeaways

  • Salesforce Data Loader is a desktop client for bulk export to CSV; it needs Java 17 or later and a user with API Enabled and read access.
  • Export returns live records; Export All also returns soft-deleted and archived activity records, which a history inventory usually needs.
  • Set UTF-8 output, time zone, batch size and Bulk API before the first run and keep them fixed for the whole inventory.
  • A complete CRM history includes field history objects, activities and file metadata, each with relationship IDs intact; support objects have their own guide.
  • Log every run in a manifest with the exact SOQL, record count, date range, file name, SHA-256 checksum, settings and operator.
  • Data Loader is not the Data Export Service or dataloader.io; pick it when you need filtered, repeatable, object-level exports.

What is Salesforce Data Loader and when is it the right export tool?#

Salesforce Data Loader is a client application from Salesforce that inserts, updates, upserts, deletes and exports records in bulk through the API, writing exports to CSV files. It is the right tool when you need object-level exports you control field by field, with SOQL filters, Export All for deleted and archived rows, and a run you can repeat exactly.

Salesforce's current guide says Data Loader supports CSV files of up to 150,000,000 records and suggests the web-based import wizards for smaller jobs, such as fewer than 50,000 records. Larger orgs still export big objects in date slices, which also makes each file easier to verify.

Data Loader runs on your machine and needs a Java runtime. Salesforce officially supports it on Windows and macOS; the open-source project documents a Linux route, but Linux is unsupported. Batch (command-line) mode is officially supported only on Windows, which matters if you want scheduled, scripted exports.

Data Loader vs Data Export Service vs dataloader.io: which should you use?#

Use Data Loader for controlled, object-by-object exports with SOQL; use the Data Export Service for a whole-org backup ZIP on a weekly or monthly cadence; use dataloader.io if you want a browser-based tool with no install. They are different products and not interchangeable for a documented dataset inventory.

The Data Export Service (Setup, Data Export) packages CSV files for the whole org on a weekly or monthly schedule; see what the Salesforce weekly export includes and leaves out for its scope and limits.

Dataloader from MuleSoft (dataloader.io) is a separate, browser-based product that needs no installation. Salesforce's own documentation contrasts it with the downloadable Salesforce Data Loader. This guide covers the desktop Data Loader only.

Data Loader vs Data Export Service vs dataloader.io: which should you use?
QuestionData Loader (desktop)Data Export Servicedataloader.io
What it isSalesforce desktop client for bulk import and export, using the SOAP or Bulk APIsSetup feature that packages org data as CSV ZIP filesBrowser-based Dataloader from MuleSoft, separate from Salesforce Data Loader
Scope per runOne object per run, any fields you can readObjects you select, in one packageTask-based; check current product docs
FilteringFull SOQL WHERE clauses and date rangesNot a SOQL toolCheck current product docs
Deleted and archived rowsExport All includes soft-deleted and archived activity recordsDepends on edition and packageCheck current product docs
SchedulingBatch mode with process-conf.xml (officially Windows only)Weekly or monthlyScheduled tasks; check current product docs
Best fitA documented, repeatable dataset inventoryA periodic whole-org snapshotOccasional exports without installing software
  1. 01Your work records
  2. 02Personal details removed
  3. 03You approve the release
  4. 04Licensed to AI developers
How it works with SourceX: Your work records → Personal details removed → You approve the release → Licensed to AI developers.Illustrative

How do you install Data Loader and log in?#

Install a supported Java runtime first, download Data Loader from Salesforce, run the installer, then log in to Production or Sandbox. Salesforce's current installation guide asks for Java Runtime Environment 17 or later (for example Azul Zulu or Eclipse Temurin) and a user with the API Enabled permission.

To export, the user also needs read access to the records. Data Loader exports only what that user can see, so run inventory exports as a user whose profile or permission sets can read every object and field in scope, or you will get silently partial files.

  • Install Java 17 or later and confirm with java -version. Salesforce's guide also has you set JAVA_HOME to the JRE directory.
  • Download the current Data Loader release from Salesforce's developer tools page, extract the ZIP and run install.bat on Windows or installer.command on macOS.
  • Launch Data Loader and choose Production or Sandbox before logging in; the default endpoints are login.salesforce.com and test.salesforce.com.
  • Log in to your org. You stay logged in until you log out or close the program.
  • Open Settings, Settings and set the export options described below before your first run, not halfway through the inventory.

Which Data Loader settings should you fix before exporting?#

Fix encoding, time zone, batch size and API mode once, record them in the manifest, and do not change them between runs. Data Loader stores settings in a properties file whose location appears under Settings, Help, so you can copy that file into the inventory folder as evidence.

The defaults below come from the current Data Loader guide and the open-source Data Loader code that Salesforce publishes on GitHub. Defaults can change between releases, which is exactly why the manifest records the version and the settings file.

Which Data Loader settings should you fix before exporting?
Setting (UI label)Config propertyDefaultInventory recommendation
Write all CSVs with UTF-8 encodingdataAccess.writeUTF8Off (system charset)Turn on so names, emails and notes with accents or non-Latin text survive; a UTF-8 BOM is written by default
Export batch size (Query request size)sfdc.extractionRequestSize500 (min 200, max 2,000)Raise toward 2,000 (the maximum) if exports are slow, and record the value used
Use Bulk API / Use Bulk API 2.0sfdc.useBulkApi / sfdc.useBulkV2ApiOff (SOAP API)Turn on for large objects and record which API the run used
Time Zonesfdc.timezoneYour computer's system time zoneSet explicitly and record it; confirm exported datetimes against one known record

What is the step-by-step Salesforce Data Loader export procedure?#

Run one object at a time: Export or Export All, choose the object, name a new CSV, build or paste the SOQL, review it, and finish. Data Loader then shows a summary with success and error files. The steps below follow the Salesforce Data Loader export guide, with inventory controls added.

  • 1. Click Export for live records, or Export All to also include soft-deleted records still in the Recycle Bin and archived activity records. The same commands are in the File menu.
  • 2. Choose the object. If it is not listed, select Show all objects; history objects such as OpportunityFieldHistory and CaseHistory and file objects such as ContentVersion appear there.
  • 3. Choose the output CSV. Always use a new file name for each run so earlier output is never overwritten or confused. A pattern like opportunity_exportall_2019-01-01_2019-12-31_v1.csv documents itself.
  • 4. Select fields. Include Id and every relationship ID (AccountId, OwnerId, ContactId, WhatId, WhoId, ParentId, RecordTypeId) plus CreatedDate, LastModifiedDate and SystemModstamp. For compound address fields, select the component fields (BillingStreet, BillingCity and so on).
  • 5. Add conditions or edit the generated SOQL directly. With no conditions, Data Loader returns every record you can read. For large objects, slice by date, for example WHERE CreatedDate >= 2019-01-01T00:00:00Z AND CreatedDate < 2020-01-01T00:00:00Z.
  • 6. Copy the final SOQL into the manifest before clicking Finish, then confirm the run.
  • 7. When the summary appears, record the success count and keep any error file. Rename nothing after this point; compute the checksum on the exact file you will ship.

Which objects make a complete CRM history export?#

A complete history needs the core records, the activity records attached to them, the field history tables, and file metadata, each exported with its relationship IDs. Exporting only Accounts and Opportunities gives you a snapshot, not a history.

Field history is the usual gap. Salesforce keeps tracked field history for 18 months in the UI and up to 24 months through the API; use Export All, select Show all Salesforce objects and choose the history object. Field history Salesforce has deleted is not included, and orgs with Field Audit Trail keep archived history in the FieldHistoryArchive big object, which needs its own export. For retention limits, see Salesforce field history retention.

Support objects (Case, CaseComment, EmailMessage, feeds) are covered in exporting Salesforce case history with feeds, emails and comments. Files need two steps: Data Loader exports ContentVersion, ContentDocument and ContentDocumentLink rows, but Salesforce's export guide says it does not support exporting attachments, so plan the file bodies through the Data Export Service or a separate API job and join them back by ContentDocumentId.

Which objects make a complete CRM history export?
ObjectWhy it mattersExport modeMust-keep fields
Account, Contact, LeadThe parties and their identitiesExport AllId, OwnerId, RecordTypeId, ParentId (Account), AccountId (Contact), ConvertedAccountId (Lead), CreatedDate
Opportunity, OpportunityLineItemDeals, amounts, products and outcomesExport AllId, AccountId, StageName, Amount, CloseDate, IsWon, IsClosed, OpportunityId, Product2Id
OpportunityFieldHistory, OpportunityHistoryHow each deal moved over timeExport AllOpportunityId, Field, OldValue, NewValue, CreatedDate, CreatedById; StageName and Amount snapshots in OpportunityHistory
Task, EventCalls, meetings and to-dosExport All (pulls archived activities)WhoId, WhatId, ActivityDate, Status, Subject, OwnerId, CreatedDate
ContentVersion, ContentDocumentLinkFile metadata and what each file is attached toExportContentDocumentId, Title, FileExtension, ContentSize, LinkedEntityId, IsLatest
AccountHistory, ContactHistory, custom __HistoryField changes on other tracked objectsExport AllParentId or object Id, Field, OldValue, NewValue, CreatedDate

What should an export manifest record?#

One row per run, written at the time of the run, with enough detail that someone else could rerun the same SOQL and get the same count. Keep the manifest as a CSV next to the data files, and keep the Data Loader settings file and success logs in the same folder.

The template below uses illustrative values only. Generate checksums with sha256sum on Linux, shasum -a 256 on macOS or certutil -hashfile <file> SHA256 on Windows.

What should an export manifest record?
FieldWhat to writeExample (illustrative)Why it matters
Object and modeAPI object name plus Export or Export AllOpportunity, Export AllShows whether deleted and archived rows were in scope
SOQL usedThe exact final query, copied before FinishSELECT Id, AccountId, StageName, Amount, CloseDate, IsDeleted FROM Opportunity WHERE CreatedDate >= 2019-01-01T00:00:00Z AND CreatedDate < 2020-01-01T00:00:00ZMakes the run reproducible
Record count and date rangeSuccess count from the summary, plus the slice boundaries48,210 rows; 2019-01-01 to 2019-12-31 (UTC)Basis for completeness checks
File name and checksumExact file name and SHA-256 hashopportunity_exportall_2019_v1.csv; sha256 9f2c...e1Proves the delivered file is the one you exported
Run timestamp and time zone settingStart time in UTC and the Data Loader Time Zone value2026-10-13T14:05Z; Time Zone UTCExplains datetime values and lets you match API logs
Tool version and API modeData Loader version, SOAP or Bulk API, batch sizeData Loader 67.0.0; Bulk API 2.0Different modes and versions can behave differently
OperatorWho ran it and which Salesforce userJ. Admin as integration user inventory@Accountability and visibility check
NotesAnything skipped, errors, rerunsRerun v2 after adding RecordTypeIdKeeps corrections visible instead of silent

How do you check that a Data Loader export is complete?#

Compare each file's row count with an independent count from Salesforce, confirm every relationship ID resolves to a row in another file, and confirm history and file objects were exported for the same period. Do this per object before anyone downstream touches the data.

  • Counts match: run SELECT COUNT() FROM <object> WHERE <same filter> or a report with the same filter, and compare with the success count. Reports only count what the report type and the running user can see, so compare like with like.
  • Slices add up: the sum of yearly or monthly slices equals the full-object count, with no overlapping or missing boundary days.
  • Relationship IDs kept: AccountId, ContactId, OwnerId, WhatId, WhoId, ParentId and ContentDocumentId are present in every file that has them, and a sample join finds the parent row.
  • Field history included: every object with tracked fields has its history file for the same date range, and the earliest history date is noted (expect about 18 to 24 months unless you have Field Audit Trail).
  • Deleted and archived rows handled: Export All files keep the IsDeleted column, and the manifest says whether deleted rows will be kept or filtered.
  • Encoding and dates verified: open a file with accented names to confirm UTF-8, and check one record's CreatedDate against the Salesforce UI to confirm time zone handling.
  • Visibility confirmed: the exporting user can read every field you expected; a column that is entirely blank is often a field-level security gap.
  • Checksums recorded: every file in the manifest has a hash, and the hash is recomputed after any copy or transfer.

How can you make the export repeatable?#

Save the exact SOQL per object, keep the settings file, and, if you are on Windows, script the runs in batch mode so the next export uses identical parameters. Batch mode reads a process-conf.xml where each process sets the operation (extract or extract_all), the object, the SOQL in sfdc.extractionSOQL and the output file.

For incremental refreshes, filter on SystemModstamp or LastModifiedDate greater than the previous run's timestamp and use Export All so deletions since the last run are captured. Record each incremental run as its own manifest row instead of overwriting the baseline.

What changes when the export is for licensing or a dataset inventory?#

Being able to export data is an access question; whether you may share or license it also depends on privacy permissions, ownership and contract rights, and de-identification alone does not create a right to license. A well-documented export makes those reviews faster because reviewers can see which objects, fields and periods exist. SourceX runs sourcing, rights review, contracting, data preparation, delivery and payment for businesses licensing operational data to AI developers, starting with a short assessment and no data uploads; the company approves what is released. See the four-permission framework before sharing any export.

Frequently asked questions

What is the difference between Export and Export All in Data Loader?

Export returns the records the user can read that are not deleted. Export All also returns soft-deleted records still in the Recycle Bin and archived activity records, such as older tasks and events. For a history inventory, use Export All and keep the IsDeleted column so you can decide later what to filter.

What do I need to run Data Loader?

A supported Java runtime (Salesforce's installation guide asks for Java 17 or later), the Data Loader download, and a Salesforce user with the API Enabled permission and read access to the records you export. Salesforce also publishes the Data Loader source code on GitHub.

How many records can Data Loader export?

Salesforce's current guide says Data Loader supports CSV files of up to 150,000,000 records. For bigger objects, turn on the Bulk API and split the export into date ranges with SOQL, which also makes each file easier to count and verify.

Can Data Loader export attachments and files?

Data Loader exports file metadata from ContentVersion, ContentDocument and ContentDocumentLink, but Salesforce's export guide says Data Loader does not support exporting attachments. Plan the file bodies through the Data Export Service or a separate API job, then join them back using ContentDocumentId.

Does Data Loader run on Mac or Linux?

Salesforce officially supports Data Loader on Windows and macOS. The open-source project documents a Linux installation, but Linux is not officially supported, and batch mode is officially supported only on Windows.

How far back can I export Salesforce field history with Data Loader?

Tracked field history is retained for up to 24 months through the API, versus 18 months in the UI. For history objects, use Export All and Show all Salesforce objects; field history that Salesforce has deleted is not included. Field Audit Trail customers can export archived history from FieldHistoryArchive.

Sources

  • Data Loader's Export command exports live records, Export All also includes archived activity records and soft-deleted records, exporting needs Read on the records, Show all objects lists every accessible object, with no conditions all readable data is returned, and Data Loader does not support exporting attachments. Source
  • The Data Loader Guide (version 68.0, Winter '27) says settings are saved in a properties file whose path is shown under Settings, Help, and documents the Write all CSVs with UTF-8 encoding option (dataAccess.writeUTF8). Source
  • Installing Data Loader requires Java Runtime Environment 17 or later, setting JAVA_HOME, and a user with the API Enabled permission. Source
  • Data Loader supports CSV files of up to 150,000,000 records; Salesforce suggests the web-based wizards for smaller jobs such as fewer than 50,000 records. Source
  • Salesforce's open-source Data Loader repository states official support for Windows and macOS only, documents a Linux route and Windows-only official batch mode, and its code sets export batch size defaults (500, min 200, max 2,000), the system time zone default, SOAP as the default API, writeUTF8 off, a UTF-8 BOM on export, the login.salesforce.com and test.salesforce.com endpoints, and the extract and extract_all operations and sfdc.extractionSOQL property. Source
  • Salesforce's knowledge article explains exporting field history with Data Loader (up to 24 months): click Export All, select Show all Salesforce objects and choose the history object; field history deleted by Salesforce is not included. Source
  • FieldHistoryArchive is a standard big object that holds archived field history for Field Audit Trail. Source
  • The Data Export Service generates backup files weekly (Enterprise, Performance and Unlimited) or monthly (all editions except Database.com), with manual runs limited to once every 7 or 29 days. Source
  • Dataloader from MuleSoft (dataloader.io) is a browser-based product distinct from the downloadable Salesforce Data Loader. Source

Related resources

See if your company qualifies

A short company assessment. No data uploads are needed.

See if your company qualifies