An Approval Process in Salesforce is an automated, configurable workflow that routes a record to one or more people for sign-off before it can move forward. Think of any decision that needs a human "yes" — a sales rep requesting a discount above 20%, an employee booking time off, a purchase order over a budget threshold, or a new vendor that finance must clear. Instead of chasing people over email and spreadsheets, the record is submitted, locked, routed to the right approver(s), and stamped with a full audit trail of who approved what and when.
This guide covers everything an admin or decision-maker needs in 2026: what an approval process is, how to build one, how email and mobile approvals work, and how the platform's shift to Flow changes the way you launch them.
Use an approval process when you need:
- A human decision (not just automation) before a record changes state.
- A documented audit trail of approvals and comments for compliance.
- Multi-level sign-off (for example, manager, then finance, then VP).
- Record locking so data can't be edited while it is under review.
Approval Processes and the move to Flow
A short but important 2026 note. Salesforce has been retiring Workflow Rules and Process Builder in favour of Flow — you can no longer create new ones, and existing automations should be migrated using the Migrate to Flow tool.
Approval Processes themselves are not going away. They remain a first-class, fully supported feature you configure under Setup → Process Automation → Approval Processes. What has changed is how the surrounding automation is wired:
- The initial submission, approval, rejection, and recall actions historically relied on Workflow field updates and email alerts. New work should use Flow for those side-effects.
- You can launch or auto-submit an approval from a record-triggered Flow using the Submit for Approval action — for example, automatically submit an opportunity the moment its discount exceeds a threshold.
If you're modernising older automation, our guides to Process Builder in Salesforce and field updates and workflow are useful background on what's being replaced.
Anatomy of an approval process
Before building, it helps to know the moving parts:
| Component | What it does |
|---|---|
| Entry criteria | The filter or formula deciding which records can be submitted (e.g. Discount % > 20). |
| Initial submission actions | Run the moment a record is submitted (commonly lock the record, set a "Pending" status). |
| Approval steps | One or more ordered steps, each with its own criteria and assigned approver(s). |
| Approvers | Who decides at each step — the submitter's manager, a specific user, a related user field, or a queue. |
| Final approval actions | Run when the last step is approved (e.g. set status to "Approved", unlock, notify). |
| Final rejection actions | Run when any step rejects the record. |
| Recall actions | Run when a pending request is withdrawn. |
Limits to keep in mind: up to 30 steps per process and 25 approvers per step; an org can have up to 1,000 approval processes total and 300 per object.
Creating an approval process step by step
Go to Setup, type Approval Processes in Quick Find, pick the object (Opportunity, Time Off, Expense, a custom object, and so on), then choose a wizard:
- Jump Start Wizard — a fast, single-page setup for simple, one-step approvals. It creates the process and a single step with sensible defaults. Great for "manager approves time off".
- Standard Setup Wizard — the full builder for multi-step, parallel, or conditional approvals with custom actions. Use this for anything real.
Walking through the Standard Setup Wizard
- Name and identify the process (name, unique name, optional description).
- Entry criteria — set the filter or formula that gates submission, e.g.
Discount Percent greater than 20. Records that don't meet it can't be submitted. - Approver field and record editability — pick the field used for automated routing (often the Manager field) and decide whether the record is read-only while locked.
- Approval request email template — choose the template approvers receive (more on email below).
- Submitter fields and page layout — define what approvers see on the approval page.
- Initial submitters — who is allowed to submit (record owner, specific users, roles).
- Save, then add steps, add actions, and finally Activate the process.
Approvers, steps, and parallel routing
Each step defines who approves and when it applies:
- Automatically assign to approver(s) — route to the submitter's manager (using the Manager field), a specific user, or a related user on the record.
- Automatically assign to a queue — route to a queue so any member can act. Prefer queues over named individuals so approvals don't stall when someone is on leave.
- Let the submitter choose the approver manually (useful for ad-hoc routing).
For multi-step approvals, add steps in order — for example Step 1 manager, Step 2 finance queue, Step 3 VP — each with its own step criteria so a step is skipped when it isn't relevant (e.g. only escalate to the VP when amount > $50,000).
For parallel approval, a single step can require multiple approvers at once. Choose whether the step needs unanimous approval (everyone must approve) or first response (the first decision wins).
Submission, approval, rejection, and recall actions
Actions are the side-effects that fire at each stage. Classic processes used field updates and email alerts; for new builds, prefer Flow for anything beyond the basics.
- Initial submission actions — typically lock the record and set a status field to
Pending. (Record locking is a built-in option, not a separate action.) - Final approval actions — set status to
Approved, unlock if needed, send notifications, and trigger any downstream Flow. - Final rejection actions — set status to
Rejectedand unlock so the submitter can revise and resubmit. - Recall actions — run when a submitter withdraws a pending request (e.g. reset status to
Draft).
Pair this with field history tracking on the status field so every transition is auditable. For time-sensitive sign-offs, combine approvals with escalation rules to chase overdue approvers.
Email approvals: approve or reject straight from your inbox
This post's slug is "approval process through email" for a reason — Email Approval Response lets approvers reply to the approval request email with a keyword and have Salesforce record their decision, no login required. Perfect for executives who live in their inbox or on mobile.
Enable it once: Setup → Process Automation Settings → tick Enable Email Approval Response.
How approvers use it: in the first line of the email body, they type one of the recognised keywords:
- To approve:
APPROVE,APPROVED, orYES - To reject:
REJECT,REJECTED, orNO
Optional comments can go on the second line. Keywords are not case-sensitive, and surrounding quotes or spaces are tolerated. The reply must come from the email address tied to the approver's Salesforce user.
The approval request email template controls what the approver sees. Use a clear template that states what is being approved, the key values (amount, discount, requester), a link to the record, and a reminder that they can simply reply APPROVE or REJECT. You can build these as Lightning or Classic email templates and select them on the process or per step.
Launching approvals from Flow, Slack, and mobile
From Flow (the modern pattern): in a record-triggered or screen Flow, drop the Submit for Approval action to start an approval automatically. A classic example: when an opportunity is saved with a discount over the limit, a record-triggered Flow submits it without the rep clicking anything. This is the recommended replacement for the old "submit on create/edit" Workflow patterns.
Approvals in Slack: with the Salesforce for Slack integration, approvers receive the request as a Slack message and can Approve or Reject inline — handy for teams that run on Slack.
Salesforce mobile app: approvers get push notifications and can act on requests on the go, and the email-approval keywords work from any mobile mail client too.
Submitting for approval from Apex (optional)
If you need to submit a record programmatically — for instance from a trigger or an invocable Apex action called by Flow — use Approval.process():
// Submit a single Opportunity for approval
Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
req.setObjectId(opp.Id);
req.setComments('Auto-submitted: discount exceeds 20%.');
req.setSubmitterId(UserInfo.getUserId());
// Optional: target a specific approval process by its developer name
// req.setProcessDefinitionNameOrId('Discount_Approval');
Approval.ProcessResult result = Approval.process(req);
System.debug('Submitted? ' + result.isSuccess() + ' | Status: ' + result.getInstanceStatus());Submitting in bulk? Batch your records and stay mindful of Salesforce governor limits — Approval.process() consumes DML-style resources, so avoid calling it row-by-row inside large loops.
Best practices
- Keep steps minimal. Every extra step adds delay. Only require sign-off that genuinely changes a decision.
- Route to queues, not individuals. Queues survive holidays, role changes, and turnover; named approvers create single points of failure.
- Lock records on submit so data can't change mid-review, and unlock on final approval or rejection.
- Track field history on the status field for a clean audit trail.
- Use step criteria to skip steps rather than building a separate process for every variation.
- Move side-effects to Flow and consider auto-submitting via a record-triggered Flow.
- Build and test in a sandbox first, including the email-approval reply path, before activating in production.
Approval processes are simple to start and easy to over-engineer. If you're untangling legacy Workflow or Process Builder automation, or designing approvals across many objects, our Salesforce consulting team can help you migrate to Flow and keep approvals clean.
Frequently Asked Questions
Are Salesforce Approval Processes being retired like Workflow Rules?
No. Workflow Rules and Process Builder are being retired in favour of Flow, but Approval Processes remain fully supported and are still configured under Setup → Process Automation → Approval Processes. What is changing is that submission and post-approval actions are increasingly handled with Flow.
Can approvers approve from email or their phone?
Yes. Enable Email Approval Response in Process Automation Settings, and approvers can reply to the request email with APPROVE, APPROVED, or YES (or REJECT, REJECTED, NO) on the first line. The Salesforce mobile app and Approvals in Slack also let them act on the go.
Jump Start or Standard Setup Wizard — which should I use?
Use the Jump Start Wizard for a quick single-step approval with defaults. Use the Standard Setup Wizard for anything with multiple steps, parallel approvers, conditional step criteria, or custom actions — which covers most real-world use cases.
How do I auto-submit a record for approval without the user clicking?
Use a record-triggered Flow with the Submit for Approval action, or call Approval.process() from Apex. For example, submit an opportunity automatically when its discount crosses a threshold.
Who can be an approver?
A step can route to the submitter's manager (via the Manager field), a specific user, a related user on the record, or a queue. Queues are recommended so approvals don't stall when an individual is unavailable. A single step can also require multiple parallel approvers (unanimous or first-response).
What are the limits on approval processes?
Each process allows up to 30 steps and 25 approvers per step. An org can have up to 300 approval processes per object and 1,000 in total. These are Salesforce platform limits and may change — verify on the vendor's site.