Transactional

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