---
schema_version: "1"
id: d830f0ab7375c3477e47ddcd5a64509bfc6aa7679e0d9aee2018720864d9bb6b
title: Orchestrations
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/orchestrator_concept_orchestrations.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.orchestrator_concept_orchestrations.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: c8075b926293a4c920829483b896caa9d625b3c5d3e162c349b85c27464e1ba7
description: An orchestration uses stages, steps, and decisions to organize complex business processes.
products:
  - Flow Builder
  - Salesforce Platform
release: "264"
---
# Orchestrations

An orchestration uses stages, steps, and decisions to organize complex business processes.

### 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_orchestrator_about_supported_editions.htm&amp;release=264.0.0&amp;type=5" title="Review the supported products and editions for Flow Orchestration.">View supported editions for Flow Orchestration.</a></td></tr></tbody></table>

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

Build orchestrations by using the Flow Orchestration tiles in Flow Builder. Flow Orchestration tiles limit the available elements and available resources in your orchestration and include Stage elements and Step resources that aren’t available in flows. Flow Orchestration always uses Auto-Layout in Flow Builder.

## Orchestration Run Life Cycle

![The life cycle for an orchestration run](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/orchestration/orchestrator_orchestration_work_cycle.png)

## Flow Orchestration Types

The tiles for Flow Orchestration Autolaunched Orchestration (No Trigger), External System Change-Triggered Orchestration, and Record-Triggered Orchestration.

An autolaunched orchestration launches when it’s called by a custom Apex class or a custom URL. The creation or update of a record can trigger a record-triggered orchestration, but only after the record is saved.

## Flow Usage

Orchestrations rely on flows. Orchestration versions use flows in 2 ways:

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

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

                <li>The active screen flow that the orchestration version uses as an interactive
                  step</li>

              </ul>
            </td>

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

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

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

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

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

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

              </ul>
            </td>

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

View the flows that an orchestration version uses in the Automation app. See [Determine Flow Usage in an Orchestration Version](https://help.salesforce.com/s/articleView?id=platform.orchestrator_manage_orchestration_flow_usage.htm&release=264.0.0&type=5 "Orchestration versions use flows to run interactive and background steps. Orchestration version stages and steps can use flows to evaluate complex criteria. Those criteria can determine when a background, interactive step, or MuleSoft step starts and when to mark a stage or interactive step as completed. View the flows that an orchestration version uses to understand the relationships between an orchestration version and the flows it references.").

## Variables in Orchestrations

Autolaunched orchestrations can use input variables to require input from a process that calls it.

To reference output values from flows called by orchestration 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="d67021e197">Variable</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d67021e200">Description</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d67021e203">Notes</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Variable" class="slds-cell-wrap" style="vertical-align:top;" headers="d67021e197 ">Internal-only</td>

            <td data-label="Description" class="slds-cell-wrap" colspan="2" style="vertical-align:top;" headers="d67021e200 d67021e203 ">Orchestrations 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="d67021e197 ">Input </td>

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

            <td data-label="Notes" class="slds-cell-wrap" style="vertical-align:top;" headers="d67021e203 ">Orchestrations can’t change the value of variables, but they can pass input
              variables to input parameters for evaluation flows or flows called by steps in an
              orchestration. </td>

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

            <td data-label="Description" class="slds-cell-wrap" colspan="2" style="vertical-align:top;" headers="d67021e200 d67021e203 ">Orchestrations don’t use output variables.</td>

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

## Record Refresh in Orchestrations

When you reference a record variable or a record collection in an orchestration configured to run on API version 58.0 and later, records are refreshed with their latest values each time the orchestration run resumes. In an autolaunched orchestration run, all referenced records are refreshed. In a record-triggered orchestration, all referenced records except $Record\_\_Prior are refreshed.

When a background step runs synchronously and updates a record, the orchestration run doesn't refresh $Record until it resumes. The stage can't access updated field values after the step completes, and you can't use them in stage or step exit criteria. To access a field value that a step updated, use the step's automatic output instead of referencing $Record directly.

## Flow Orchestration Run Record Ownership

For flow orchestration run records created in Winter ’23 or later, the Owner ID field is set to the ID of the automated process user.

#### See Also

- [Use Automatic Output in Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_automatic_output.htm&release=264.0.0&type=5 "An orchestration has access to output for its stages, steps, and decisions. Query the status of any stage or step in the orchestration. Use output parameters from any step’s associated flow. In an orchestration configured to run on API version 58.0 and later, referenced automatic outputs that contain a record or a record collection are refreshed with their latest values each time the orchestration run resumes.")
- [Global Variables Flow Orchestration Resource](https://help.salesforce.com/s/articleView?id=platform.orchestrator_ref_resources_global_variables.htm&release=264.0.0&type=5 "Use system-provided variables that reference information about the Salesforce org or running user, such as the user’s ID or the API session ID.")