Skip to main content

SF-0123 · Scenario · Medium

Can the users edit the records while it is pending approval?

✓ Verified by Vikas Singhal · Last reviewed 5/17/2026 · Updated for Spring '26

By default, no — when a record enters an approval process, Salesforce locks it. Normal users cannot edit a locked record. But the rules around who can edit it are nuanced, and that’s what interviewers really want to test.

Who can edit a record while it’s in approval

User typeCan edit?
Record owner / regular userNo — locked
Current approverYes — they need to be able to edit to make notes or fix small issues
System AdministratorYes (always, via Modify All Data)
User with “Modify All Data” permissionYes
User with “Modify All” on the specific objectYes
Higher-up in the role hierarchy (sometimes)Yes, with the right setting

The setting that controls approver edits

In the approval process settings → Initial Submission Actions → checkbox:

Record Editability Properties

Two options:

OptionEffect
Administrators ONLY can edit records during the approval processApprovers cannot edit; only admins (Modify All Data)
Administrators OR the currently assigned approver can edit records during the approval processApprovers can edit while the record sits in their queue

The second option is the more common production choice.

How the lock works

The lock is a metadata-level lock — not a record-level sharing rule. It overrides whatever sharing the user has. Even the record owner cannot edit during approval if they’re not the current approver and don’t have Modify All.

Programmatic implications

  • An Apex trigger running in user context will throw INSUFFICIENT_ACCESS_OR_READONLY when trying to update a locked record (unless the user has Modify All)
  • A trigger running as the integration user with Modify All can still update — useful for system-driven processes
  • The Approval.lock() and Approval.unlock() Apex methods can lock/unlock records programmatically outside an approval process — used by complex orchestrations

How to detect a locked record

Boolean isLocked = Approval.isLocked(recordId);

Or in SOQL, check IsLocked on the record (available on most objects).

What interviewers want

  • The default “no — record is locked”
  • The two settings: admin-only vs admin + approver
  • That System Administrators / Modify All Data always bypass the lock

Verified against: Salesforce Help — Record Locking. Last reviewed 2026-05-17 for Spring ‘26 release.