---
category: [Administration & Integrations, Platform and Product Extensions, Platform and Product Extensions/Integration, Administration & Integrations/Custom Integrations & Apps]
keyword: [Integrate, Workday Integration, Orchestrate for Integrations, Orchestration, Orchestration Builder]
nav: wcp_docs
parent_url: /wcp_docs/
title: Add Suborchestrations
layout: subsection
---

### Prerequisites

Create an orchestration.

### Context

A suborchestration is a series of steps that you can reuse across multiple orchestrations in the same app. Example: you can create a suborchestration that takes a JSON file as input, performs some transformation, and outputs the results as a CSV file, then call those steps from multiple orchestrations. You can also call suborchestrations from other suborchestrations.

<b>Note:</b> Suborchestrations with connector actions can only be called from orchestrations built on the Custom Agent Action template. Calling them from orchestrations built on other templates causes build failure.

### Steps

1.  Open an orchestration in Orchestration Builder.
2.  Click the <b>Orchestrations</b> icon in the navigation bar on the left of the Orchestration Builder interface.

    The <b>Orchestrations</b> panel shows the orchestrations and suborchestrations associated with this app. An asterisk indicates that an orchestration or suborchestration hasn't been saved to App Hub.

3.  To create a new suborchestration, click the plus symbol in the <b>Suborchestrations</b> section header.
4.  Enter a <b>Name</b> for the suborchestration.

    Orchestration builder opens the suborchestration. It contains Start and End steps where you can configure the input parameters it accepts from the calling orchestration and the output parameters it returns.

    <b>Note:</b> A suborchestration can only access values from the calling orchestration that are explicitly passed to it. Similarly, the calling orchestration can only access suborchestration values that are explicitly returned.

5.  Click <b>Configure Inputs</b> on the suborchestration's Start step. Add input parameters in the form of key:value pairs. Example: you can configure the suborchestration to accept as input a `String` associated with the key `WorkerName` and a `Number` associated with the key `WorkerID`.
6.  Click <b>Configure Outputs</b> on the suborchestration's End step. Add output parameters in the form of key:value pairs and specify their type. These outputs are available to downstream steps in the calling orchestration. Example: you can configure an output called `WorkerLocation` of type `String` that's associated with the value `Chicago`.
7.  Click the <b>Components</b> icon in the navigation bar on the left of the Orchestration Builder interface.
8.  Add components to the suborchestration between the Start and End steps. Edit the components' properties to achieve the required functionality and save to App Hub.

    <b>Note:</b> You can't currently add <b>Trigger Business Process</b> or <b>Send Workday RaaS Request</b> components to suborchestrations.

9.  Orchestration Builder now displays a <b>Suborchestrations</b> components panel in every orchestration or suborchestration in the app. Every available suborchestration is represented there by a calling component. Example: after you create a suborchestration called `FilterByLocation`, the <b>Suborchestrations</b> section contains a component named <b>Call FilterByLocation</b>. 

    To call a suborchestration, drag the relevant calling component into the appropriate position on the canvas of your orchestration or suborchestration.

10. In the calling component's properties panel, provide a <b>Value</b> for each of the suborchestration's input parameters, which you defined earlier. Example: you could provide the value `272516` for the `WorkerID` key.

    For reference, Orchestration Builder displays the suborchestration's output parameters here too.



### Result

After saving to App Hub, your calling orchestration logic proceeds as normal until it reaches the calling component. It then passes values to the suborchestration, which processes them, and returns the defined output for downstream use in the calling orchestration.

