---
schema_version: "1"
id: 9b950bec4acbe020e2f15707db239cca336bf9907bf716e94131aac45de78995
title: Define Requirements for Stages and Steps in a Flow Approval Process
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/automate_automated_approvals_build_requirements.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_build_requirements.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: e765ea6099354b6969a7c70c4f8326df4c9ce8974737126dfb2ea9fb98ba18cb
description: Use requirements to resume an orchestration run when a record changes. Define up to 10 requirements to determine when a step is ready to start or when to mark a stage or an approval step as completed.
products:
  - Flow Builder
  - Salesforce Platform
release: "264"
---
# Define Requirements for Stages and Steps in a Flow Approval Process

Use requirements to resume an orchestration run when a record changes. Define up to 10 requirements to determine when a step is ready to start or when to mark a stage or an approval step as completed.

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

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d357688e62">User Permissions
              Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e62 ">To open, edit, or create a flow approval process in Flow Builder:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e62 ">
              <p>Manage Flow</p>
              <p>AND</p>
              <p style="margin-bottom:0;">Approval Designer</p>
            </td>

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

Before you begin, add a Stage element to your flow approval process or a Step resource to a stage.

1. In the Properties panel, select the condition that you can use to create up to 10 requirements to start a step or complete a stage or approval step.
    
     
    | To Use Requirements to | Select |
    | --- | --- |
    | Start a step | **When the specified requirements are met, the step starts** |
    | Complete a step | **When the specified requirements are met, the step is marked Completed** |
    | Complete a stage | **When the specified requirements are met, the stage is marked Completed** |
2. Set up the logic for the requirements.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:50%">
              <col style="width:50%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d357688e178">Option</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d357688e181">Behavior for Requirements</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e178 ">
                  <samp class="parmname">All Requirements Are Met</samp>
                </td>

                <td data-label="Behavior for Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e181 ">If one of the requirements is false, then the requirements aren’t
                  met.</td>

              </tr>
              <tr class="">
                <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e178 ">
                  <samp class="parmname">Any Requirement Is Met</samp>
                </td>

                <td data-label="Behavior for Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e181 ">If one of the requirements is true, then the requirements are met. </td>

              </tr>
              <tr class="">
                <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e178 ">
                  <samp class="parmname">Custom Requirement Logic Is Met</samp>
                </td>

                <td data-label="Behavior for Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e181 ">
                  <p>When you select this option, provide the requirement logic by entering up
                    to 1000 characters. Use: </p>
                  <ul>
                    <li>Numbers to refer to each requirement</li>

                    <li><kbd>AND</kbd>, <kbd>OR</kbd>, or
                      <kbd>NOT</kbd> to identify which combination of requirements
                      must be true
                    </li>

                    <li>Parentheses to group parts of the string together</li>

                  </ul>
                  <p>If you enter <kbd>AND</kbd>, it’s the same as if you selected
                    <strong class="uicontrol">All Requirements Are Met</strong>. If you enter
                    <kbd>OR</kbd>, it’s the same as if you selected <strong class="uicontrol">Any
                      Requirement Is Met</strong>. If you enter any other logic, make sure that
                    you include a number for each requirement.
                  </p>
                  <p style="margin-bottom:0;">For example, for <kbd>1 AND
                      NOT(2 OR 3)</kbd>, the flow evaluates whether the first requirement is
                    <code>true</code> and neither the second nor third condition is
                    <code>true</code>.
                  </p>
                </td>

              </tr>
            </tbody>
          </table>
3. Define up to 10 requirements.
    
    A change to a record referenced in a requirement can trigger the orchestration run to evaluate the status of the current stage and the outstanding steps within it. Some requirement resources don't trigger condition evaluations. For information on requirement resources that don’t trigger condition evaluations, see Events for Record-Change-Triggered Flow Approval Processes in [Considerations for Flow Approval Processes](https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_considerations_orchestrations.htm&release=264.0.0&type=5 "Consider entry and exit condition requirements, events triggered by record changes, input values, and email notifications when you design and use flow approval processes.").
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:24%">
              <col style="width:76%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d357688e304">Column Header</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d357688e307">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="Column Header" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e304 ">
                  <strong class="uicontrol">Resource</strong>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e307 ">
                  <p>Options: </p>
                  <ul>
                    <li>Select a flow approval process resource.<ul>
                        <li>Select a variable.</li>

                        <li>Select a record variable field.</li>

                        <li>Select automatic output from a step.</li>

                      </ul>
                    </li>

                    <li>Select a Stage element's status.</li>

                    <li>Select a Step resource's status.</li>

                    <li>For record-triggered flow approval processes, select the $Record global
                      variable.</li>

                    <li>Select a global variable.</li>

                  </ul>
                </td>

              </tr>
              <tr class="">
                <td data-label="Column Header" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e304 ">
                  <strong class="uicontrol">Operator</strong>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e307 ">The available operators depend on the data type selected for
                  <strong class="uicontrol">Resource</strong> and work the same as operators used for Decision
                  elements. See <a href="https://help.salesforce.com/s/articleView?id=platform.automate_automated_approvals_ref_operators_condition.htm&amp;release=264.0.0&amp;type=5" title="Use condition operators to verify the value of a selected resource. Conditions are used in Decision elements.">Flow Approval Processes Operators in Decision Elements</a>.
                </td>

              </tr>
              <tr class="">
                <td data-label="Column Header" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e304 ">
                  <strong class="uicontrol">Value</strong>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d357688e307 ">
                  <p><strong class="uicontrol">Resource</strong> and <strong class="uicontrol">Value</strong> in the same
                    row must have compatible data types. </p>
                  <p>Options: </p>
                  <ul>
                    <li>Select a flow approval process resource, such as a variable or automatic
                      output from a step.</li>

                    <li>Select a global constant</li>

                    <li>Select a global variable.</li>

                    <li>Enter a literal value. </li>

                  </ul>
                  <p style="margin-bottom:0;">When you add or subtract a number from a date value, the date adjusts in
                    days, not hours.</p>
                </td>

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