Field Types

Complete reference for all 27 form field types

Field Types

Transactional Forms supports 27 different field types to collect any kind of data.

Text Fields

Short Text

Single-line text input for names, titles, and brief responses.

{
  "type": "SHORT_TEXT",
  "label": "Your Name",
  "placeholder": "Enter your name",
  "required": true,
  "validation": {
    "minLength": 2,
    "maxLength": 100
  }
}

Long Text

Multi-line textarea for detailed responses.

{
  "type": "LONG_TEXT",
  "label": "Your Message",
  "placeholder": "Tell us more...",
  "required": true,
  "validation": {
    "minLength": 10,
    "maxLength": 2000
  }
}

Email

Email input with built-in validation.

{
  "type": "EMAIL",
  "label": "Email Address",
  "placeholder": "you@example.com",
  "required": true
}

Phone

Phone number input with formatting.

{
  "type": "PHONE",
  "label": "Phone Number",
  "placeholder": "+1 (555) 000-0000",
  "required": false
}

Number

Numeric input with optional min/max constraints.

{
  "type": "NUMBER",
  "label": "Quantity",
  "placeholder": "0",
  "validation": {
    "min": 1,
    "max": 100
  }
}

URL

URL input with validation.

{
  "type": "URL",
  "label": "Website",
  "placeholder": "https://example.com",
  "required": false
}

Choice Fields

Multiple Choice

Radio button group for single selection.

{
  "type": "MULTIPLE_CHOICE",
  "label": "How did you hear about us?",
  "required": true,
  "options": [
    { "value": "search", "label": "Search Engine" },
    { "value": "social", "label": "Social Media" },
    { "value": "friend", "label": "Friend/Colleague" },
    { "value": "other", "label": "Other" }
  ]
}

Checkbox

Checkbox group for multiple selections.

{
  "type": "CHECKBOX",
  "label": "Which features interest you?",
  "required": true,
  "options": [
    { "value": "email", "label": "Email API" },
    { "value": "forms", "label": "Forms" },
    { "value": "chat", "label": "Live Chat" },
    { "value": "sms", "label": "SMS" }
  ],
  "validation": {
    "minSelections": 1,
    "maxSelections": 3
  }
}

Select dropdown for single selection.

{
  "type": "DROPDOWN",
  "label": "Country",
  "placeholder": "Select a country",
  "required": true,
  "options": [
    { "value": "us", "label": "United States" },
    { "value": "uk", "label": "United Kingdom" },
    { "value": "ca", "label": "Canada" }
  ]
}

Yes/No

Binary choice field.

{
  "type": "YES_NO",
  "label": "Would you recommend us?",
  "required": true
}

Rating Fields

Star Rating

Star-based rating input.

{
  "type": "RATING",
  "label": "Rate your experience",
  "required": true,
  "settings": {
    "maxRating": 5,
    "icon": "star"
  }
}

Opinion Scale

Numeric scale for opinions.

{
  "type": "OPINION_SCALE",
  "label": "How satisfied are you?",
  "required": true,
  "settings": {
    "min": 1,
    "max": 10,
    "minLabel": "Not satisfied",
    "maxLabel": "Very satisfied"
  }
}

NPS (Net Promoter Score)

Standard 0-10 NPS scale.

{
  "type": "NPS",
  "label": "How likely are you to recommend us?",
  "required": true,
  "settings": {
    "minLabel": "Not at all likely",
    "maxLabel": "Extremely likely"
  }
}

Date & Time Fields

Date

Date picker input.

{
  "type": "DATE",
  "label": "Preferred Date",
  "required": true,
  "settings": {
    "minDate": "2024-01-01",
    "maxDate": "2024-12-31",
    "disabledDays": ["saturday", "sunday"]
  }
}

Time

Time picker input.

{
  "type": "TIME",
  "label": "Preferred Time",
  "required": true,
  "settings": {
    "minTime": "09:00",
    "maxTime": "17:00",
    "interval": 30
  }
}

Media Fields

File Upload

File upload with type restrictions.

{
  "type": "FILE_UPLOAD",
  "label": "Upload Resume",
  "required": true,
  "settings": {
    "maxSize": 10485760,
    "allowedTypes": ["application/pdf", "application/msword"],
    "maxFiles": 1
  }
}

Image Upload

Image-specific upload with preview.

{
  "type": "IMAGE_UPLOAD",
  "label": "Profile Photo",
  "required": false,
  "settings": {
    "maxSize": 5242880,
    "allowedTypes": ["image/jpeg", "image/png", "image/webp"],
    "aspectRatio": "1:1"
  }
}

Layout Fields

Section

Visual separator with heading and description.

{
  "type": "SECTION",
  "label": "Personal Information",
  "description": "Please provide your contact details"
}

Page Break

Multi-page form separator.

{
  "type": "PAGE_BREAK",
  "label": "Next: Review & Submit"
}

Statement

Display-only text content.

{
  "type": "STATEMENT",
  "label": "Thank you for your interest!",
  "description": "We'll review your submission and get back to you within 24 hours."
}

Advanced Fields

Hidden

Hidden field for tracking data.

{
  "type": "HIDDEN",
  "label": "source",
  "defaultValue": "landing-page"
}

Matrix

Grid of questions with rating scale.

{
  "type": "MATRIX",
  "label": "Rate our service in these areas",
  "required": true,
  "settings": {
    "rows": [
      { "value": "speed", "label": "Speed" },
      { "value": "quality", "label": "Quality" },
      { "value": "support", "label": "Support" }
    ],
    "columns": [
      { "value": "1", "label": "Poor" },
      { "value": "2", "label": "Fair" },
      { "value": "3", "label": "Good" },
      { "value": "4", "label": "Excellent" }
    ]
  }
}

Ranking

Drag-and-drop ranking.

{
  "type": "RANKING",
  "label": "Rank these features by importance",
  "required": true,
  "options": [
    { "value": "price", "label": "Price" },
    { "value": "quality", "label": "Quality" },
    { "value": "speed", "label": "Speed" },
    { "value": "support", "label": "Support" }
  ]
}

Signature

Digital signature capture.

{
  "type": "SIGNATURE",
  "label": "Your Signature",
  "required": true
}

Payment

Payment field for collecting payments.

{
  "type": "PAYMENT",
  "label": "Payment",
  "required": true,
  "settings": {
    "amount": 99.00,
    "currency": "USD",
    "provider": "stripe"
  }
}

Address

Structured address input.

{
  "type": "ADDRESS",
  "label": "Shipping Address",
  "required": true,
  "settings": {
    "includeCountry": true,
    "includePostalCode": true
  }
}

Terms and conditions checkbox.

{
  "type": "LEGAL",
  "label": "I agree to the Terms of Service",
  "required": true,
  "settings": {
    "linkText": "Terms of Service",
    "linkUrl": "https://example.com/terms"
  }
}

Field Validation

All fields support validation options:

{
  "validation": {
    "required": true,
    "minLength": 10,
    "maxLength": 500,
    "pattern": "^[A-Za-z]+$",
    "patternMessage": "Only letters allowed"
  }
}

Conditional Logic

Show/hide fields based on previous answers:

{
  "type": "LONG_TEXT",
  "label": "Please explain",
  "conditions": {
    "show": {
      "field": "satisfaction",
      "operator": "lessThan",
      "value": 3
    }
  }
}

Next Steps