Form Steps
Collect structured input from users to feed into your workflow.
Overview
Form steps pause the workflow to collect information from the user. The collected values become inputs that subsequent steps can use. Forms support various field types for different kinds of data.
Pro tip: Use default values for optional fields so the workflow can run unattended when needed.
Configuration
Form steps contain an array of input definitions:
| Property | Type | Description |
|---|---|---|
| name | string | Field name (used as variable) |
| type | string | Input type (see below) |
| value | any | Current value (set at runtime) |
| defaultValue | any? | Default if not provided |
| description | string? | Help text shown to user |
| options | string[]? | Choices for select fields |
Field Types
Choose the right field type for your data:
| Type | Input | Use Case |
|---|---|---|
| text | Text input | Names, descriptions, short text |
| number | Numeric input | Quantities, amounts, counts |
| boolean | Checkbox/toggle | Yes/no decisions, flags |
| file | File upload | Documents, images, attachments |
| date | Date picker | Deadlines, events, dates |
| color | Color picker | Brand colors, design elements |
| url | URL input | Links, endpoints, references |
| select | Dropdown | Predefined choices |
Example Configuration
{
"id": "step-1",
"type": "form",
"name": "Project Details",
"inputs": [
{
"name": "projectName",
"type": "text",
"description": "Name of the project",
"value": null
},
{
"name": "priority",
"type": "select",
"description": "Project priority level",
"options": ["Low", "Medium", "High", "Critical"],
"defaultValue": "Medium",
"value": null
},
{
"name": "dueDate",
"type": "date",
"description": "Target completion date",
"value": null
},
{
"name": "includeAttachments",
"type": "boolean",
"description": "Include file attachments?",
"defaultValue": false,
"value": null
},
{
"name": "attachments",
"type": "file",
"description": "Upload relevant files",
"value": null
}
]
}Required vs Optional Fields
Fields without a defaultValue are required. The workflow will fail if these are not provided.
Required field (no default):
{ "name": "email", "type": "text", "value": null }Optional field (has default):
{ "name": "format", "type": "select", "defaultValue": "PDF", "value": null }Using Form Data in Subsequent Steps
Form inputs are automatically available to all following steps. Reference them in prompts by describing what data you need.
Prompt step after form:
"Using the project name and priority provided,
create a project brief. The due date is [dueDate]
and attachments are [if provided]."
The AI will have access to:
- projectName
- priority
- dueDate
- includeAttachments
- attachments (file reference)Execution Behavior
- Form steps always pause for user input (unless all fields have defaults)
- Default values are used when running via API/webhook without interaction
- File uploads are stored and accessible as URLs in subsequent steps
- Empty required fields cause the workflow to fail with an error
Best Practices
- Add descriptions to help users understand what each field expects
- Use select fields when there are specific valid options
- Set sensible defaults for optional fields
- Group related inputs into a single form step
- Keep form steps at the beginning of workflows when possible
Related
- Building Workflows - Overall workflow design
- Prompt Steps - Using form data in AI steps
- Webhook API - Passing inputs programmatically