Skip to main content

SF-0226 · Scenario · Medium

How to enable the Hard Delete option on Salesforce Data Loader?

✓ Verified by Vikas Singhal · Last reviewed 5/17/2026 · Updated for Spring '26

By default, Data Loader’s main screen shows Insert, Update, Upsert, Delete, Export, and Export All. Hard Delete is hidden until two things are true: the running user has the right permission, and Data Loader is configured to use the Bulk API.

Step 1 — Grant the Bulk API Hard Delete permission

In Salesforce Setup:

  1. Setup → Users → Permission Sets (recommended) or Profiles.
  2. Open the permission set or profile assigned to the user who’ll run the deletes.
  3. Edit System Permissions (in a permission set) or Administrative Permissions (in a profile).
  4. Tick Bulk API Hard Delete.
  5. Save.

Permission sets are the modern way — you can assign the entitlement without touching everyone’s profile, and revoke it easily after the cleanup run.

Step 2 — Turn on Bulk API in Data Loader

Hard delete is Bulk API only. The SOAP-API path doesn’t expose it.

  1. Open Data Loader.
  2. Settings → Settings.
  3. Tick Use Bulk API.
  4. Click OK.

When you re-log in, the main screen now shows a Hard Delete button alongside Delete.

Step 3 — Run a hard delete

The flow is identical to a normal Delete:

  1. Click Hard Delete.
  2. Log in, pick the object, choose the CSV (Id column at minimum).
  3. Map the Id column.
  4. Run. The records are gone from Salesforce — no recycle bin entry.

Why this is gated

Hard delete is irreversible. Salesforce splits the permission out from generic Delete so an org’s admin can’t accidentally hard-delete production data — they need an explicit, named permission, granted by a higher-up admin, plus the conscious step of flipping Use Bulk API.

Troubleshooting

If the Hard Delete button is greyed out or missing after the setup steps:

  • Logged into the wrong sandbox/production? Hard Delete inherits from the user logged in — not the admin who configured Data Loader.
  • Permission set not assigned? Open Setup → Users → [user] → Permission Set Assignments and confirm.
  • Bulk API checkbox didn’t stick? Tick it again under Settings → Settings; it’s per-installation, not per-org.
  • Profile cached? Log out of Data Loader and log back in to pick up the new permission.

Org-wide alternative

For a one-time cleanup, granting the permission, running, and revoking is fine. For ongoing scheduled hard deletes (e.g. nightly purge of synthetic test data), put the permission on a dedicated integration user with limited access scoped to the objects in scope. Don’t run scheduled hard deletes as a real admin’s account.

Verified against: Data Loader Guide — Performing a Hard Delete, Bulk API Developer Guide, Metadata API Developer Guide. Last reviewed 2026-05-17 for Spring ‘26 release.