Interpolation
Many workflow activity fields support interpolation — placeholders that are replaced at runtime with values from the workflow's execution context. Interpolation lets you build dynamic values without writing code.
The syntax is {Key} where Key is the name of a value in the workflow context.
Built-in Placeholders
{date} — Current Date
Inserts the current UTC date and time, formatted with the en locale (slashes replaced with dashes).
Report_{date}.csv
{date FORMAT} — Date with Custom Format
Inserts the current date using a .NET date format string.
{date yyyy-MM-dd}
{date yyyyMM}
{date dd-MMM-yyyy}
Optionally specify a timezone and/or culture in parentheses before the format string:
{date (UTC) yyyy-MM-dd}
{date (Romance Standard Time) dd/MM/yyyy}
{date (fr-FR) dd MMMM yyyy}
{date (UTC) (en-GB) dd MMM yyyy}
Timezone identifiers must be valid Windows timezone IDs (e.g. UTC, Eastern Standard Time, Romance Standard Time). Culture codes use the standard BCP 47 format (e.g. en-US, fr-FR).
{this} — Current Foreach Item Identifier
Inside a Foreach loop, resolves to the internal identifier of the current iteration item (a composite key of the subprocess run ID and the item name). Mainly used for subprocess tracking — prefer {burst} for the item's display name.
{burst} — Current Foreach Item Name
Inside a Foreach loop, resolves to the name of the dimension member currently being processed.
Processing_{burst}_{date yyyy-MM-dd}.log
Runtime Context Keys
At workflow startup, the following keys are added to the context and can be referenced in any interpolated field:
| Placeholder | Value |
|---|---|
{RunName} | The name given to this workflow run |
{StartedBy} | Username of the user who started the run |
{StartedBy_FullName} | Full name of the user who started the run |
{Tenant} | The tenant identifier |
{StartTime} | The UTC date and time when the workflow started |
Startup Parameters
Parameters passed when a workflow is started — from a trigger, a Run Workflow activity, or the API — are loaded directly into the context and available as {ParameterName}.
/api/entities/{EntityId}/close
Hello {ClosingPeriod}, started by {StartedBy}
Script-Set Variables
The Script activity has access to a Context object (an OrderedDictionary). Assign to it to make values available downstream:
Context["Period"] = "2024-Q1";
Context["EntityName"] = "Acme Corp";
Context["TotalCount"] = rows.Count();
Once set, these values are available in all subsequent activities:
Monthly_Close_{Period}_{EntityName}.csv
Activity Output Keys
Many activities write their output to the context using a configurable context key field (e.g. Response Context Key, Timestamp Context Key). Whatever name you set for that key becomes a placeholder you can use in downstream activities.
For example, if a REST API Call activity has its Response Context Key set to ApiResponse, then a later Script or Log Message activity can reference it as {ApiResponse}.
Examples
File name from a Foreach loop
/Reports/{Period}/{burst}_close.xlsx
REST API path from a startup parameter
/api/v1/entities/{EntityId}/close
Email subject mixing variables and date
Monthly Close — {Period} — run by {StartedBy} on {date yyyy-MM-dd}
JSON body using context values
{
"period": "{Period}",
"entity": "{EntityName}",
"runBy": "{StartedBy}"
}
Notes
- Interpolation is applied immediately before the activity executes.
- If a placeholder key does not exist in the context, it is left as-is (e.g.
{Missing}is passed through literally). This does not stop the workflow, but the consuming system may reject or mishandle the value. - Keys are case-sensitive:
{Period}and{period}are different. - Ensure that Script activities which set context values run before any activity that references those values.