Skip to main content

Run a CSV import from an uploaded or existing file

Upload or select a CSV file, choose asynchronous execution and monitor the resulting Job.

Run a CSV import from an uploaded or existing file

Start a CSV import from the Payload's Run Payload control using an uploaded file or an existing Salesforce File. The import runs asynchronously and records progress and results on a Job.

Before you start

Configure the CSV schema and consuming Actions. Prepare a small UTF-8 CSV whose headers match that schema, and ensure no one will edit the Payload while it is running.

This walkthrough uses the manual runner: upload a CSV or select an existing Salesforce File. You do not need to configure OAuth for the demonstrated manual workflow. If your org reports a file-access error, investigate that error using Troubleshoot and recover CSV imports.

Select the file and run mode

  1. Open the CSV Import Payload and select Run Payload in its header.

  2. Under Upload CSV file, select Upload Files, choose the CSV and wait for the upload to complete. Select Done to return to the runner. Alternatively, type part of the title in Use existing CSV file and select a search result.

  3. Check the selected file and supply any Dynamic Inputs.

  4. Choose Queueable or Batchable.

  5. Review the source cleanup option, then start the import.

The manual CSV runner offers upload and existing-file selection.

Choose the source file, keep or delete it after completion, and select Queueable or Batchable.

Payloads pins the selected ContentVersion. If the file selection starts from a ContentDocument, Payloads resolves the accessible version at that point. Later uploads do not replace the source being processed by this Job.

CSV Import does not support Immediate mode. Its Batchable mode uses a dedicated CSV worker, independent of the general Payloads Batch Engine. Rows per chunk is configured on the CSV Import Action, not by the general batch size setting.

Search for a CSV already stored in Salesforce Files.

Selecting a search result prepares that File for this run; it does not upload another copy.

Try a small example

For a schema with name and city String fields, save this as a UTF-8 CSV:

name,city
Payloads Demo Dublin,Dublin
Payloads Demo Cork,Cork

A multiple-record Account Target can map Name from CSV Rows · name and Billing City from CSV Rows · city. An Insert Target creates new Accounts each time: use fresh sample names for another run, or configure an appropriate matching identifier and Upsert when that is the required behaviour.

Decide whether to delete the source

Delete source CSV when complete is unchecked by default. Leave it unchecked while testing or whenever the original file is needed by another process.

When selected, successful completion can soft-delete the source ContentDocument, including its versions and links. Completion with ordinary row errors also qualifies. A failed import retains its source. A newer source version uploaded during processing is retained, and cleanup failures are reported on the Job without changing a completed import into a processing failure.

Avoid cleanup when another import or process still depends on that File. Result files are retained separately.

Monitor the Job

Open the created Job and review progress, source-row counts, Target counts and chunk results. Progress measures committed file bytes; 100% does not mean every Salesforce record succeeded.

Ordinary row errors can allow valid rows to commit and processing to continue. Fatal errors stop the import and roll back the current chunk; earlier committed chunks remain.

Keep the Payload's schema, settings and Actions unchanged until the run finishes. Configuration is read again for later chunks.

Check the outcome before starting again

Download and review failed-row outcomes before correcting and re-running data. A second invocation creates new work; it is not a resume or an automatically idempotent retry.

Did this answer your question?