agenthub · transform.value
Emit a fixed value — a literal, or something read from the run. Its output does not depend on its input; wiring an input just triggers it.
Why the node earns its place
The missing constant. Its canonical use is one on each branch of a Condition, so true emits one reply and false another, without fusing an emitter into the branch node itself.
It is also how you surface a run value as something wire-able: the caller's phone, a saved variable, a default. Placeholders interpolate, so a literal can carry a name into a greeting.
How it works at run time
context_key is set, emit that run value — the saved-variable bag wins over a seeded context key of the same name.{{placeholders}} in the literal, dotted paths included. A missing one renders empty.as when it is a number, boolean, or JSON to parse.What you wire
Configuration
| Key | Type | Default & options | What it does |
|---|---|---|---|
| value | string | — | The text to emit (e.g. 'Hi {{member_name}}'). {{name}} placeholders interpolate saved variables / context (dotted paths ok, e.g. {{record.name}}); a missing one renders empty. Ignored when context_key is set. |
| context_key | string | — | Emit run-context[key] instead of the literal (e.g. 'phone'). Wins over `value`. |
| as | string | default "string" string · number · boolean · json | Coerce the literal: number/boolean, or json to parse it into an object/array. Default string. (Ignored for context_key.) |
What usually goes wrong
Watch for this
A missing placeholder renders as empty text, not as an error — which is how an agent ends up sending Hi ,. If a greeting arrives with a hole in it, the variable was never saved under that name, or was saved after the node that reads it.
Behaviour & provenance