
How to Delete Accounts and Their Dependencies in Salesforce
In Salesforce, deleting accounts often requires cleaning up their dependent records first — otherwise you'll run into relationship constraint errors. This three-step guide walks you through the process cleanly and safely.
Step 1: Flag the Accounts for Deletion
Before deleting an account, you need to identify it and prepare it for removal.
- Pull the list of accounts to delete — Use a Salesforce report or a SOQL query to identify the target accounts.
- Create a flag field on the Account object — Add a boolean field called toDelete__c on the Account object with a default value of false.
- Update accounts via data import — Use Data Loader, the Data Import Wizard, or Workbench to set toDelete__c to true for all accounts in your target list.
Step 2: Identify Dependent Objects
Once the accounts are flagged, map out all related objects that need to be cleaned up first.
- Go to Setup > Object Manager > Account > Page Layouts
- In the Related Lists tab, find all objects with a relationship to Account.
- List every dependent object — you will need to query and delete their records before you can remove the accounts themselves.
Step 3: Delete Dependent Records, Then the Accounts
Now delete all dependent records before removing the accounts themselves.
- Run a query to identify related records
- Handle large data volumes in batches
- Delete the dependent records
- Delete the flagged accounts
SELECT Id, (SELECT Id FROM Orders1__r) FROM Account WHERE toDelete__c = true
SELECT Id, account__r.toDelete__c FROM Order WHERE account__r.toDelete__c = true
DELETE [SELECT Id FROM Account WHERE toDelete__c = true];
Conclusion
This three-step process ensures safe, clean account deletion in Salesforce — avoiding dependency errors at every stage. Using reverse queries and bulk data tools makes it possible to handle large volumes efficiently, even at enterprise scale.
Real-World Example
A B2B industrial distributor wants to purge accounts that have been inactive for more than 3 years. The team creates a toDelete__c field, runs a SOQL query to identify 1,200 target accounts, uses a Batch Apex class to delete 8,000 linked opportunities and contacts first, then removes the accounts in bulk via Data Loader. A process that would have taken weeks manually is completed in a single day — with zero foreign key constraint errors.
Pour aller plus loin
💡 Pro tip: For recurring cleanup, automate this process with Salesforce Flows, Apex triggers, or a Batch Apex class.
Contactez-nous
Notre équipe est disponible du lundi au vendredi de 9h à 18h pour répondre à vos questions.