Type identifier:
text:templateCategory: Text Operations
Renders a rich-content template with variable substitution. Insert variables through the template editor, then connect each generated input handle to the value it should render. It generates dynamic content such as messages, emails, or prompts.
Handle | Data Type | Required | Description |
|---|---|---|---|
| Varies | Varies | Dynamic handles for each variable |
Input handles are dynamically generated based on the variables configuration:
variables arrayNotes:
Handle | Data Type | Description |
|---|---|---|
|
| The rendered template |
|
| Triggered on rendering error |
resultstringNotes:
Property | Type | Required | Default | Description |
|---|---|---|---|---|
|
| Yes |
| Display label for the node |
|
| Yes |
| Variable names to substitute |
|
| Yes | Empty paragraph | The rich-content template |
variablesstring[]Notes:
templateContentNotes:
Variable Type | Behaviour |
|---|---|
String | Inserted directly |
Date string | Formatted using the variable's format or field default |
Number | Converted to string |
Content | Serialised to text, files pre-signed |
Object | JSON serialised |
Array | JSON serialised |
When a variable value is a parseable date/datetime string (ISO 8601 or Temporal ZonedDateTime format), it is automatically formatted using the format cascade:
defaultFormat — from the Schema field's configuration (when Schema context is available)The viewer's timezone preference is used when timezoneDisplay is set to "viewer" on the Schema field.
Scenario | Behaviour |
|---|---|
A file URL cannot be signed or accessed | Triggers |
Rendering fails | Triggers |
{
"type": "text:template",
"data": {
"label": "Greeting Message",
"variables": ["name", "company"],
"template": [
{
"type": "paragraph",
"children": [
{ "text": "Hello " },
{ "type": "variable", "variable": "name", "children": [{ "text": "" }] },
{ "text": ", welcome to " },
{ "type": "variable", "variable": "company", "children": [{ "text": "" }] },
{ "text": "!" }
]
}
]
}
}{
"type": "text:template",
"data": {
"label": "Order Confirmation",
"variables": ["customerName", "orderId", "total"],
"template": [
{
"type": "paragraph",
"children": [
{ "text": "Dear " },
{ "type": "variable", "variable": "customerName", "children": [{ "text": "" }] },
{ "text": ", your order #" },
{ "type": "variable", "variable": "orderId", "children": [{ "text": "" }] },
{ "text": " has been confirmed. Total: $" },
{ "type": "variable", "variable": "total", "children": [{ "text": "" }] }
]
}
]
}
}{
"type": "text:template",
"data": {
"label": "Report Summary",
"variables": ["title", "content"],
"template": [
{
"type": "heading",
"level": 1,
"children": [{ "type": "variable", "variable": "title", "children": [{ "text": "" }] }]
},
{
"type": "paragraph",
"children": [{ "type": "variable", "variable": "content", "children": [{ "text": "" }] }]
}
]
}
}{
"type": "text:template",
"data": {
"label": "Analysis Prompt",
"variables": ["document", "question"],
"template": [
{ "type": "paragraph", "children": [{ "text": "Based on the following document:" }] },
{
"type": "paragraph",
"children": [{ "type": "variable", "variable": "document", "children": [{ "text": "" }] }]
},
{ "type": "paragraph", "children": [{ "text": "Please answer this question:" }] },
{
"type": "paragraph",
"children": [{ "type": "variable", "variable": "question", "children": [{ "text": "" }] }]
}
]
}
}