---
schema_version: "1"
id: 38b56f166bf1c8ea2690ba0b73fc521dbc9d39d759fb2eba445f7f1175b35ddf
title: Flow Approval Processes
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/automate_automated_approvals_concept_approval_orchestrations.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_concept_approval_orchestrations.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: f6b6df519033b394a4803a6ce0932c57d71db51a55be6989eed7ea45a4d5002c
description: A flow approval process contains stages, steps, and decisions to organize complex approval sequences. Create flow approval processes by using the Flow Approval Process tiles in the New Automation window. Create autolaunched flow approval processes in the Approval app. Build flow approval processes in Flow Builder.
products:
  - Flow Builder
  - Salesforce Platform
release: "264"
---
# Flow Approval Processes

A flow approval process contains stages, steps, and decisions to organize complex approval sequences. Create flow approval processes by using the Flow Approval Process tiles in the New Automation window. Create autolaunched flow approval processes in the Approval app. Build flow approval processes in Flow Builder.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col style="width:100%"></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_about_supported_editions.htm&amp;release=264.0.0&amp;type=5" title="Review the supported products and editions for Flow Approval Processes.">View supported editions for Flow Approval Processes.</a></td></tr></tbody></table>

The External System Change-Triggered Flow Approval Process requires the MuleSoft for Flow add-on.

## Flow Approval Processes Types

The tiles for Flow Approval Processes are Autolaunched Flow Approval Process (No Trigger), External System Change-Triggered Flow Approval Process, and Record-Triggered Flow Approval Process.

An autolaunched flow approval process launches when it’s invoked by the Request Approval component, Apex, REST API, custom buttons, or custom links. An autolaunched flow approval process can also be invoked from an autolaunched flow when the flow calls the flow-approval-process-specific version of the dynamic Request an Approval action.

A record-triggered flow approval process launches when a record is created or updated, but only after the record is saved.

## Flow Usage

Flow approval processes are related to flows in 3 ways:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:25%">
          <col style="width:25%">
          <col style="width:25%">
          <col style="width:25%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e89">Relationship</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e92">Page</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e95">list</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e98">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Relationship" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e89 ">Orchestration Step Action</td>

            <td data-label="Page" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e92 ">Orchestration Version</td>

            <td data-label="list" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e95 ">Uses Flows</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e98 ">
              <ul>
                <li>The active autolaunched flow that the flow approval process version uses as an
                  background step</li>

                <li>The active screen flow that the flow approval process version uses as an
                  approval step</li>

              </ul>
            </td>

          </tr>
          <tr class="">
            <td data-label="Relationship" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e89 ">Evaluation Flow</td>

            <td data-label="Page" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e92 ">Orchestration Version</td>

            <td data-label="list" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e95 ">Uses Flows</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e98 ">
              <p>The evaluation flow that the flow approval process version to determine whether:</p>
              <ul>
                <li>A stage can be completed</li>

                <li>A background step can be started</li>

                <li>An approval step can be started</li>

                <li>An approval step can be completed</li>

              </ul>
            </td>

          </tr>
          <tr class="">
            <td data-label="Relationship" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e89 ">Request Approval Action</td>

            <td data-label="Page" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e92 ">Orchestration </td>

            <td data-label="list" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e95 ">Used in Flow Versions</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e98 ">The flow version that uses the flow approval process from an Action element
              that calls the Request Approval action</td>

          </tr>
        </tbody>
      </table>

View the flows that a flow approval process version uses or the flow approval processes that a flow version uses in the Approval Lightning app. See [Determine Flow Usage in a Flow Approval Process Version](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_manage_flow_approval_process_flow_usage.htm&release=264.0.0&type=5 "Flow approval process versions use flows to run approval and background steps. Flow approval process version stages and steps can use flows to evaluate complex criteria. Those criteria can determine when a background or approval step starts and when to mark a stage or approval step as completed. View the flows that a flow approval process version uses to understand these relationships.") or [Determine Flow Approval Process Usage in Flow Versions](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_manage_flow_approval_process_usage.htm&release=264.0.0&type=5 "Flow versions can call a flow approval process from an Action element using the Request Approval action. View the flow versions that use an autolaunched flow approval process before making changes to the active flow approval process version.").

## Available Elements and Resources

Flow Builder limits the types of elements and resources that can be a part of a flow approval process.

Elements Available in Flow Approval Processes  
| Element | PUrpose |
| --- | --- |
| Decision | Evaluate a set of conditions, and then route execution through a flow approval process based on the decision outcome. |
| Stage | Group a series of related steps. Configure conditions to be met before a stage can be completed. |

Resources Available in Flow Approval Processes  
| Resource | Description |
| --- | --- |
| Constant | Stores an unchanging value that you can use throughout a flow approval process. |
| Formula | Calculates a value when the formula is used in an element or other resource in a flow approval process. |
| Step | Defines an action to take as a part of a stage in a flow approval process. |
| Text Template | Stores plain or formatted text that can include merge fields to create custom or personalized text. For example, create text templates that you specify for the subject and body of a custom email for an approval step. |
| Variable | Stores a value that is assigned at run time. For information about using variable in flow approval processes, see [Variables in Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_concept_approval_orchestrations.htm&release=264.0.0&type=5). |

## Variables in Flow Approval Processes

Autolaunched flow approval processes can use input variables to require input from a process that calls it.

To reference output values from flows called by flow approval process steps, use the step’s automatic output.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e353">Variable</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e356">Description</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d104376e359">Notes</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e353 ">Internal-only</td>

            <td data-label="Description" class="slds-cell-wrap" colspan="2" style="vertical-align:top;" headers="d104376e356 d104376e359 ">Flow approval processes don’t have a way to assign a
              value to an internal-only variable.</td>

          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e353 ">Input </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e356 ">The user-defined variable is marked Available for input. When an autolaunched
              flow approval process with input variables is called by another process, its input
              variables can accept input from the parent process.</td>

            <td data-label="Notes" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e359 ">
              <p>Flow approval processes can’t change the value of variables, but they can pass
                input variables to input parameters for flows called by steps in a flow approval
                process. Flow approval processes can also pass input variables to input parameters
                for evaluation flows that are used in a flow approval process. </p>
              <p>Each flow approval
                process also contains 3 variables: </p>
              <ul>
                <li><strong class="uicontrol">recordId</strong>: The record ID of the record to be
                  approved.</li>

                <li><strong class="uicontrol">submitter</strong>: the ID of the user or credentialed
                  Experience site visitor who submitted the approval.</li>

                <li><strong class="uicontrol">submissionComments</strong>: Comments about the submission from
                  the person who submitted the approval.</li>

              </ul>
            </td>

          </tr>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d104376e353 ">Output</td>

            <td data-label="Description" class="slds-cell-wrap" colspan="2" style="vertical-align:top;" headers="d104376e356 d104376e359 ">
              <p>Flow approval processes don’t use output
                variables.</p>
              <p style="margin-bottom:0;">For information about output variables in flows called by flow
                approval process steps, see <a href="https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_concepts_flow.htm&amp;release=264.0.0&amp;type=5" title="Each background and approval step in a flow approval process runs an associated flow. If the logic for controlling stage and step execution calls for more than 10 requirements, use an evaluation flow to create more complex criteria.">Flows in Flow Approval Processes</a>.</p>
            </td>

          </tr>
        </tbody>
      </table>

## Recall Paths in Flow Approval Processes

Configure the Start element in a flow approval process to add a recall path. This path runs if an approval submission based on that flow approval process is recalled. The recall path can have a single stage that contains only background steps.

When an approval submission is recalled, the stage that was running and its child steps are canceled. All open approval work items associated with the approval submission are also canceled. Then the stage in the recall path runs. When the recall path stage is completed, the approval submission is recalled.

## Record Refresh in Flow Approval Processes

When a flow approval process references a record variable or a record collection variable, those variables are refreshed with their latest record values each time the orchestration run associated with a parent approval submission based on that flow approval process resumes. For approval submissions based on an autolaunched flow approval process, all referenced records are refreshed. For approval submissions based on a record-triggered flow approval process, all referenced records except $Record\_Prior are refreshed.