---
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: >- 
  Concept: Expression Builder
layout: subsection
---

Expression Builder is Orchestration Builder's tool for defining and evaluating simple expressions. Expressions can contain any of these element types:

<table><thead><tr><th>Type</th><th>Notes</th></tr></thead><tbody><tr><td>Literal values</td><td>An immutable string, number, or boolean value.</td></tr><tr><td>Global functions</td><td>Global functions don't apply to data of any specific type. You can use them to construct objects or to transform data.</td></tr><tr><td>Member functions</td><td>Member functions apply to data of a specific type. When you reference data of a specific type in the Expression Builder, Orchestration Builder displays the appropriate member functions for it.</td></tr><tr><td>Step outputs</td><td>Step outputs are data output by previous steps in the orchestration.</td></tr></tbody></table><br/>

## <a id="d389e160"></a>Entering Expressions

You can build an expression anywhere in Orchestration Builder where you see a gray plus button in a field. To open the field, click the plus. When you open an expression field, Expression Builder offers 2 initial menu options:

-   <b>Orchestration Data from Orchestration Steps</b>
-   <b>Global Functions</b>


Expand these menu options and their submenus to access data related to previous steps in this orchestration and functions that don't relate to specific data, respectively. Enter text to narrow the options that are displayed. Example: if you enter `time`, Expression Builder displays data from previous steps and functions that begin with or contain the text "time."

<b>Note:</b> Functions that don't have "time" in their name but return a type that begins with or contains "time" are also included.

Alongside a function's name in the menu, Expression Builder displays the type of the data it returns, together with its input parameters and their types. To enter literal values, just type them in the expression field and select the appropriate option. Example: if you enter `Salary`, Expression Builder offers the option <b>Add String "Salary"</b>. When a literal value is of ambiguous type, Expression Builder offers all relevant options. Example: if you enter `12345`, Expression Builder offers these options:

-   <b>Add string "12345"</b>
-   <b>Add number 12345</b>


Example: if you enter `true`, Expression Builder offers these options:

-   <b>Add string "true"</b>
-   <b>Add boolean true</b>


The string literal option is always available for any text that you enter. Note that successive string entries are concatenated. Expression Builder colors entered text depending on its type, so you can easily distinguish, say, a string "42.5" from a number 42.5.On each expression element that you enter, Expression Builder offers 2 new options:

-   <b>Insert to the Left</b>
-   <b>Append Function</b>


The former enables you to insert a new expression to the left of the current one. The latter enables you to apply a member function to specific data. As with global functions, enter text to narrow the displayed instance functions. Expression Builder displays a link between data and an appended member function. Function parameters are enclosed in white parentheses.

## <a id="d389e248"></a>Copy and Paste

Under the 3 dot menu on the right of an Expression Builder, there are 3 buttons:

-   <b>Copy</b>
-   <b>Paste</b>
-   <b>Advanced Mode</b>


Use the <b>Copy</b> and <b>Paste</b> functions to reproduce full expressions within the same orchestration or between orchestrations.

Click <b>Advanced Mode</b> to show the current expression as code, enabling you to copy and paste specific parts of the text, as well as perform minor edits.

In Advanced Mode, the options under the 3 dot menu change to:

-   <b>Revert</b>
-   <b>Pill Mode</b>


When in Advanced Mode, you can edit expressions directly, as well as cutting and pasting. However, Advanced Mode lacks the guardrails of Pill Mode, meaning you can easily make your expression invalid. If you do, click <b>Revert</b> to return to the last valid version.

Click <b>Pill Mode</b> to return to the regular Expression Builder experience.

## <a id="d389e315"></a>Function Explorer

Orchestration Builder includes a Function Explorer tool that enables you toaccess descriptions of Orchestrate Expression Language functions without leaving your orchestration to consult documentation. Click the icon in the lower left corner of the Orchestration Builder UI to open Function Explorer.

## <a id="d389e321"></a>Troubleshooting Expressions

As you build expressions, take care to:

-   <b>Select the correct function with the correct parameters.</b> Many functions have similar names. Some functions even have multiple versions with the same name, accepting different parameters. Ensure you select the right function for your use case by paying close attention to its return type and parameters.
-   <b>Append member functions in the correct place.</b> In complex expressions, there can be multiple opportunities to append member functions in a relatively small space. When you hover over the <b>Append Function</b> button, Expression Builder assists you by darkening the expression element to which the function will be applied.
-   <b>Debug from outer parentheses.</b> When debugging nested expressions, simplify the process by considering the results of the outermost expressions first, and work inwards.


