Skip to main content
New tool CRON Expression Builder — preview next run times before you schedule Apex. Open the builder →
Screenshot guide showing steps to reassign records from Salesforce inactive users via Data Loader
Admin

Assigning Records to Salesforce Inactive Users - Guide

Assigning a record to someone who left the company hits a wall in the UI, and reactivating their license is not the fix. Here is how to work with Salesforce inactive users through the API and Data Loader instead.

The short answer

The Salesforce UI hides deactivated users from lookups and owner pickers, but the API does not. Data Loader, Apex and the Bulk API will accept an inactive User ID once you enable Update Records with Inactive Owners in Setup and grant the matching permission. Reactivating the licence is not the fix.

Working with Salesforce inactive users without losing your mind

Ever tried to assign a record to someone who left the company six months ago? If you manage Salesforce inactive users, you have probably hit that wall where the UI just says "no." It is a common headache during data migrations, or when you are trying to keep historical records accurate. A deactivated user is still fair game for plenty of processes.

I have seen plenty of teams get stuck on this. They reactivate the user, pay for the license for an hour, do the update, and deactivate them again. Trust me, you do not want to do that dance. There is a much better way to handle it if you know which buttons to push in the backend.

A realistic mockup of a Salesforce administrative settings page showing user management toggles and configuration options.

A realistic mockup of a Salesforce administrative settings page showing user management toggles and configuration options.

The gap between the UI and the API for Salesforce inactive users

When you deactivate someone, Salesforce tries to be helpful by hiding them, and it makes sense. You do not want a sales rep accidentally assigning a fresh lead to someone who isn't there to pick up the phone. On a standard page layout, those Salesforce inactive users are basically ghosts. They won't show up in lookup searches, and you cannot pick them from the owner selection tool.

The backend is a different story. The platform still holds onto those User IDs. If you are using the Data Loader, writing Apex, or running a tool like the Bulk API, the system is much more flexible. You can often link records to inactive IDs through these "backdoor" methods, even when the UI blocks you. That is a lifesaver when you are trying to effectively manage large data volumes in Salesforce without messing up your audit trails.

What about lookup fields?

For custom lookup fields, the rules are pretty simple. If you're trying to set a value through the standard "Edit" button on a record, you're out of luck: the search won't find the inactive person. If you're pushing data via an integration or a script, Salesforce will let you populate that field with an inactive User ID. The system validates that the ID exists, not that the user is active.

Updating record ownership for Salesforce inactive users

Ownership is where things get stricter. If you try to change the OwnerId to an inactive user via the API without the right setup, you'll get hit with the INACTIVE_OWNER_OR_USER error. I've seen this trip up even senior devs who forgot to check their permission sets before a big deployment.

To get around it, you need to enable a "hidden" feature. Head over to Setup > User Interface and check the box for Set Audit Fields upon Record Creation and Update Records with Inactive Owners. It's a bit of a mouthful, and it's what keeps your data intact.

Pro Tip: Even after you enable the org-wide setting, you still have to grant the "Update Records with Inactive Owners" permission to your specific user or integration profile. It's a two-step process that most people miss on the first try.

Using automation and flows

So, can you do this with a Flow? Yes, but it's tricky. If the Flow runs in "User Context," it'll follow the UI rules and likely fail. If it runs in "System Context," it has a better shot, but you still need that permission assigned to the person who triggered the Flow. If you're doing heavy lifting, look into how to handle bulk record processing in Flows to make sure your ownership updates don't tank your performance.

Key takeaways for managing Salesforce inactive users

  • The standard UI will almost always hide inactive users from lookups and owner pickers.
  • You can still use Salesforce inactive users in lookups and as owners via the API and Data Loader.
  • You must enable "Update Records with Inactive Owners" in the User Interface settings first.
  • A specific Permission Set is required for any user or integration that needs to assign records to inactive people.
  • Avoid doing this for "live" records; keep it for historical data or archiving purposes.

Why this matters for your data health

The goal is always to have records assigned to people who can actually work them, and business isn't always clean. Sometimes you need to keep an old Opportunity assigned to the person who closed it for commission tracking, even after they've moved on. Handling Salesforce inactive users correctly means you don't have to choose between a clean UI and accurate history.

Just remember to be careful about who you give these permissions to. You don't want your regular users accidentally assigning new cases to someone who hasn't worked at the company since 2019. Keep these tools in your admin toolkit for migrations and special clean-up projects, and you'll be just fine.

Newsletter

One email every Tuesday

New guides, tool updates, and the release-note changes that break things.

No spam. Unsubscribe in one click.

Comments

Loading comments...

Leave a Comment