Yes — submitters can withdraw a record from approval, provided the approval process is configured to allow it. The button is called Recall Approval Request and appears in the Approval History related list while the record is in approval.
How recall works
- Submitter opens the record (it’s locked, in pending approval)
- The Approval History related list shows the current approval step
- There’s a Recall Approval Request button
- Clicking it:
- Removes the record from the approval queue
- Unlocks the record
- Fires any Recall Actions defined in the approval process (field updates, emails, etc.)
- Logs the recall in the Approval History audit trail
The setting that controls this
In Setup → Approval Process → edit the process → Initial Submission Actions has a checkbox:
Allow submitters to recall approval requests
If checked, the submitter sees the Recall button. If not, only admins can recall via API.
Who can recall
- The submitter — always, if the setting allows it
- System administrators — always, regardless of the setting (via Setup or API)
- Current approver — can reject, which is functionally similar but follows the rejection path, not recall
- Apex — via
Approval.ProcessWorkitemRequestwith actionRemoved
Recall vs Reject vs Approve
| Action | Who | Effect |
|---|---|---|
| Approve | Current approver | Move to next step or final approved state |
| Reject | Current approver | Fire rejection actions, unlock |
| Recall | Submitter (or admin) | Remove from queue, fire recall actions, unlock |
Recall is the only one initiated by the submitter — the other two are approver-only.
Why allow recall
- The submitter realises they made a mistake and wants to fix the record before re-submitting
- Business circumstances changed (deal was cancelled, project deprioritised)
- The wrong approval process was triggered
Apex example: programmatic recall
// Find the pending work item for this record
List<ProcessInstanceWorkitem> items = [
SELECT Id
FROM ProcessInstanceWorkitem
WHERE ProcessInstance.TargetObjectId = :recordId
];
if (!items.isEmpty()) {
Approval.ProcessWorkitemRequest req = new Approval.ProcessWorkitemRequest();
req.setComments('Recalled by admin');
req.setAction('Removed');
req.setWorkitemId(items[0].Id);
Approval.process(req);
}
What interviewers want
- A confident “yes” with the qualifier “if configured to allow it”
- The button name: Recall Approval Request
- Bonus: that recall actions can be configured separately from rejection actions
Verified against: Salesforce Help — Recall Approval Requests. Last reviewed 2026-05-17 for Spring ‘26 release.