How to Delete or Deactivate a User in Salesforce

You can’t delete a user in Salesforce. The platform doesn’t allow permanent deletion of user records because they’re tied to audit trails, record history, and ownership data throughout your org. Instead, you deactivate the user, which revokes their access and frees up the license for someone else. If you need to block access immediately while you sort out dependencies, you can freeze the account first as a temporary measure.

Why Salesforce Won’t Let You Delete Users

Every action a user takes in Salesforce leaves a trail. They create records, modify fields, own accounts, send emails, and appear in reports. Deleting that user would break those references and create gaps in your data history. Salesforce preserves the user record permanently so that “Created By” and “Last Modified By” fields, ownership history, and audit logs remain intact. The user’s name will still appear on old records even after deactivation, but they’ll have zero access to the system.

Freeze the Account First

If someone has left the company or you need to cut off access right away, freeze the account before doing anything else. Freezing blocks the user from logging in but doesn’t free up their license or change any of their assignments. Think of it as a quick lock on the front door while you handle everything inside.

To freeze a user, go to Setup, search for “Users,” find the person’s name, and click the “Freeze” button on their user detail page. This buys you time to work through the dependencies that need to be resolved before you can fully deactivate.

Transfer Records to a New Owner

Before deactivating, reassign everything the user owns. If you skip this step, those records will sit under an inactive user, which can cause problems with workflows, reports, and visibility.

For bulk transfers of accounts, contacts, leads, opportunities, and cases, go to Setup, then Data, then Mass Transfer Records. You can filter by the departing user and reassign everything to a new owner in batches. For scheduled reports, you’ll need to transfer ownership individually. The same goes for any Chatter groups the user owns.

Run a few reports beforehand to get a full picture of what the user owns. Filter record ownership by their name across your main objects so nothing slips through.

Clear System Dependencies

This is where most people get stuck. Salesforce will throw errors when you try to deactivate a user who’s referenced in system settings or automation, and it only shows you one error at a time. You might fix the first issue, try again, hit another error, fix that, and repeat the cycle several times. Proactively checking these areas saves a lot of frustration.

  • Default Workflow User: If the departing user is set as the Default Workflow User, update this to an active user in Setup under Process Automation Settings.
  • Default Lead Owner: Check your Lead Settings. If no lead assignment rule applies to an incoming lead, it goes to the Default Lead Owner. Make sure that’s still someone active.
  • Default Case Owner and Automated Case User: In Support Settings, verify that the Default Case Owner and Automated Case User are both assigned to active users.
  • Web-to-Lead and Web-to-Case creators: The Default Lead Creator and Default Case Creator appear in the “Created By” field on records submitted through web forms. Update these if they point to the departing user.
  • Lead and Case Assignment Rules: Remove the user from any assignment rules, including old, inactive ones. Salesforce checks all of them.
  • Email Alerts: Remove the user’s specific username from any workflow email alerts. If they’re listed as a recipient, the deactivation will fail until you clear every single one.
  • Flows: Check for any flows that reference the user in email components, exception handlers, or filter criteria.

Work through this list before you attempt deactivation. Since Salesforce surfaces errors one at a time, catching them proactively in a single pass is far more efficient than playing whack-a-mole with the save button.

Deactivate the User

Once records are transferred and dependencies are cleared, go to Setup, click Users, and find the person’s profile. Uncheck the “Active” checkbox and save. That’s it. The user loses all access immediately, and the license is released back into your available pool so you can assign it to a new hire or another team member.

The user record stays in your system permanently. You’ll still see their name on historical records and reports, which is exactly what Salesforce intends. If you ever need to look up who created a record or made a change three years ago, that information is preserved.

After Deactivation Cleanup

A few things to tidy up once the user is inactive. Remove them from any public groups, queues, or teams they belonged to. Reassign any approval processes where they’re listed as an approver, or pending approvals will stall. Check for any scheduled jobs or reports still running under their name. If the user had a delegated admin role or was listed as a manager in the role hierarchy, update those references so reporting and data access roll up correctly for the rest of your team.

If you want to scrub the user’s personal information for privacy reasons, you can overwrite fields like their name and email with generic placeholders. The record can’t be deleted, but you can anonymize the details while keeping the structural references intact.