long_text renders a multi-line textarea. It is the right choice for messages, descriptions, open-ended answers, and any value where the user needs more than one line.
Submission value type: string
Field properties
| Property | Type | Required | Description |
|---|
id | string | Yes | Unique identifier within the form. Becomes the key in submission data. |
type | "long_text" | Yes | Must be long_text. |
label | string | LocaleMap | Yes | Label shown above the textarea. |
placeholder | string | LocaleMap | No | Placeholder text shown inside the textarea when empty. |
validators | Validator[] | No | Validation rules applied before the section is submitted. |
visible_when | string | No | JS expression; field is shown when truthy, hidden otherwise. Hidden fields are excluded from submission data. |
Validators
required
Field must not be empty.
Default error message: This field is required.
type: pattern
Input must match a regular expression. The pattern is tested against the full text.
validators:
- type: pattern
regex: "\\S+"
message: Please enter a non-empty response.
| Property | Type | Required | Description |
|---|
regex | string | Yes | Regular expression to match against. |
message | string | LocaleMap | No | Error shown when the pattern does not match. |
Default error message: Please match the required format.
type: min
Minimum character count. The field is invalid if the submitted string has fewer than value characters.
validators:
- type: min
value: 50
message: Please write at least 50 characters.
| Property | Type | Required | Description |
|---|
value | number | Yes | Minimum number of characters. |
message | string | LocaleMap | No | Error shown when the input is too short. |
Default error message: Must be at least {value} characters.
type: max
Maximum character count. Useful for keeping responses focused and limiting storage size.
validators:
- type: max
value: 2000
message: Please keep your response under 2000 characters.
| Property | Type | Required | Description |
|---|
value | number | Yes | Maximum number of characters. |
message | string | LocaleMap | No | Error shown when the input is too long. |
Default error message: Must be no more than {value} characters.
Validators run in the browser before each section is submitted. They enforce UX constraints, not security guarantees. If you need server-side validation, implement it in your webhook receiver.
Full example
A feedback form with a long_text message field requiring between 50 and 2000 characters:
version: 1
title: Share your feedback
sections:
- id: main
title: We'd love to hear from you
fields:
- id: name
type: short_text
label: Your name
validators:
- required
- id: message
type: long_text
label: Your message
placeholder: Tell us what you think...
validators:
- required
- type: min
value: 50
message: Please write at least 50 characters so we can understand your feedback.
- type: max
value: 2000
message: Please keep your response under 2000 characters.
next: done