Answer piping
Answer piping inserts a field’s answer into form text, labels, and redirect URLs. Use it to personalize questions or show a respondent’s answers later in the form.
Syntax
Write a field name between double curly braces: {{field_name}}. Names can contain letters, digits, and underscores.
The value comes from the field’s answer. If there is no answer, piping uses the hidden field with that name; if neither has a value, it inserts an empty string. Array answers appear as comma-separated values. Calculation answers appear as formatted numbers.
In the editor preview, variables appear as written.
Where you can use variables
| Form property | Supported locations |
|---|---|
| Fields | label, subtext, input_label, placeholder |
| Text blocks | copy on text, h1, h2, and h3 blocks |
| Divider | copy |
| Add to calendar | title, location, and details |
| Result breakdown | Questions |
| End page | redirect_url |
Notification email templates use different variables: {{formName}} and {{field.<name>}}.
Example: personalize text with answers
This config inserts the respondent’s name into a text block and their selected topics into a later block. Array answers are shown as comma-separated values.
{
"mode": "page",
"pages": [
{
"type": "form",
"id": "p1",
"ui": [
{
"type": "short_text_input",
"name": "first_name",
"label": "What should we call you?",
"required": true
},
{
"type": "checkboxes",
"name": "topics",
"label": "Which topics interest you?",
"options": ["Design", "Research", "Engineering"]
}
]
},
{
"type": "form",
"id": "p2",
"ui": [
{
"type": "text",
"copy": "Thanks, {{first_name}}. You selected: {{topics}}."
}
]
}
],
"end": [
{
"id": "e0",
"type": "end",
"ui": [
{
"type": "text",
"copy": "Thanks for sharing your interests, {{first_name}}."
}
]
}
]
}Example: use an answer in a redirect URL
An end page can insert an answer into redirect_url. The value is URL-encoded. This example sends the respondent’s email address as a query parameter.
{
"mode": "page",
"pages": [
{
"type": "form",
"id": "p1",
"ui": [
{
"type": "email_input",
"name": "email",
"label": "What is your email address?",
"required": true
}
]
}
],
"end": [
{
"id": "e0",
"type": "end",
"variant": "redirect",
"redirect_url": "https://example.com/thanks?email={{email}}",
"redirect_delay": 3,
"ui": []
}
]
}You can also pipe hidden-field values. Hidden fields are declared in form settings, separately from the form config. A hidden-field value is used when there is no answer for a field with that name. Arrays in redirect URLs are joined with commas; objects become empty.