Skip to content

Field types

AmazingForms supports 18 field types. When you describe your form in plain English, the AI builder automatically picks the right types — but you can add, remove, or change any field in the visual editor at any time.

Field typeUse caseKey options
TextSingle-line text inputMin/max length, regex pattern validation
TextareaMulti-line text (paragraphs, messages)Min/max characters, rows, placeholder
EmailEmail addressBuilt-in format validation, optional MX record check
PhonePhone numberE.164 format validation, country-code selector
NumberNumeric inputMin/max range, decimal places, currency formatting
SelectChoose one from a dropdown list”Other” option with free-text fallback, searchable
Radio buttonsChoose one — all options visible at onceSupports images as option labels, inline or stacked layout
CheckboxesChoose one or moreSelect-all toggle, min/max selections
DateDate pickerMin/max date range, disable weekends, locale format
TimeTime picker12h or 24h format, step intervals (e.g. every 15 min)
File uploadAttach filesMax file size (default 10 MB), allowed MIME types, multi-file
SignatureDrawn signatureCaptured as SVG, stored base64 in submission
RatingStar or numeric rating1–5 or 1–10 scale, custom icons
HiddenStores a value invisiblyStatic value or dynamic merge tag (e.g. {utm_source})
Section breakVisual divider between field groupsOptional label and description, no data collected
HTMLCustom HTML blockFor notices, rich copy, or embedded media
CAPTCHASpam protectionreCAPTCHA v3 (default, invisible) or hCaptcha
PaymentCollect payment at submissionFixed or user-entered amount, links to Stripe/Square/PayPal

Open the field editor (click a field on the canvas) and use the Validation tab to set:

  • Min/max length — shows a live character counter below the field
  • Pattern — a regular expression the value must match, with a custom error message
// Example: UK postcode pattern
{
"pattern": "^[A-Z]{1,2}[0-9][0-9A-Z]?\\s?[0-9][A-Z]{2}$",
"patternMessage": "Please enter a valid UK postcode"
}

Enable Verify MX record in the field’s Validation tab. AmazingForms will reject addresses whose domain has no valid mail exchanger. This catches typos like @gmial.com that pass format checks.

SettingDefaultNotes
Max file size10 MBBounded by your server’s upload_max_filesize
Allowed typesAllComma-separated MIME types, e.g. image/jpeg, application/pdf
Multi-fileOffWhen on, allows multiple files in one upload field
StorageWordPress media libraryFiles are private by default (not publicly linked)

The signature field renders a draw-pad. On submission, the signature is:

  1. Captured as an SVG path
  2. Converted to a base64-encoded PNG
  3. Stored in the submission record and displayed in the CRM timeline

The Payment field must be configured with an active payment gateway (Stripe, Square, or PayPal). See Stripe payments for setup instructions.

  • Fixed amount — you set the price (e.g. £49.00)
  • User-entered amount — the submitter types an amount (optionally with a minimum)
  • Recurring — monthly or yearly subscription (Stripe only for recurring billing)

Hidden fields are powerful for capturing context that the user doesn’t type themselves. Set the Default value to a merge tag:

Merge tagWhat it captures
{page_url}Full URL of the page the form is embedded on
{utm_source}UTM source parameter from the URL
{utm_medium}UTM medium parameter
{utm_campaign}UTM campaign parameter
{utm_term}UTM term parameter
{utm_content}UTM content parameter
{user_email}Logged-in WordPress user’s email (blank if not logged in)
{user_id}Logged-in WordPress user ID
{user_display_name}Logged-in WordPress user’s display name
{referrer_url}HTTP referrer — where the visitor came from
{submission_date}Date the form was submitted (server time)
{form_id}Numeric ID of this form

Every field has a unique Field ID — a short slug you set in the field editor (Advanced tab). Field IDs are used in:

  • Conditional logic — “show this field when [field_id] equals …”
  • Merge tags{field:my_field_id} in email templates and workflow prompts
  • Webhook/API output — field values are keyed by field ID in JSON payloads
// Example submission payload snippet
{
"submission_id": 1042,
"form_id": 7,
"fields": {
"first_name": "Sarah",
"email": "sarah@example.com",
"project_budget": "5000",
"utm_source": "google"
}
}