{{...}} interpolation against the run context. The same convention spans HTTP bodies, AI prompts, rule conditions, decision-table cells, and labels.
What you can reference
Workflow input — input.*
Workflow input — input.*
The original payload posted to the workflow.
Upstream node outputs
Upstream node outputs
Whatever each node wrote to Rules and decision tables also write to the top level (their
outputVariable.outputFields):Workflow parameters — params.*
Workflow parameters — params.*
Top-level tunables declared at the workflow’s
parameters array. Same prefix shape as input so they’re easy to spot at a glance.System-injected values
System-injected values
Where you can use it
Dot-path vs literal evaluation
There are two slightly different conventions:- Inside
{{...}}the path is interpolated.{{input.declared_address.street}}resolves to a string. - In rule/decisionTable
variable:fields the path is passed as a literal string.variable: "input.declared_country"is the path the evaluator reads, not an interpolation.
"variable": "input.declared_country" (without braces) and "value": "{{input.declared_address.street}}" (with braces) in the same node.
Helpers that are available
The expression layer supports a handful of helpers:
More advanced transforms live in the
code node so the templating layer stays small and predictable.
What is not templated
- Vendor API base URLs in
dataSourcenodes — Frayme resolves these from the Data Source registry. - Provider IDs —
providerId: "7"is the registry pointer; it isn’t a template. - The
connectionNamereference — a literal key into the workflow’sconnectionsmap.