Form Builder & Field Types
Design contributor forms with 12 configurable field types, input modes, and LLM generation options.
The Form Builder is the configuration panel for subtask and review nodes. It lets you design the form that contributors see when they work on a task.
Opening the Form Builder
- In the Pipeline Builder canvas, click on a Subtask or Review node.
- The Fields tab opens in the right-side panel.
- Add, reorder, and configure fields using the visual interface.
Adding fields
Click + Add Field at the bottom of the field list and select a field type. You can also click Add Group to create a field group that batches multiple fields together for shared LLM processing (shared model, temperature, context sources, and tool settings).
Each field has:
- Title — the display name shown to contributors. Required for all fields.
- Helper Text — optional markdown help text shown below the field. Only shown for Input mode fields.
- Optional — toggle to make the field optional (fields are required by default). Only shown for Input mode fields.
- Dynamic Entries — toggle to allow contributors to add multiple entries of the field (a repeating list). When enabled, you can set min and max entry counts. The field value is stored as a JSON array. Not available for Predefined, Static, LLM Response, or Criteria fields.
- Data Source — where the field gets its value (see Data Sources below).
- Field-specific config — each field type has its own configuration options (e.g., min/max constraints, language selection, option lists). See Field Types below for details.
Reordering fields
Drag fields by their header row to reorder them. The order in the builder matches the order contributors see in the form.
Data sources
Each field has a Data Source that determines where its value comes from. Click the Data Source selector on a field to choose one of four options:
| Data Source | Description |
|---|---|
| User Input | Contributors fill in this field when working on the task. |
| Dataset | Data mapped from a CSV column at task creation. Displayed as read-only context. |
| Static | Same fixed value shown in all tasks. Set by the pipeline designer in the builder. |
| LLM | Value generated by an LLM using a prompt. See LLM field-level config for settings and Prompt Configuration for the full prompt taxonomy. |
Criteria fields are a special case — their data source is determined by the
criterion type (human_rating, llm_judge, or programmatic), not by the Data Source
selector above. See Criteria below.
Field types
Short Text
A single-line text input.
| Option | Description |
|---|---|
| Placeholder | Hint text shown when empty |
| Min Characters | Minimum character count |
| Max Characters | Maximum character count |
Long Text
A multi-line text area with rich text editing enabled by default (bold, italic, lists, links).
| Option | Description |
|---|---|
| Placeholder | Hint text |
| Min Words | Minimum word count |
| Max Words | Maximum word count |
Code
A code editor with syntax highlighting powered by Monaco Editor.
| Option | Description |
|---|---|
| Language | Programming language for syntax highlighting |
Supported languages: Plain text, Python, JavaScript, TypeScript, JSON, SQL, HTML, CSS, YAML, Bash, Lean 4, and LaTeX.
Boolean
A yes/no toggle. No additional configuration options — contributors must always select a value.
Numeric
A number input with optional constraints.
| Option | Description | Default |
|---|---|---|
| Min | Minimum value | — |
| Max | Maximum value | — |
| Step | Increment step | 1 (min 0.01) |
| Display as rating | Render as a star rating instead of a number input | Off |
Datetime
A date and time picker.
| Option | Description | Default |
|---|---|---|
| Include Time | Whether to show time selection alongside the date | Off |
Select
A dropdown where the selection (who picks the value) and the options (where the list of choices comes from) are configured independently using a split panel.
Selection (left panel) — controlled by the field's Data Source:
- User Input — contributor picks from the options.
- Dataset — the chosen value comes from a CSV column.
- Static — a fixed value set by the pipeline designer.
- LLM — an LLM generates the selection.
| Setting | Description | Default |
|---|---|---|
| Allow Multiple | Allow selecting more than one option | Off |
| Allow Other | Allow a free-text "Other" response. Only shown with static options. | Off |
| Require Selection | Whether the contributor must select an option. Only shown for dynamic User Input fields. | On |
Options (right panel) — where the list of choices comes from:
| Source | Description |
|---|---|
| Define here | Options are set at design time in an editable list. You can paste multiple options at once (one per line or comma-separated). |
| Dynamic (per-task) | Options are generated per-task from one of three sources: Contributor input (contributors define options in the form), LLM generated (an LLM produces the options list), or From dataset (options loaded from a CSV column). |
The Dynamic toggle is only available when the selection data source is User Input or LLM. When the selection is Dataset or Static, options are always static. When the selection is LLM, the "Contributor input" option source is not available.
Rating
A numeric scale for scoring (e.g., 1–5 stars). Like Select, the selection (who provides the rating) and the labels (where scale point descriptions come from) are configured independently using a split panel. Step is always 1.
Selection (left panel) — controlled by the field's Data Source:
| Setting | Description | Default |
|---|---|---|
| Min | Scale minimum | 1 |
| Max | Scale maximum (max range size: 20) | 5 |
| Require Selection | When off, the field only displays labels without requiring a rating value. Only shown for dynamic User Input fields. | On |
Labels (right panel) — optional text descriptions for each scale point (e.g., 1 = "Bad", 5 = "Great"):
- Show labels toggle — when off, no labels are shown and the label panel is hidden.
- When on, choose a label source:
| Source | Description |
|---|---|
| Define here | Labels are set at design time with a text input for each scale point. |
| Dynamic (per-task) | Labels are generated per-task from one of three sources: Contributor input (contributors define what each value means), LLM generated (an LLM produces the labels), or From dataset (labels loaded from a CSV column as a JSON object like {"1": "Bad", "5": "Great"}). |
The Dynamic toggle is only available when the selection data source is User Input or LLM. When the selection is LLM, the "Contributor input" label source is not available.
Ranking
A drag-to-reorder list where contributors rank items.
| Option | Description | Default |
|---|---|---|
| Source Mode | Inline (items defined in builder) or Field reference (items sourced from other fields). Only shown for Input or LLM Response mode. | Inline |
| Items | Editable list of items to rank (inline mode) | — |
| Field Refs | References to other fields whose values become the items to rank (field reference mode) | — |
| Label Mode | How labels display: field_title, custom, or both (field reference mode) | field_title |
Pairwise
A side-by-side comparison where the contributor chooses between two options (A vs. B).
| Option | Description | Default |
|---|---|---|
| Source Mode | Inline (labels defined in builder) or Field reference (content from other fields). Only shown for Input or LLM Response mode. | Inline |
| Label A / Label B | Display labels for each option (inline mode) | A / B |
| Field Ref A / Field Ref B | References to fields whose values become options A and B (field reference mode) | — |
| Label Mode | How labels display: field_title, custom, or both (field reference mode) | field_title |
Criteria
An evaluation criteria field linked to the criteria library or defined inline. The field auto-resolves to the appropriate input type (e.g., a numeric rating, a boolean pass/fail) based on the criterion definition.
| Option | Description |
|---|---|
| Criterion | Select from the library or create inline. |
| Criterion Type | Auto-set based on the criterion: human_rating, llm_judge, or programmatic. |
| Criterion Version | Optionally pin to a specific version for reproducibility. |
File Upload
An upload field for files.
| Option | Description | Default |
|---|---|---|
| Allowed Types | MIME type filter: Images, Audio, Video, PDF, CSV | All types |
| Max File Size | Maximum file size in MB (max 2048) | 1024 MB |
| Max Files | Maximum number of files (1–1000) | 100 |
| Display Mode | How to display files: Series (stacked) or Carousel | Series |
| Hide Filename | Hide the filename from contributors and LLMs | Off (filenames shown) |
Template variables (placeholders)
You can reference values from upstream nodes in LLM prompts using template variables. Variables use the placeholder syntax:
{{placeholder_name}}Where placeholder_name is a human-readable identifier (snake_case) that maps to a
specific field on a specific node. The Pipeline Builder provides an autocomplete menu —
type {{ in any supported text area to browse available variables from upstream nodes
and the current node.
How placeholder mapping works
When you insert a variable, the system:
- Creates a placeholder name derived from the field title (e.g.,
user_response). - Maps that placeholder to a specific node and field reference internally.
- At runtime, resolves the placeholder to the actual field value.
If you use a Prompt Library prompt, the prompt's predefined placeholders appear in a Map Placeholders section where you wire each placeholder to a pipeline field.
Field groups
Field groups batch multiple fields together for shared LLM processing. When fields are in a group, they share:
- Model — a single model for all fields in the group.
- Temperature — a shared temperature setting.
- Context sources — the same upstream field context.
- Tool settings — shared tool endpoints and max rounds.
To create a group, click Add Group in the Fields tab, then drag fields into the group. Each group can have an optional label.
Field validation
The builder validates field configurations in real-time and surfaces errors in the header bar. Common validations include:
- Fields require a display title.
- Subtask nodes with human-input fields require an assignee role.
- Numeric constraints must be logically consistent (min < max).
- Select fields in static mode must have at least one option.
- LLM Response fields must have a model configured (at the node or field level).
This is not an exhaustive list — the builder checks many additional constraints depending on field type and configuration. Click the error indicator in the header to see all current issues.
Node Types
Subtask, Review, Logic Gate, Start, and End nodes — behavior, configuration, and connection rules for every node type.
Prompt Configuration
How to configure prompts for every type of LLM-powered field — model response fields, inline evaluations, and criteria — including context mechanisms, placeholder mapping, and system prompts.