How to Schedule a Recurring Salesforce Data Export
Three ways to get a Salesforce data export on a schedule - the native Weekly Export, a scheduled Bulk API job, and the difference between a backup and a working dataset.
Updated 2026-09-09
A one-off export answers today's question. A scheduled export answers it every week without anyone remembering to ask. The two options below solve different problems and are easy to reach for interchangeably by mistake.
Option 1 - Weekly Export (Setup)
- Setup → Data → Data Export. Available weekly or monthly depending on edition.
- Produces a full-org backup as zipped CSVs, one file per object.
- The file is available for download for 48 hours after generation - it is not stored indefinitely.
- Best for: compliance backups and disaster recovery, not for feeding an analysis workflow.
Option 2 - a scheduled Bulk API job
For a specific, filtered dataset on a schedule - not a full backup - a scripted Bulk API job triggered by a scheduler (cron, a CI pipeline, an integration platform) gives you exactly the object, fields, and filter you want, on the cadence you want.
# Cron entry running a Bulk API export nightly at 2am
0 2 * * * sf data query --query "SELECT Id, Name FROM Account WHERE LastModifiedDate = YESTERDAY" \
--target-org prod --result-format csv > /exports/accounts-$(date +\%F).csvBackup vs working dataset - pick the right one
- A backup needs completeness and a retention policy - Weekly Export or a third-party backup tool.
- A working dataset (a dashboard feed, a nightly sync to another system) needs a specific filter and a predictable schema - a scripted export, not a full-org dump.
- Conflating the two produces either a bloated pipeline reading a full-org export for one filtered use, or a compliance backup that is actually just yesterday's filtered file.
Before you automate anything
- Confirm who receives a failure notification - a silently failing scheduled export is worse than no export, because nobody notices until the gap matters.
- Store the file somewhere access-controlled; an export leaves Salesforce's security model the moment it lands as a CSV.
- Version or date-stamp the output so a bad run does not silently overwrite the last good one.
Frequently asked questions
- How long is the Weekly Export file available?
- 48 hours after Salesforce generates it. Download and store it elsewhere if you need longer retention - Salesforce does not keep a history of past exports.
- Can Weekly Export be filtered to specific records?
- No - it exports the full object, with an option to exclude attachments and some large fields. For a filtered, recurring export, use a scheduled query instead.
- Does a scheduled export count against API limits?
- Yes, if it runs via the API - Bulk API calls consume the org's daily API request allocation, though far less per record than the REST or SOAP APIs for the same volume.
More from the Admin How-To
- How to Export Salesforce Data to ExcelFour ways to export Salesforce data to Excel or CSV - reports, Data Loader, the Bulk API, and in-browser SOQL export - and when each one is the right choice.
- How to Export Salesforce Reports and List ViewsExport a Salesforce report or list view to CSV or Excel, including the size limits each format hits and when to switch to a SOQL export instead.
- How to Mass Update Salesforce Records SafelyA safe procedure for mass updating Salesforce records: scope with SOQL, snapshot before, batch the import, and verify after - with the automation traps to check first.
- Change Sets vs Metadata API Deployments: Which to UseChange sets and Metadata API / CLI deployments solve the same problem differently. Here is when each one is the right choice, and what a change set genuinely cannot do.
- How to Check Field-Level Security in Salesforce FastCheck field-level security in Salesforce without clicking through Setup: where FLS lives, how it interacts with profiles and permission sets, and faster ways to read it.
- How to Check Salesforce Org LimitsCheck Salesforce org limits - API calls, data storage, file storage, and daily email - from Setup, the limits API, and the browser, before you hit them.