Mass Delete Records
Mass Delete Records is a Salesforce Setup tool that lets an administrator delete records in bulk from a short list of standard objects through a guided wizard.
Definition
Mass Delete Records is a Salesforce Setup tool that lets an administrator delete records in bulk from a short list of standard objects through a guided wizard. You reach it from Setup by typing "Mass Delete" into Quick Find. The wizard supports Accounts, Leads, Contacts, Activities (Tasks and Events), Cases, Solutions, Products, and Reports. You pick the object, set simple filter criteria, review the matching rows, select the ones to remove, and confirm. Each run deletes up to 250 records at a time.
The tool sits in Setup because deleting many records at once is a sensitive action that needs administrator access. A standard user with Delete permission on the object cannot run it. The 250-record cap is a deliberate guardrail, so one pass through the wizard cannot wipe tens of thousands of rows. For higher volumes, custom objects, or complex filters, Data Loader is the usual path instead.
How Mass Delete Records works in practice
The supported object list
Mass Delete Records works against a fixed set of standard objects: Accounts, Leads, Contacts, Activities (which covers both Tasks and Events), Cases, Solutions, Products, and Reports. Custom objects are not on the list, and most standard objects (Opportunities, Campaigns, Orders, and so on) are not either. The selection reflects the records admins most often need to clear in bulk, like stale leads after an import or test activities left over from a sandbox refresh. If your target object is not one of these, the wizard simply will not offer it. Reports are an interesting inclusion: the tool can delete unused or duplicate report definitions, which is handy when a Reports folder has filled up with one-off exports. For anything off the list, you extract record Ids with a report or Data Loader, then delete by Id. Knowing the supported set up front saves time, because admins sometimes assume the tool is general purpose and only discover the limit once they are already in Setup looking for a custom object that is not there.
The 250-record-per-run cap
Each Mass Delete run removes at most 250 records. That number is a safety mechanism, not a performance limit. Even an administrator clicking through the wizard cannot accidentally erase huge volumes in a single action. If your filter matches more than 250 rows, the wizard shows the first batch, you delete those, and you repeat. For a few hundred records that approach is fine. For thousands, repeating the wizard is slow and error prone, so Data Loader or batch Apex becomes the better tool. The cap also keeps recovery practical. If a filter is wrong, you have deleted at most 250 records, and pulling those back from the Recycle Bin is quick. Compare that to a scripted delete that runs against fifty thousand rows before anyone notices the mistake. The small batch size is one reason Mass Delete Records is considered a low-risk option for targeted cleanup, even though it is clearly not built for large-scale data purges.
Filtering and previewing before you delete
Before deletion, the wizard lets you narrow the candidates with basic field criteria, such as a field equals, contains, starts with, or less than a value. You can stack a few conditions, but the filter engine is simple. It does not support subqueries, cross-object logic, or formula-based selection. If you need records that match a complex rule, build a report or a SOQL query elsewhere, export the Ids, and delete with Data Loader. After you apply the filter, the wizard lists the matching records so you can inspect them. This preview is the most important safety step in the whole flow. Check that the count looks right and that the sample rows are genuinely the ones you mean to remove. An off-by-one filter, like "Lead Status equals Open" when you meant "Closed", can surface the wrong population entirely. You also tick checkboxes on the individual rows you want gone, so you are never forced to delete the whole matched set. Treat the preview as a final review, not a formality.
Child records and deletion blockers
Deleting a parent record can take related records with it, and some relationships block deletion entirely. When you mass delete Accounts, child records in master-detail relationships are deleted along with the parent, and certain standard children are removed too. Account-level Opportunities, though, are not handled by this tool, so an Account tied to Opportunities owned by other users may not delete cleanly until those are cleared first. Salesforce also refuses to delete an Account that is a partner account, has an active customer or partner portal relationship, or is linked to records you would orphan. Cases bring their own rules: an Account or Contact attached to a Case cannot always be deleted while that Case exists. The practical takeaway is to delete from the bottom of the hierarchy upward. Clear child records first with Data Loader or another pass of the wizard, then delete the parents. If a delete fails, the wizard usually tells you why, and the reason is almost always an unexpected dependency rather than a permission gap.
The Recycle Bin and recovery
Records removed through Mass Delete go to the Recycle Bin by default, the same as any soft delete. They stay there for 15 days, and during that window any user with access can restore them from the standard Recycle Bin view. After 15 days, Salesforce schedules them for permanent removal, although it does not promise an exact purge time. Records sitting in the Recycle Bin do not count against your org storage, and there is no hard limit on how many it can hold. The wizard also offers a checkbox to permanently delete the selected records and skip the Recycle Bin altogether. That option is faster and frees storage immediately, but it removes the 15-day safety net, so use it only when you are certain the records are disposable. For any high-stakes cleanup, leave the permanent-delete box unchecked and plan a short verification window. Spot-check a related report a day or two later to confirm nothing important disappeared while you can still recover it with a couple of clicks.
Triggers, validation, and automation on delete
Mass Delete Records is real DML, so it fires the same automation a normal delete would. Apex triggers with before delete or after delete logic run for every record the wizard removes. Delete-time validation rules, where configured, can block the operation. Flows built to react to record deletion will also run. None of this is bypassed just because the action started in Setup. That matters for two reasons. First, heavy automation on the target object can hit governor limits when many records are processed, so a clean-looking delete might partially fail. Second, triggers may cascade work, such as updating roll-up totals or writing audit rows, that you did not anticipate from a bulk cleanup. Before a large pass, it is worth checking what automation lives on the object and, in a sandbox, confirming the delete behaves. If the org uses a hard-delete pattern through batch Apex for compliance, coordinate so the wizard does not interfere with scheduled purges. Treating the delete as a normal DML event, rather than a quiet admin shortcut, keeps surprises to a minimum.
When Data Loader is the better choice
Mass Delete Records is great for quick, targeted cleanup, but it runs out of room fast. Reach for Data Loader when you need to delete more than a few hundred records, when the object is custom or otherwise unsupported, or when selecting the right rows needs a real query. The pattern is two steps. First, extract the records that match your criteria, using a SOQL query in Data Loader to pull exactly the Ids you want. Second, run the Delete operation against that Id file. Because you control the query, you can target populations the wizard cannot express. Data Loader also exposes a Hard Delete operation that bypasses the Recycle Bin entirely, the bulk equivalent of the wizard permanent-delete checkbox, and it should be used with the same caution. For repeatable or scheduled cleanup, batch Apex is another option that can process large volumes on a timer. Pick the tool by volume and complexity: the wizard for small, ad hoc jobs, Data Loader for everything larger or more precise, and batch Apex when the job needs to run on its own schedule.
How to run Mass Delete Records
Run Mass Delete Records from Setup to clear a small batch of records on a supported standard object. Build the filter carefully, review the preview, and leave the permanent-delete option off unless you are certain.
- Open the tool
In Setup, type "Mass Delete" into Quick Find and click Mass Delete Records. You need administrator access; a standard user cannot open this page even with Delete permission on the object.
- Pick the object
Choose one of the supported types: Accounts, Leads, Contacts, Activities, Cases, Solutions, Products, or Reports. Read the on-screen notes for that object, since each has its own deletion caveats.
- Set the filter and search
Enter simple field criteria to narrow the candidates, then run the search. Keep the filter tight so the matched set stays well under 250 records and is easy to verify.
- Review and select
Inspect the returned rows, confirm the count and sample records are correct, and tick the checkboxes only on the records you actually want to remove.
- Confirm the delete
Decide whether to permanently delete and skip the Recycle Bin. For most cleanup, leave that box unchecked, then confirm. Verify a related report afterward while recovery is still possible.
The standard object you are deleting from. Only Accounts, Leads, Contacts, Activities, Cases, Solutions, Products, and Reports are available.
One or more simple field conditions (equals, contains, starts with) that select the deletion candidates. No subqueries or cross-object logic.
An optional checkbox that skips the Recycle Bin and removes records immediately. Frees storage at once but removes the 15-day recovery window.
- The wizard deletes at most 250 records per run, so large jobs mean many passes or a switch to Data Loader.
- Custom objects and most standard objects (like Opportunities) are not supported; use Data Loader or batch Apex for those.
- Triggers, validation rules, and flows still fire on delete, which can hit governor limits or block the operation.
- An Account tied to active Cases, partner relationships, or other users Opportunities may refuse to delete until those are cleared.
Prefer this walkthrough as its own page? How to Mass Delete Records in Salesforce, step by step
Trust & references
Cross-checked against the following references.
- Delete Multiple Records and ReportsSalesforce
- Notes on Using Mass DeleteSalesforce
Straight from the source - Salesforce's reference material on Mass Delete Records.
- View and Purge the Recycle BinSalesforce
- Guidelines for Deleting AccountsSalesforce
Hands-on resources to go deeper on Mass Delete Records.
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. What is the per-run record cap on the Setup Mass Delete Records tool?
Q2. After a Mass Delete Records operation, what happens to the deleted records?
Q3. For deletions exceeding the Mass Delete Records cap or on unsupported objects, what is the standard alternative?
Discussion
Loading discussion…