Skip to main content
A Form Template (called a “Flow” in Penbox) defines the structure, appearance, and behavior of forms sent to contacts. This is what you design and build in Penbox Studio - the form builder interface.
For Administrators & Creators: This documentation is for users who design and create form templates. If you just need to send forms to contacts, see Forms.

Understanding Form Templates

A Form Template is the blueprint for your forms. It defines:
  • Form structure: Steps, fields, and validation
  • Portal experience: Welcome page, form pages, confirmation page
  • Notifications: Invitations, reminders, completion emails
  • Automations: Actions triggered when forms are submitted
  • Appearance: Branding, layout, and styling
  • Behavior: Conditional logic, calculations, integrations

Template Versioning

Form Templates support versioning, which allows you to iterate on designs while keeping existing forms stable.

How Versioning Works

  1. Create a template - Starts as version 1
  2. Make changes - Edit in draft mode
  3. Publish version - Lock this version for use
  4. Create new version - Continue iterating
  5. Publish when ready - New forms use latest published version

Version Properties

  • Version number: Auto-incremented integer (1, 2, 3…)
  • Published status: Published versions can be used in Form Presets
  • Deprecated status: Mark old versions as deprecated
  • Active version: Form Presets link to latest published version by default
Existing forms always use the version they were created with. Publishing a new version doesn’t change existing forms - only newly created forms use the new version.

Template Structure

Basic Information

Multi-Language Support

Templates support multiple languages through the locales and strings configuration: Locales Array
Strings Object
Users can switch languages in the portal, and all text will update accordingly.

Portal Pages

Form templates include three main portal pages that contacts see:

1. Welcome Page

The first page contacts see when opening the form. Configuration options:
Customizable elements:
  • Header image
  • Title text
  • Welcome message (HTML supported)
  • Start button text
  • Help button and text
  • Privacy policy link
A welcoming, clear welcome page increases completion rates. Explain what the form is for, how long it takes, and why you need the information.

2. Submit (Review) Page

Shown after all form steps are completed, before final submission. Configuration options:
Customizable elements:
  • Images for valid/invalid states
  • Titles for valid/invalid states
  • Messages and instructions
  • Button text
  • Confirmation message

3. Ending Page

Shown after successful form submission. Configuration options:
Customizable elements:
  • Confirmation image
  • Thank you title
  • Closing message
  • UX rating widget (optional)
  • Redirect URL (optional - redirect after N seconds)

Form Steps

The core of your template is the form itself, composed of steps and elements.

Creating Steps

Each step is a page in the form. Steps contain elements (fields) that collect data. Step structure:
Step properties:
  • id: Unique identifier (required)
  • label: Step name shown to users
  • enable: Show/hide the step (can use conditional logic)
  • elements: Array of form elements
Every step must contain at least one element with "type": "submit" or it won’t be submittable. Alternatively, use elements with submit_on_change enabled.

Conditional Steps

Use JSON expressions to show/hide steps based on data:
The step only appears if the condition evaluates to true.

Form Elements

Elements are the building blocks of your form - the actual input fields and content.

Element Structure

Common Element Properties

Element Types

No data collection - for display only
  • card: Content card with title and text
  • image: Display an image
  • paragraph: Text content block
Example:
Type: textSingle-line or multi-line text input.
Options:
  • multiline: Enable textarea
  • pattern: Regex validation
Type: checkboxSingle checkbox for yes/no or agreement.
Type: checkboxesMultiple options with checkboxes.
Type: radio or autocompleteSingle selection from multiple options.
Type: date or datetimeDate picker for selecting dates.
Type: fileFile upload field.
Options:
  • accept: Allowed file types
  • multiple: Allow multiple files
  • maxFiles: Maximum number of files
  • maxSize: Maximum file size in bytes
Type: ratingStar or numeric rating input.
Type: toggleSwitch/toggle input.
Type: hiddenStore data without displaying to user.
Type: submitButton to submit the step.

Conditional Elements

Show/hide elements based on other field values:

Variables

Variables allow you to define global values, static or computed, accessible throughout the form.

Defining Variables

Object format (no dependencies):
Array format (with dependencies):

Using Variables

Reference variables anywhere in the form using {variable_name}:
Do not use user, data, or anything starting with $ as variable names - these are reserved.

Automations

Automations are actions that trigger automatically based on form events.

Automation Structure

Automation Triggers

Available event triggers:
  • responses:created - Form response is created (draft)
  • responses:updated - Form response is updated
  • responses:completed - Form is completed/submitted
  • responses:declined - Form is declined
  • requests:expired - Form expires without completion
  • manual - Triggered manually by team member

Automation Actions

Send an email.
Available in email content:
  • Form data: {data.field_key}
  • User info: {user.email}, {user.given_name}, etc.
  • Form reference: {reference}
  • Variables: {variable_name}

Automation Delays

Add delays before triggering automations:

Notifications

Notifications are emails sent to contacts about the form itself (not from automations).

Notification Types

To Contact:
  • Invitations: When form is sent
  • Reminders: If form not completed
  • Confirmation: When form is submitted
To Team:
  • On submission: Notify team when form completed
  • On bounce: Notify if email bounces

Notification Configuration

Invitation Template

Configure the invitation email template:

Publishing Templates

Publish Process

  1. Create and test your template
  2. Validate all steps and elements work correctly
  3. Set published: true
  4. Template version is locked
  5. Can now be used in Form Presets

Template Validation

Before publishing, ensure:
  • All steps have submit buttons or auto-submit elements
  • Required fields are clearly marked
  • Conditional logic works as expected
  • All images and assets load
  • Multi-language strings are complete (if using)
  • Automations are correctly configured
  • Test submission works end-to-end

Best Practices

Most contacts will complete forms on mobile devices. Test your forms on small screens and ensure they’re easy to use.
Only ask for information you truly need. Each additional field decreases completion rates.
Break long forms into logical steps, but don’t create too many steps. 3-5 steps is usually optimal.
Use the help property to explain what you need. Especially important for complex or uncommon fields.
Always test the complete form flow before publishing. Submit test data and verify automations work.
Only show fields that are relevant. This keeps forms clean and improves completion rates.
Always send a confirmation when forms are completed. This builds trust and provides a receipt.
Don’t create new versions for small changes. Batch changes together to avoid version sprawl.

Next Steps

Form Presets

Configure presets from templates

Automations

Learn about automation actions

Forms

Understand form instances

Studio Guide

Complete guide to Penbox Studio