---
schema_version: "1"
id: c2e1f8d748509fe394e7381b2955961b2fdc2a223097f85afa5360cbae033490
title: Flows in 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_concepts_flow.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_concepts_flow.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 91dfc39fcdd800edf7802afd6db48d2a7e0720401a06d0143474f34d46259400
description: 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.
products:
  - Flow Builder
  - Salesforce Platform
release: "264"
---
# Flows in Flow Approval Processes

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.

### 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>

## Approval Steps

Each approval step assigns a screen flow to a user, group, or queue.

## Background Steps

Each background step calls an autolaunched flow.

## When to Start the Step

Each step can call an evaluation flow to determine whether the step can be started. An evaluation flow is a flow with a process type of Evaluation Flow. It’s an autolaunched flow that contains a predefined Boolean output variable named isOrchestrationConditionMet. To indicate that the custom entry conditions are met, the output variable must be set to `true` within the flow.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png)

Note The Boolean isOrchestrationConditionMet variable defined in an evaluation flow must be initialized to `false`.

## When to Complete the Step

An approval step can call an evaluation flow to determine whether the step can be marked as completed. An evaluation flow is a flow with a process type of Evaluation Flow. It’s an autolaunched flow that contains a predefined Boolean output variable named isOrchestrationConditionMet. To indicate that the custom exit conditions are met, the output variable must be set to `true`.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png)

Note The Boolean isOrchestrationConditionMet variable defined in an evaluation flow must be initialized to `false`.

## When to Complete the Stage

A stage can call an evaluation flow to determine whether the stage can be considered as completed. An evaluation flow is a flow with a process type of Evaluation Flow. It’s an autolaunched flow that contains a predefined Boolean output variable named isOrchestrationConditionMet. To indicate that the custom exit conditions are met, the output variable must be set to `true`.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png)

Note The Boolean isOrchestrationConditionMet variable defined in an evaluation flow must be initialized to `false`.

## 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="d56140e165">Relationship</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d56140e168">Page</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d56140e171">list</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d56140e174">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Relationship" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e165 ">Orchestration Step Action</td>

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

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

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e174 ">
              <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="d56140e165 ">Evaluation Flow</td>

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

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

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e174 ">
              <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="d56140e165 ">Request Approval Action</td>

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

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

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e174 ">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.").

## Flow Variables

Flows can have internal-only, input, and output variables.

If the combined input values for a flow called by a flow approval process step is more than 32,768 characters, the orchestration run associated with the parent approval submission fails. This error can be caused by passing one or more records to a flow called by a step. To avoid this error, pass a record ID to the referenced flow, and use a Get Records element in the flow with the passed ID. Using a passed ID with a Get Records element also means that you always have the latest version of the record.

<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="d56140e298">Variable</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d56140e301">Description</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d56140e304">Notes</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e298 ">Internal-only</td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e301 ">The variable is used inside the flow and isn’t available for input or output in
              a flow approval process.</td>

            <td data-label="Notes" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e304 ">You can create your own internal variables, or you can let flow create them for
              you. The flow approval process that calls the screen flow or autolaunched flow can’t
              use these variables.</td>

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

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e301 ">The user-defined variable is marked Available for input. When the flow is
              called by a flow approval process step, its input variables are inputs for the
              step.</td>

            <td data-label="Notes" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e304 ">
              <p>Flows that can have input values from a flow approval process for input
                variables are:</p>
              <ul>
                <li>Autolaunched flows </li>

                <li>Screen flows</li>

                <li>Evaluation flows</li>

              </ul>
            </td>

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

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e301 ">The user-defined variable is marked Available for output. Output variables are
              accessible as automatic outputs for the associated step and are available throughout
              the flow approval process at design time.</td>

            <td data-label="Notes" class="slds-cell-wrap" style="vertical-align:top;" headers="d56140e304 ">
              <p>Flow approval processes can access user-defined output variables from:</p>
              <ul>
                <li>Autolaunched flows </li>

                <li>Screen flows</li>

              </ul>
              <p>When you reference automatic output that contains a record or a record
                collection in a flow approval process, records are refreshed with their latest
                values each time the orchestration run associated with the parent approval
                submission resumes.</p>
              <p style="margin-bottom:0;">To add custom comments to the run log for an
                orchestration run associated with the parent approval submission, create a text
                output variable named Comments in a flow called by an approval orchestration step
                and assign the variable a value in the flow.</p>
            </td>

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

- **[Evaluation Flows for Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_concepts_flows_evaluation_flows.htm&release=264.0.0&type=5)**  
    When you need more than 10 requirements to control stage and step execution, use an evaluation flow. Select the Evaluation Flow tile in the New Automation window to create an evaluation flow.