---
nav: wcp_docs
parent_url: /wcp_docs/
title: Create an Outbound Integration with Orchestrate
layout: subsection
---

In this activity, you'll use the <b>Workday Integration System</b> orchestration template to create a simple outbound integration. The system integration will trigger the orchestration and send 2 launch parameters: the <b>effective date</b> and a worker's <b>name</b>.

When the integration system is launched, it will trigger an orchestration that you'll create. The orchestration will automatically send a Workday API request, retrieve the worker's business title, format the response in a text template, then upload the file to the integration system.

![](GUID-0989eada-ff2c-4519-b445-dbb736f79ed2.png)

## <a id="before-you-begin"></a>Before You Begin: Create an Account on the Workday Build Platform

To do this activity, you must have an account on the Workday Build platform and a development tenant. If you’ve already created an account and a tenant, you can go to the first task of this activity.

If you haven’t already created an account, you can do so now. It’s free!

1.  Go to the [Workday Build Platform](https://developer.workday.com) and create an account with your personal email address.
2.  Once you have created an account, sign in to the [Workday Build Platform](https://developer.workday.com).
3.  In the upper-left corner, select the hamburger menu, and under <b>Console</b>, select <b>Tenants</b>.
4.  On the <b>Tenants</b> page, select <b>Create Tenant</b>. It will take 1 to 2 minutes for the development tenant to be created.
5.  Check your personal email for a link to change your tenant password.

    <b>Note:</b> Remember the password. You’ll need to sign in to the tenant while you do this activity.

6.  Sign in to the tenant with the username <i>lmcneil</i> and the password that you just created.


<b>Note:</b> When you sign in to the development tenant with the username <i>lmcneil</i>, you’re signing in as the persona <i>Logan McNeil</i>. Logan is one of several user accounts that you can use to test the agents and app that you create and deploy to your development tenant.

## Task #1: Build an Integration App

To give you a jump start, we’ve provided starter code with a partially-completed orchestration.

1.  Go to the <b>Workday Build</b> home page and select <b>Build an Integration App</b>.
2.  Select <b>Start from Scratch</b>.
3.  Give your app a <b>Name</b>, such as <i>Outbound Integration App</i>.
4.  Select <b>Create and Go to Overview</b>.


The <b>App Overview</b> page will appear, which is where you can view details about your app, create new orchestrations, promote the app to your implementation tenant, view logs, and much more.

![](GUID-f1b06165-8dd2-426d-85e3-567714bbbd8c.png)

## Task #2: Create an Orchestration

Your first task is to create a new orchestration that will use the Workday Integration System template, then install the app (and your orchestration) on your Workday tenant. The <b>Workday Integration System</b> template includes all the components and tools that you'll need to create powerful integrations with Workday Orchestrate.

1.  On the <b>App Overview</b> page, in the <b>Orchestrations</b> section, select <b>+ Add Orchestration</b>.
2.  Select the <b>Workday Integration System</b> template.
3.  Name the orchestration <b>OutboundIntegration</b>, then select <b>Done</b>.


✅ <b>Expected result</b>: The new orchestration will open in Orchestration Builder, as shown in the image below.

![](GUID-14074814-78ee-4890-af5b-d29fcd3cf519.png)

## Task #3: Add an Integration Message

The Add Integration Message component enables you to log a message to the integration event in the tenant. In this case, you'll use the integration message to verify that the orchestration and the integration system are connected. (You'll create the integration system and connect it to the orchestration in the following tasks.)

1.  Select the <b>Components Panel</b> icon, located on the left navigation pane.
2.  Scroll down to the Orchestration Logic section and drag and drop an <b>Add Integration Message</b> component into the Drop Component Here box. The Add Integration Message properties panel will open automatically.
3.  In the <b>Severity</b> drop-down, leave the original value <b>INFO</b>. Depending on how you use the integration message, you can set other severity levels, such as CRITICAL, DEBUG ERROR, or WARNING.
4.  In the <b>Summary</b> field, select the plus <b>+</b> icon, enter <i>My first Orchestrate integration message</i>, and select <b>+ Add</b> <b>string "Mia’s first Orchestrate integration message."</b>
5.  Leave the <b>Condition</b> set to <b>true</b>.
6.  Close the properties panel, and in the upper-right corner, select <b>Deploy</b>.
7.  After the app has completed building, select the Deploy button next to your tenant alias and sign in.


✅ <b>Expected result</b>: Add the integration message and deploy the integration app to your development tenant.

![](GUID-ae9d8198-5835-4617-aed7-859defb9573c.jpg)

## Task #4: Create an Integration System in the Tenant

In this task, you'll create a new integration system in your tenant and connect it to your orchestration now that your Integration App has been installed to the tenant.

1.  In the upper-left corner of the Workday Build home page, select the hamburger menu and select <b>Tenants</b>.
2.  At the end of your tenant’s row, select the <b>Launch Tenant</b> icon. This will open the tenant in a new browser tab.
3.  In the Search box, enter <i>Create Integration System</i> and select the <b>Create Integration System</b> task.
4.  In the System Name field, enter <i>My Outbound Integration-<yourInitials></i>.
5.  In the Template field, enter <i>orchestrate</i> and select <b>Enter</b>. This will select the Orchestrate Integration Template.
6.  Select <b>OK</b>.


✅ <b>Expected result</b>: Use the Orchestration Integration Template to create the integration system.

![](GUID-6aeef9b8-307e-483a-80b0-bc9e18e7585d.png)

## Task #5: Configure the Integration Attributes

Integration attributes enable you to specify app-level, tenant-specific values that your integration system can access during run-time. In this task, you'll configure integration attributes that will enable the integration system to find your orchestration, pass data to it, and run it.

1.  At the top of the View Integration System page, in the related actions menu (...) next to the integration name, select <b>Integration System</b> &gt; <b>Configure Integration Attributes</b>.
2.  In the <b>Value</b> column that corresponds to the Orchestration Name attribute, select the plus <b>+</b> icon, and enter the name of your orchestration, e.g. <i>OutboundIntegration</i>. The orchestration name is located above the <b>Components</b> panel in Orchestration Builder.
3.  Select the plus <b>+</b> icon to the right of Application Reference ID. In the <b>Value</b> field, enter your Integration app's <b>Application Reference ID</b>. You’ll find your app's Reference ID on the App Overview page in the About section. (See the image below.) Select the <b>Copy</b> icon next to the Reference ID to ensure you copy the entire ID.
4.  Select <b>OK</b>.


✅ <b>Expected result</b>: Double-check that the orchestration name and the application reference ID are in the correct attribute fields.

![](GUID-163825db-aff0-488f-bf89-3fde6c3411da.jpg)

## Task #6: Launch the Integration System

Let's test the integration system and verify that it's connected to the orchestration.

1.  Select the related actions menu next to the integration system's name, and select <b>Integration</b> &gt; <b>Launch / Schedule</b>.
2.  On the Launch / Schedule modal, select <b>OK</b> and <b>OK</b> again.
3.  When the View Background Process page appears, you'll see the integration is in progress. Select <b>Refresh</b> to update the status. (You may need to do this more than once.) You should see that the integration finished.
4.  Select the <b>Messages</b> tab.


✅ <b>Expected result</b>: If the integration worked, you'll see the integration message that you added to your orchestration, <i>My first Orchestrate integration message.</i> If there are problems with the integration, this is where you'll see error messages.

If you do see error messages, make sure that:

-   The app is deployed to the same tenant as the integration system. Remember that deploying to a development tenant will automatically install the app to that development tenant. In your tenant, search for and run the <b>App Manager</b> task. The App Manager report will enable you to view and confirm that the app is deployed.
-   The orchestration Name and Application Reference ID values are correct.


![](GUID-92aa49b4-dd8c-493d-a33e-54af8d7e0fe5.png)

## Task #7: Create Launch Parameters

Launch parameters are a predefined set of variables that accept values passed into an integration at initiation. When the integration is scheduled, they can be provided by the scheduling mechanism and contain the dates or timestamps of the previous run in the schedule.

In this task, you'll add two launch parameters to the integration system: Current Effective Date and Name.

1.  At the top of your integration system, select the hyperlinked name of your integration system. This will return you to the <b>View Integration System</b> page.
2.  On the View Integration System page, to the right of the integration system name, select the related actions menu and select <b>Integration System</b> &gt; <b>Maintain Launch Parameters</b>.


![](GUID-6bf2c26a-f640-403d-b292-08a67fb98bb6.png)

1.  In the first row of the Launch Parameters table, in the <b>Name</b> column, enter <b>Effective Date</b>.
2.  In the Launch Parameter Types column, select the <b>Data Type</b> field > <b>Basic Attributes</b> &gt; <b>Date</b>.
3.  In the Option(s) column, search and select <b>Required</b>.
4.  In the Default Processing column:

    1.  Check the <b>Default at Launch</b> box.
    2.  Set the <b>Value Type</b> to <b>Determine Value at Runtime</b>.
    3.  In <b>External Field used as Default for Launch Parameter</b>, search and select <b>Current Effective Date</b>.

5.  At the top-left corner of the Launch Parameters table, select the <b>Add Row (+)</b> icon.
6.  In the Name column, enter <b>Name</b>.
7.  In the Launch Parameter Types column, select in the <b>Data Type</b> field, select <b>Basic Attributes</b> and then select <b>Text</b>.
8.  In the Option(s) column, select <b>Required</b>.
9.  In the Default Processing column:

    1.  Check the <b>Default</b> <b>at Launch</b> box.
    2.  Set the <b>Value Type</b> to <b>Specify Value</b>.
    3.  In the <b>Value</b> &gt; <b>Text</b> field, enter <b>mcneil</b>.

10. Select <b>OK</b> and then <b>Done</b>.


✅ <b>Expected result</b>: Your launch parameters – <i>Name</i> and <i>Effective Date</i> – should be configured like the launch parameters shown in the image below.

![](GUID-72ccd5b9-a70a-4f1d-aa9f-65c0baa56b6b.png)

## Task #8: Extract the Launch Parameters

To extract the launch parameters, Orchestration Builder provides a large list of Global Functions. You can use Expression Builder to access Global Functions under the lp prefix.

In this task, you'll use a <b>Create Values</b> component in Orchestration Builder to create an immutable value for the launch parameters that you configured in the previous task.

1.  Return to your integration app and open the orchestration, if it isn’t already.
2.  From the left-hand navigation bar, select the Component [image]icon to open the Components panel.
3.  Drag and drop a <b>Create Values</b> component after the Add Integration Message step in your orchestration.
4.  Change the Reference Name to <b>ExtractLPs</b>.
5.  In the Key field, enter <i>EffectiveDate</i> (without any spaces; the Key must not contain whitespace).
6.  In the Value field, click the <b>+</b> icon, select <b>Global Functions</b>.

    1.  Scroll down the list and find <b>lp</b> (for "launch parameters"). Open the <b>lp</b> section and select the <b>date (String)</b> option. (Select the version with one attribute: <b>label</b>.) This will retrieve a Date launch parameter and automatically cast it to be a String.
    2.  In the <b>label</b> field that appears, hover over it, click the <b>+</b>, type <b>Effective Date</b>, and select <b>+ Add string “Effective Date”</b>. <i>Important</i>: Effective Date must be entered exactly as you entered in your integration system’s launch parameters.

7.  In the Type field, select <b>String</b>.
8.  Select <b>+ Add Value</b>.
9.  In the Key field, enter <b>Name</b>.
10. In the Value field, select <b>Global Functions</b> &gt; <b>lp</b> &gt; <b>simpleData</b>. You’ll see two simpleData functions. Select the version with one attribute: <b>label</b>.
11. In the Label field, enter the launch parameter <b>Name</b> select <b>+ Add string “Name”</b>. <i>Important</i>: <i>Name</i> must be entered exactly as you entered in your integration system’s launch parameters.
12. In the Type field, select <b>String</b>, which is the data type that the field will return.
13. Close the properties panel and select <b>Save All to App Hub</b>.


✅ <b>Expected result</b>: In Orchestration Builder, the Create Values step should look like the one shown in the image below.

![](GUID-14a17c18-98d2-452a-83b8-0b374ed3068a.png)

## Task #9: Configure a Send Workday API Request

In this task, we'll use the Send Workday API Request component to get the worker's data from the Workday Staffing API. You'll use the search query parameter to pass the name value from the orchestration request.

1.  From the Components panel, drag and drop a <b>Send Workday API Request</b> component after the ExtractLPs step.
2.  In the properties panel, set the request type to <b>GET</b>.
3.  In the field to the right of the base URL, enter <i>/staffing/v4/workers</i> and then select <b>+ Add string "/staffing/v4/workers"</b>. This is the endpoint that will retrieve data in a JSON structure.
4.  Leave the authentication set to <b>Default Workday API Credential</b>. (If you were using an ISU, you'd select the name of the ISU instead.)
5.  Select the <b>Query Parameter</b> tab and select <b>+ Add Parameter</b>.
6.  In the Parameter field, enter <i>search</i>. The search request parameter enables you to find a worker using their name or ID. For this activity, we'll use only their name.
7.  In the Value field, use Expression Builder to access the name launch parameter from the ExtractLPs step:

    1.  Select the <b>Add new expression (+)</b> icon.
    2.  Select <b>Data from Orchestration Steps</b>.
    3.  Select <b>CREATE VALUES ExtractLPs</b> &gt; <b>Name</b>.

8.  Select the <b>Settings</b> tab, scroll down to <b>Response Settings</b>, and set the Response Type to <b>Json</b>.
9.  Leave the <b>Body</b> and <b>Headers</b> blank. We don't need a body since this is a GET request, and we don't need to send headers in this call.
10. Close the properties panel and select <b>Save All to App Hub</b>.


✅ <b>Expected result</b>: In the Send Workday API Request step, create the <i>search</i> query parameter, and in the Settings tab, select <i>Json</i> as the response type.

![](GUID-11f8713f-934f-4f31-9bfb-8162a8423ff8.png)

## Task #10: Create the Worker's Full Name and Business Title

In this task, you'll use a Create Values component to access the worker's full name and their business title from the Workday API response.

1.  Drag and drop a <b>Create Values</b> component after the SendWorkdayAPIRequest step.
2.  Change the Reference Name to <b>CreateNameTitle</b>.
3.  In the Create Key/Values Pairs table, in the Key field, enter <i>name.</i>
4.  In the Value field, use Expression Builder to select <b>SendWorkdayAPIRequest.response</b>.
5.  Hover over <b>SendWorkdayAPIRequest.response</b> pill:

    1.  Select the <b>Append Function</b> (<i>fx) icon</i> and append the function <b>stringAtJsonPath()</b>.
    2.  In the Path field, enter <i>$.data[0].descriptor</i>.

6.  In the Type field, select <b>String</b>.
7.  Select <b>Add Value</b>, to add another key/value pair:

    1.  In the Key field, enter <i>businessTitle.</i>
    2.  In the Value field, use Expression Builder to select <b>SendWorkdayAPIRequest.response</b>, append the function <b>stringAtJsonPath</b> and enter the JSON path <i>$.data[0].primaryJob.businessTitle</i>.
    3.  In the Type field, select <b>String</b>.

8.  Close the properties panel and select <b>Save All to App Hub</b>.


✅ <b>Expected result</b>: The CreateNameTitle step must be configured like the one shown in the image below.

![](GUID-79bd76d7-f594-48c6-ba93-3bc8f2b29704.png)

## Task #11: Use Create Text Template to Format the Data

In this task, you’ll add Create Text Template, which can be used to format values and save values in text, JSON, XML, CSV, and other document types.

1.  From the Data Operations section of the Component panel, drag and drop a <b>Create Text Template</b> component immediately before the Orchestration End step.
2.  In the Content Type field, select <b>text/plain</b>.
3.  Copy and paste the following text into the <b>Message</b>:

    -   <b><insert name expression>'s business title is <insert businessTitle expression></b>.

4.  Delete <b><insert name expression></b>, and in its place, type two curly braces "<b>{{ }}</b>". You'll see that as soon as you type the first bracket, the system will autocomplete the closing bracket.
5.  Inside the handlebars brackets, type "<b>data</b>". As you begin typing, you'll see a menu appear from which you can select the <b>{ } data</b> function. Use dot notation to complete the rest of the expression: <b>data.CreateNameTitle.name</b>.
6.  Delete <b><insert businessTitle expression>,</b> and in its place, type two curly braces "<b>{{ }}</b>". Like you did for the first expression, select the data function and complete this expression using dot notation: <b>data.CreateNameTitle.businessTitle</b>.
7.  Close the properties panel and select <b>Save All to App Hub</b>.


✅ <b>Expected result</b>: You Create Text Template step should look like the one shown in the image below.

![](GUID-a512ae8d-7007-4fee-909e-8149d9f13469.png)

## Task #12: Store the Document in a File

The last step that you need in this orchestration is to store the output in a file so that you can deliver it to wherever it needs to go. In this task, you'll use the Store Document component.

1.  Drag and drop a <b>Store Document</b> component after the Create Text Template step.
2.  In the Document to Store field, use Expression Builder to select the <b>CreateTextTemplate.message</b>.
3.  In the Document Title field, enter <b>Worker Name and Business Title</b>.
4.  In the <b>Attach</b> <b>document to integration event</b> field, delete the default false value, enter <i>true</i>, and select <b>+ Add boolean true</b>.

    <b>Note:</b> Boolean true appears in a green font color. (Don’t select + Add string “true”.)

5.  Close the properties panel, select <b>Deploy</b>, and once the app is built, select <b>Redeploy</b> next to your tenant alias.


✅ <b>Expected result</b>: Select the CreateTextTemplate.message as the document to store in the integration system.

Now that you’ve finished and deployed the orchestration, it’s time to test the integration system.

![](GUID-ac9c1b8a-18d7-4fd7-881c-0c2339b7caf2.png)

## Task #13: Test the Integration System

Now that you've configured the orchestration steps that will retrieve the worker's name and business title, and output in a document, let's test the integration to make sure it works.

1.  In your tenant, search and select the <b>View Integration System</b> task, and search for and open your outbound integration.
2.  From the related actions menu, select <b>Integration</b> &gt; <b>Launch / Schedule</b>.
3.  Select <b>OK</b>, and when the <b>Schedule an Integration</b> page appears, select <b>OK</b> again.
4.  On the <b>View Background Process</b> page, select <b>Refresh</b>.
5.  Select the <b>Output Files</b> tab. You should see the Worker Name and Business Title file in the Reports and Other Output Files section.
6.  Select the <b>Worker Name and Business Title</b> link. This will download the file.
7.  Open the <b>Worker Name and Business Title</b> file to view the contents, which should look similar to the image below.


✅ <b>Expected result</b>:

![](GUID-bcc1e9d2-204d-496b-a703-ba726a915813.png)

## <a id="section_1"></a>Summary

Congratulations! You created outbound integration that uses Orchestrate to make a Workday REST API request, format the data, and store it in a file. Nice work!

