Feature Columns
What are columns
A Column (also called a field or component) defines a single piece of data within a feature. Each column has a type that determines how data is entered, validated, stored, and displayed.
When you add a column to a feature, you are defining: what kind of data this field holds, what rules apply to it, and how it appears in forms, tables, and other views.
Adding and configuring columns
Adding a column
- In the Admin panel, go to Features and select your feature.
- Click Add component.
- A visual chooser appears showing all available component types with icons and labels.
- Select the type you need (e.g., Text Field, Select, Date, Numeric Field).
- Enter a label — the display name users will see (e.g., "Product Name", "Unit Price").
- OutDo generates the internal name automatically from the label.
- Click Save.
Configuring a column
After saving, additional configuration becomes available:
- Main tab — Edit the label and internal name.
- Configuration tab — Component-specific settings (format, options, linked features, formulas, etc.). This tab is only available after the first save.
- Options tab — Field behavior toggles (read-only, required).
Each component type has its own configuration options. See the Components section for details on each type.
Managing columns in the grid
The column management view displays all columns in a grid with these properties:
| Column | Description |
|---|---|
| Name | Internal identifier |
| Label | Display name |
| Order | Numeric position that determines display sequence in forms and tables |
| Read-only | Toggle — field cannot be edited by users |
| Required | Toggle — field must be filled to save a record |
| Hidden | Toggle — field stores data but is not displayed in forms |
| Component | The component type with its icon |
You can toggle read-only, required, and hidden directly from the grid by clicking the checkbox cells. Order values can be edited inline.
Column types
OutDo provides 18 component types organized into categories:
Data input
| Component | Purpose |
|---|---|
| Text Field | Single or multi-line text input |
| Numeric Field | Numbers with decimals, currency, or percentage |
| Select | Dropdown with predefined options |
| Linked Select | Dropdown populated from another feature's data |
| Checkbox | Boolean true/false toggle |
| Date | Date, time, or date-time picker |
| File | File upload with type and size validation |
| User | User assignment from workspace members |
| Document | Structured document (e.g. invoice) with header/line-item editing |
| Auto Match | Fuzzy search matching against another feature |
Display and computed
| Component | Purpose |
|---|---|
| Description | Rich text content with formatting |
| ID | Auto-generated identifier (UUID or incremental) |
| Formula | Calculated values from other columns |
| Linked View | Embedded view of related records |
Interactive
| Component | Purpose |
|---|---|
| Checklist | Task list with progress tracking |
| Counter | Dynamic fraction or percentage from related data |
| Timer | Duration tracking with start/stop controls |
| Workflow Button | Button that triggers a workflow from a row, form, or card |
Column properties
Required
A required column must have a value before a record can be saved. Required fields are marked with an indicator in forms. Leave this off for optional fields.
Read-only
A read-only column displays its value but cannot be edited by users. Useful for system-generated values, imported data that shouldn't be modified, or fields managed by workflows.
Hidden
A hidden column exists in the data model and stores values, but is not displayed in forms. Use this for internal fields, system metadata, or archived information that should be preserved but not shown to users.
Order
The order value (integer) determines the display sequence of columns in forms and table headers. Lower numbers appear first. You can reorder columns by editing their order values in the grid.
Initial value
Some component types support a default initial value that pre-fills the field when creating a new record. For example, a Date component can default to "Now" (current date/time).