---
schema_version: "1"
id: d9ccca43b34f4ceac69088de07a4013b6d41951ba87f4bdbf9aa0885db6be5f1
title: Build an Orchestration
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/orchestrator_build.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.orchestrator_build.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 99832a59e5217d2a4720e31482afd19a70c8723c20341deecb4524ad1a5653e8
description: Use Flow Orchestration to build sophisticated business processes by combining and coordinating flows.
products:
  - Flow Builder
  - Salesforce Platform
release: "264"
---
# Build an Orchestration

Use Flow Orchestration to build sophisticated business processes by combining and coordinating flows.

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

<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="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d113489e64">User Permissions
              Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e64 ">To open, edit, or create an orchestration in Flow Builder:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e64 ">Manage Flow</td>

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

It’s easier to automate a business process when you understand how the pieces fit. Before you create your orchestration, talk to your stakeholders to understand the requirements. You can save draft orchestrations without knowing all the required information. Specify all flows and details before activating and running your orchestration.

Orchestrations contain Stage elements and Decision elements. Stages contain at least one step, each step calling an action to run. Background and interactive steps call flows. MuleSoft steps call MuleSoft actions imported from MuleSoft APIs. Whenever possible, create the flows and import the MuleSoft actions that you need before you build your orchestration.

- **[Use Decision Elements in an Orchestration](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_logic_conditions.htm&release=264.0.0&type=5)**  
    Control when an orchestration takes a specific decision outcome.
- **[Define Requirements for Stages and Steps in an Orchestration](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_requirements.htm&release=264.0.0&type=5)**  
    Use requirements to resume an orchestration when a record changes. Define up to 10 requirements to determine when a step is ready to start or when to mark an interactive step or stage complete.
- **[Create a Step to Interact with Users](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_assign_interactive_step.htm&release=264.0.0&type=5)**  
    To assign a step in an orchestration to a person, group, or queue, create an interactive step. An orchestration run creates a work item for each interactive step that it executes.
- **[Customize Emails to Assignees](https://help.salesforce.com/s/articleView?id=platform.orchestrator_customize_email_notification.htm&release=264.0.0&type=5)**  
    By default, each time an orchestration run creates an orchestration work item, assignees receive a notification. To change the email notification sent when an orchestration work item is created, customize the associated approval step.
- **[Route Orchestration Work Items with Omni-Channel](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_route_work_item_with_omnichannel.htm&release=264.0.0&type=5)**  
    To use Omni-Channel routing in Service with orchestration work items, you must have at least one queue associated with the Orchestration Work Item. When you assign an interactive step to that queue, members of the queue receive notifications via the Omni-Channel widget based on your routing logic. Unless you disable default email notifications for work items, queue members also receive email notifications.
- **[Redirect an Orchestration Path](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_logic_route.htm&release=264.0.0&type=5)**  
    Flow Orchestration uses Auto-Layout in Flow Builder. In Auto-Layout, elements on the canvas are spaced and connected automatically. Use Go To connectors when you have elements that don’t follow the usual consecutive auto-layout path.
- **[Add an End Element to an Orchestration Path](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_logic_route_end.htm&release=264.0.0&type=5)**  
    All elements in an orchestration are connected automatically or connected by Go To connectors that you add manually. To finish a path in your orchestration, add an End element.
- **[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.
- **[Handle Stage Errors in Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_add_error_handling.htm&release=264.0.0&type=5)**  
    Configure fault paths to manage stage errors in orchestrations. Add elements and Go To connectors that run when a stage or its steps encounter errors. These paths help orchestrations complete successfully instead of failing.
- **[Trigger an Evaluation of Orchestration Stage and Step Conditions](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_trigger_stage_step_conditon_evaluation.htm&release=264.0.0&type=5)**  
    Every time a step within the current stage completes, the orchestration evaluates the conditions for that stage and its steps. You can also publish an orchestration event from a flow to trigger an evaluation of orchestration stage and step conditions.
- **[Integrate an Orchestration with External Systems](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_integrate_with_external_systems.htm&release=264.0.0&type=5)**  
    Add a MuleSoft step to your orchestration to call an imported MuleSoft action. You can also use the `$Orchestration.Instance` system variable to integrate external systems with your orchestration.
- **[Create and Use Orchestration Templates](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_orchestration_template.htm&release=264.0.0&type=5)**  
    Save orchestrations as templates to reuse them as starting points for new orchestrations. Distribute templates through managed packages so subscribers can build orchestrations based on them.
- **[Make Work Accessible to Assigned Users](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_make_work_accessible.htm&release=264.0.0&type=5)**  
    When an orchestration runs an interactive step, it emails a notification to the assigned user, group, or queue. Credentialed Experience Cloud site visitors can see and access their assigned Flow Orchestration work items on the Orchestration Work Item List object page. Internal users and credentialed Experience Cloud site visitors complete their assigned work in the Work Guide.

## Create an Orchestration from the Automation App

Create an orchestration by clicking the New button in the Automation app.

1. On the navigation bar, click ![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/app_launcher_icon.png).
2. In the search box, enter automation, and then select **Automation**.
    
    The Automation app opens.
3. In the Automation app, click **New**.
    
    The New Automation window opens.
4. From the New Automation window, select the type of orchestration to create.
    
    - To create an orchestration that runs when it’s called from a custom button, custom link, or a custom Apex class, select **Autolaunched Orchestration (No Trigger)**.
    - To create an orchestration that runs automatically after a record is added or changed, select **Record-Triggered Orchestration**.
    
    Flow Builder opens.

For a record-triggered orchestration, configure the Start element. For any orchestration, add elements and resources.

## Create an Orchestration in Setup

Create an orchestration by clicking the New Flow button in the Flows in Setup.

1. Click ![Gear icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/resources-global/_corporate/images/gear.png), and then select **Setup**.
2. From Setup, in the Quick Find box, enter Flows, and then select **Flows**.
3. In the Flows window, click **New Flow**.
4. Determine which type of orchestration you want to create.
    
    - To create an orchestration that runs when it’s called from a custom button, custom link, or a custom Apex class, select **Autolaunched Automations**. Then select **Autolaunched Orchestration (No Trigger)**.
    - To create an orchestration that runs automatically after a record is added or changed, select **Triggered Automations**. Then select **Record-Triggered Orchestration**.
    
    Flow Builder opens.

For a record-triggered orchestration, configure the Start element. For any orchestration, add elements and resources.

## Configure the Trigger for a Record-Triggered Orchestration

Configure the Start element to control when a record-triggered orchestration runs.

1. Under Select Object, select the object with records that trigger the orchestration.
2. Under Configure Trigger, select an option.
    - To trigger the orchestration only when a record is created, select **A record is created**.
    - To trigger the orchestration only when a record is updated, select **A record is updated**.
    - To trigger the orchestration when a record is either created or updated, select **A record is created or updated**.
3. Set up condition requirements to limit when the orchestration runs.
    
    <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="d113489e440">Condition Requirements</th>
                  <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d113489e443">the Orchestration Runs When</th>
                </tr>
              </thead>
              <tbody>
                <tr class="">
                  <td data-label="Condition Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e440 "><strong class="uicontrol">None</strong></td>

                  <td data-label="the Orchestration Runs When" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e443 ">Always</td>

                </tr>
                <tr class="">
                  <td data-label="Condition Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e440 "><strong class="uicontrol">All Conditions Are Met (AND)</strong></td>

                  <td data-label="the Orchestration Runs When" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e443 ">All conditions are true.</td>

                </tr>
                <tr class="">
                  <td data-label="Condition Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e440 "><strong class="uicontrol">Any Condition Is Met (OR)</strong></td>

                  <td data-label="the Orchestration Runs When" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e443 ">At least one condition is true.</td>

                </tr>
                <tr class="">
                  <td data-label="Condition Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e440 "><strong class="uicontrol">Custom Condition Logic Is Met </strong></td>

                  <td data-label="the Orchestration Runs When" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e443 ">
                    <p>The custom condition is true. </p>
                    <p>If you select this option, provide the
                      condition logic by entering up to 1,000 characters. Use: </p>
                    <ul>
                      <li>Numbers to refer to each condition</li>

                      <li><kbd>AND</kbd>, <kbd>OR</kbd>, or
                        <kbd>NOT</kbd> to identify which combination of conditions
                        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 Conditions Are Met</strong>. If you enter
                      <kbd>OR</kbd>, it’s the same as if you selected <strong class="uicontrol">Any
                        Condition Is Met</strong>. If you enter any other logic, make sure that
                      you include a number for each condition.
                    </p>
                    <p style="margin-bottom:0;">For example, for <kbd>1 AND
                        NOT(2 OR 3)</kbd>, the flow evaluates whether the first condition is
                      <code>true</code> and whether both the second and third conditions are
                      <code>false</code>.
                    </p>
                  </td>

                </tr>
                <tr class="">
                  <td data-label="Condition Requirements" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e440 "><strong class="uicontrol">Formula Evaluates to True</strong></td>

                  <td data-label="the Orchestration Runs When" class="slds-cell-wrap" style="vertical-align:top;" headers="d113489e443 ">
                    <p>The formula evaluates to true.</p>
                    <p style="margin-bottom:0;">If you select this option, use
                      resources, functions, and operators to build a formula. See <cite>Create
                        Formulas in the Flow Start Element Formula Builder </cite> in <a href="https://help.salesforce.com/s/articleView?id=platform.flow_formula_builder.htm&amp;release=264.0.0&amp;type=5" title="You can use Flow Formula Builder to build an expression in Formula-type resources or in the Collection Filter or Start elements of a record-triggered flow. To build your expression, select from a list of functions and operators. To catch errors as you work, check the formula syntax for each expression.">Creating Flow Formulas with Flow Formula Builder</a>
                    </p>
                  </td>

                </tr>
              </tbody>
            </table>
4. Save your work.

Add elements and resources to your orchestration.

## Create an Orchestration

Orchestrations consist of Stage elements and Decision elements. Stages contain at least 1 step. Background and interactive steps call flows. MuleSoft steps call MuleSoft actions. Each stage can have a connected fault path that handles errors that the stage or steps within the stage encounters.

1. To add an element to an orchestration, click ![Add element](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_fbuilder_circleplus.png), select the element, and then enter a label, API name, and description.
    - To add an element that stores steps in your orchestration, select **Stage**.
    - To add an element that determines which path to route the orchestration to, select **Decision**. For information on configuring a Decision element, see [Use Decision Elements in an Orchestration](https://help.salesforce.com/s/articleView?id=platform.orchestrator_build_logic_conditions.htm&release=264.0.0&type=5 "Control when an orchestration takes a specific decision outcome.").
2. To add steps to a stage, click **Add Step**, select the step type, and then enter a label, API name, and description. For information on configuring a step, see [Step Flow Orchestration Resource](https://help.salesforce.com/s/articleView?id=platform.orchestrator_ref_resources_step.htm&release=264.0.0&type=5 "Organize the work done in an orchestration stage.").
    - To add a step that has no user interaction, select **Background Step**.
    - To add a step that interacts with users, select **Interactive Step**.
    - To add a step that calls a MuleSoft action, select **MuleSoft Step**.
3. When you add an element in an orchestration, it automatically connects to the elements before and after it on the path. An orchestration can contain Decision elements and Stage elements, but there’s no Loop element like there is for a flow. To repeat a sequence of one or more elements in an orchestration or to change which element runs next, use Go To connectors.
    1. To connect to a different element, after a decision or stage element, click ![Add element](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_fbuilder_circleplus.png), and then click **Connect to element**.
    2. Click ![plus sign shown on an element in the connect to element mode](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_element_plus_sign_for_connector.png) on the element to go to.
4. (Optional) To minimize failed orchestration runs, use fault paths to add error handling to your orchestration.
    
    1. To add a fault path to a stage, on the stage card, click ![Actions icon for orchestration stage card](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/actions_icon.png), and then select **Add Fault Path**.
    2. Add stage and decision elements to the fault path. Stage elements on a fault path in an orchestration can contain background steps, interactive steps, or MuleSoft steps.
    3. (Optional) By default, a fault path finishes with an end element. Use Go To connectors to connect elements in a fault path to elements in the main orchestration. Click ![Add element](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_fbuilder_circleplus.png), click **Connect to element**, and then click ![plus sign shown on an element in the connect to element mode](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow_builder_element_plus_sign_for_connector.png) on the element to go to.
    
    For detailed information on error handling strategies and fault path configuration, see [Error Handling in Orchestrations](https://help.salesforce.com/s/articleView?id=platform.orchestrator_concepts_error_handling.htm&release=264.0.0&type=5 "Error handling manages unexpected issues that occur in stages during an orchestration run. Configure fault paths for stages to define recovery actions when stage errors occur, ensuring orchestrations complete successfully instead of failing.").
5. Save your orchestration.

After you create an orchestration, test it to make sure that it’s working as you expect.

Add the Orchestration Work Guide component to the record page layout for the object affected by the orchestration.

Activate your orchestration.

A record-triggered orchestration is now ready to go. Call an autolaunched orchestration from a custom button, a custom link, or from a custom Apex code.