Salesforce: Inactive User — Assigning Inactive Users to Owners and Lookup Fields

Can inactive Salesforce users be used as record owners or placed into lookup fields? Short answer: not from the standard UI, but it’s possible via backend processes if the right permissions are enabled.

Overview

When a user in Salesforce is deactivated (set to Inactive), Salesforce limits how that user appears in the standard user interface. This behavior helps prevent confusion and accidental assignment to users who can no longer act on records. However, there are differences between what the UI allows and what backend processes (APIs, data loaders, Apex, workflows) can do.

Lookup Fields

From the page layout (UI):

  • Inactive users are typically filtered out of lookup searches and cannot be selected from the standard record edit pages.

From the backend:

  • Backend tools (Data Loader, Bulk API, REST API), Apex code, and automation can set lookup fields to reference inactive users because the platform stores user IDs regardless of the active flag.

Record Ownership

Salesforce protects record ownership changes to inactive users by default, but you can allow it via a specific permission.

Enable the permission

  • Go to Setup > User Interface and enable Set Audit Fields upon Record Creation and Update Records with Inactive Owners if available in your org settings.
  • Create a permission set, or update a profile, to include the Update Records with Inactive Owners permission. Assign it to the integration or admin user performing updates.

Behavior

  • Page Layout (UI): Even after granting the permission, the standard UI lookup and owner picklist usually still hide inactive users, so you typically cannot reassign ownership to an inactive user using the record edit page.
  • Backend: With the permission enabled, APIs, Data Loader, Apex, and automation can assign an inactive user as the OwnerId or populate user-type lookup fields with inactive users.

Common error

If you attempt to set an inactive user as an owner without the permission, Salesforce returns an error like INACTIVE_OWNER_OR_USER. This indicates the permission to update records with inactive owners isn’t enabled for the user or integration doing the update.

Best practices

  • Avoid routinely assigning ownership to inactive users; prefer reassigning to active users or a generic queue/account team to keep records actionable.
  • If you must assign to an inactive user (for historical or legal reasons), perform changes through controlled backend processes and ensure the integration user has the correct permission set.
  • Document and restrict which integrations or admins can write OwnerId or user lookups to prevent accidental use of inactive users.
  • When deactivating users, run a cleanup script or bulk update to transfer current owned records to an active owner or queue to maintain SLAs and visibility.

When this applies

This applies across Salesforce editions and objects that reference the User object (OwnerId, CreatedById, LastModifiedById, custom user lookups). It’s especially relevant for data migrations, integrations, and mass updates performed with Data Loader, the Bulk API, or automation tools.

Conclusion — Why this matters

Understanding the difference between UI behavior and backend capabilities prevents surprises during data migrations and automation. For Salesforce admins and developers, the key is to use the right combination of permissions and controlled backend processes to preserve historical data while ensuring records remain assigned to active, actionable users for daily operations.