Skip to main content

Bulk API

Professional

By default, Quick Loader uses Salesforce's standard Batch API to import records. For very large data sets, you can switch to Bulk API v2, which offloads processing to Salesforce's asynchronous bulk infrastructure. Instead of sending records in small batches from your machine, Brobench uploads a single CSV file to Salesforce and Salesforce handles everything else server-side.

When to Use Bulk API

Batch API (Default)Bulk API v2
Best forUp to ~100k records, interactive feedbackLarge volumes, 100k+ records
ProcessingClient-controlled, synchronous batchesSalesforce-managed, asynchronous
FeedbackPer-record status updated in real timeSummary results after job completes
Batch size / threadsConfigurableManaged by Salesforce
Supported actionsInsert, Update, Upsert, Delete, Hard Delete, UndeleteInsert, Update, Upsert, Delete, Hard Delete
Blank value handlingError, Skip, or Save (null)Skip or Save (null)

Use Bulk API when:

  • You are loading hundreds of thousands of records and want Salesforce to manage throughput.
  • You are hitting API limits with the standard Batch API.
  • You do not need real-time per-record status during the run.

Enabling Bulk API

  1. Click Save Options in the Quick Loader toolbar.
  2. Set API Type to Bulk.
  3. Close the dialog and proceed as normal — field mapping, object selection, and action selection all work the same way.
info

Bulk API does not support the Undelete action. If you select Undelete with Bulk API enabled, Quick Loader will show an error before the job starts.

Running an Import

Once Bulk API is enabled, click Run Import as usual. Brobench will:

  1. Convert your mapped records to CSV format and upload them to Salesforce as a Bulk API v2 ingest job.
  2. Close the job and begin polling Salesforce for the result.
  3. Show a live progress overlay with the current job state, records processed so far, and a link to open the job directly in Salesforce Setup.

Job States

During polling you may see these states in the progress overlay:

StateMeaning
OpenJob created, upload in progress
UploadCompleteCSV uploaded, Salesforce is queuing the job
InProgressSalesforce is actively processing records
JobCompleteAll records processed
FailedThe job itself failed (not individual records)
AbortedThe job was cancelled

Brobench polls with exponential back-off — starting at 1 second and increasing up to 30 seconds between checks — so it does not hammer the API while you wait.

Cancelling a Job

Click the Cancel button in the progress overlay to abort the job. Brobench sends an abort request to Salesforce, waits for the job to reach a terminal state, and then shows partial results for any records that were already processed.

Results Dialog

When the job finishes, Brobench shows the Bulk API Results dialog with:

  • A summary message indicating success, partial failure, or error.
  • The Bulk Job ID with a link to open the job in Salesforce Setup for detailed inspection.
  • A stats row showing: Processed, Success, Errors, and Unprocessed counts.

From this dialog you can:

  • Download Success CSV — export all records that were processed successfully.
  • Download Error CSV — export all records that failed, with Salesforce error messages.
  • Load Error Records as Input — reload the failed records back into Quick Loader's input grid so you can correct them and retry.
info

If the job's state is Failed, this means Salesforce rejected the entire job rather than individual records (for example, an invalid object or missing permission). Open the job in Salesforce Setup via the link in the dialog to see the full error details.

Blank Values

The Blank Values Save Option controls how empty fields are handled in the uploaded CSV:

SettingBehaviour
Skip (default)Empty fields are omitted from the CSV. Existing Salesforce values are left unchanged.
SaveEmpty fields are written as #N/A in the CSV, which tells Salesforce to null out the field.
caution

Setting Blank Values to Save will overwrite existing data in Salesforce with null. Use this intentionally.

Limitations

  • No Undelete — Bulk API v2 does not support Undelete operations.
  • No batch size or threading controls — Salesforce manages all parallelism internally.
  • No write delays — timing is controlled entirely by Salesforce.
  • Upsert requires an External ID field — you must select an Upsert Field when using Upsert with Bulk API.
  • Individual record status is not tracked in the grid — the status filter bar is hidden during Bulk API runs. Results are available only via the Results dialog after the job completes.