---
schema_version: "1"
id: a9c8be1912ad13b119e703b32e0d385fcb891b475481d43c92405e5505206340
title: Approval Processing
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/apex_process.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_process.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2cb84912c2ad270d486a6577dde83175bf741ca4a41f9cbe9f01f09da0f4a6a4
description: An approval process automates how records are approved in Salesforce. An approval process specifies each step of approval, including from whom to request approval and what to do at each point of the process.
---
# Approval Processing

An approval process automates how records are approved in Salesforce. An approval process specifies each step of approval, including from whom to request approval and what to do at each point of the process.

- Use the Apex process classes to create approval requests and process the results of those requests:
    - [ProcessRequest Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_ProcessRequest.htm)
    - [ProcessResult Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_ProcessResult.htm)
    - [ProcessSubmitRequest Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_ProcessSubmitRequest.htm)
    - [ProcessWorkItemRequest Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_ProcessWorkitemRequest.htm)
- Use the Approval.process method to submit an approval request and approve or reject existing approval requests. For more information, see [Approval Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_methods_system_approval.htm).

![Note](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/images/icon_note.png)

#### Note

The process method counts against the DML limits for your organization. See [Execution Governors and Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm "Because Apex runs in a multitenant environment, the Apex runtime engine strictly enforces limits so that runaway Apex code or processes don’t monopolize shared resources. If some Apex code exceeds a limit, the associated governor issues a runtime exception that can’t be handled.").

For more information about approval processes, see “Set Up an Approval Process” in the Salesforce online help.

- **[Apex Approval Processing Example](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_process_example.htm)**