Skip to main content
short_text renders a single-line text input. It works well for names, short answers, identifiers, and any value that fits on one line. Submission value type: string

Field properties

PropertyTypeRequiredDescription
idstringYesUnique identifier within the form. Becomes the key in submission data.
type"short_text"YesMust be short_text.
labelstring | LocaleMapYesLabel shown above the input.
placeholderstring | LocaleMapNoPlaceholder text shown inside the input when empty.
validatorsValidator[]NoValidation rules applied before the section is submitted.
visible_whenstringNoJS expression; field is shown when truthy, hidden otherwise. Hidden fields are excluded from submission data.

Validators

required

Field must not be empty.
validators:
  - required
Default error message: This field is required.

type: pattern

Input must match a regular expression.
validators:
  - type: pattern
    regex: "^[A-Z]{2}\\d{4}$"
    message: Must be two uppercase letters followed by four digits.
PropertyTypeRequiredDescription
regexstringYesRegular expression to match against.
messagestring | LocaleMapNoError 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: 2
    message: Please enter at least 2 characters.
PropertyTypeRequiredDescription
valuenumberYesMinimum number of characters.
messagestring | LocaleMapNoError shown when the input is too short.
Default error message: Must be at least {value} characters.

type: max

Maximum character count. The field is invalid if the submitted string has more than value characters.
validators:
  - type: max
    value: 100
    message: Must be 100 characters or fewer.
PropertyTypeRequiredDescription
valuenumberYesMaximum number of characters.
messagestring | LocaleMapNoError 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

The full_name field from the job application form with all validators applied:
version: 1
title: Join the team
sections:
  - id: main
    title: Apply to work with us
    fields:
      - id: full_name
        type: short_text
        label: Full name
        placeholder: Jane Smith
        validators:
          - required
          - type: min
            value: 2
            message: Full name must be at least 2 characters.
          - type: max
            value: 100
            message: Full name must be 100 characters or fewer.
          - type: pattern
            regex: "^[A-Za-z .'-]+$"
            message: Please use letters and standard punctuation only.
      - id: role
        type: single_select
        label: Role you're applying for
        options:
          - Software Engineer
          - Product Manager
          - Designer
      - id: email
        type: email
        label: Email address
    next: done