Bulk API
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 for | Up to ~100k records, interactive feedback | Large volumes, 100k+ records |
| Processing | Client-controlled, synchronous batches | Salesforce-managed, asynchronous |
| Feedback | Per-record status updated in real time | Summary results after job completes |
| Batch size / threads | Configurable | Managed by Salesforce |
| Supported actions | Insert, Update, Upsert, Delete, Hard Delete, Undelete | Insert, Update, Upsert, Delete, Hard Delete |
| Blank value handling | Error, 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
- Click Save Options in the Quick Loader toolbar.
- Set API Type to
Bulk. - Close the dialog and proceed as normal — field mapping, object selection, and action selection all work the same way.
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:
- Convert your mapped records to CSV format and upload them to Salesforce as a Bulk API v2 ingest job.
- Close the job and begin polling Salesforce for the result.
- 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:
| State | Meaning |
|---|---|
Open | Job created, upload in progress |
UploadComplete | CSV uploaded, Salesforce is queuing the job |
InProgress | Salesforce is actively processing records |
JobComplete | All records processed |
Failed | The job itself failed (not individual records) |
Aborted | The 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.
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:
| Setting | Behaviour |
|---|---|
Skip (default) | Empty fields are omitted from the CSV. Existing Salesforce values are left unchanged. |
Save | Empty fields are written as #N/A in the CSV, which tells Salesforce to null out the field. |
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.