Core Concepts
Platform hierarchy
OutDo organizes everything into a clear hierarchy. Understanding this structure is essential for working effectively with the platform.
Organization
└── Workspace
└── Module
└── Rail
└── View → Feature (data)
├── Columns (field definitions)
└── Rows (records)
| Level | What it is | Example |
|---|---|---|
| Organization | The top-level tenant. Represents a company or entity. | "Acme Corp" |
| Workspace | An isolated application environment within an organization. | "Sales", "Warehouse", "HR" |
| Module | A section within a workspace, shown as an icon in the side rail. | "Inventory", "Orders", "Reports" |
| Rail | A navigation entry within a module, linking to a view. | "All Products", "Low Stock", "Daily Report" |
| View | A visual presentation of data from a feature. | Table view, Kanban board, Dashboard |
| Feature | A data structure (like a table) that holds columns and rows. | "Products", "Orders", "Clients" |
| Column | A field definition within a feature, with type and configuration. | "Name" (text), "Price" (numeric), "Status" (select) |
| Row | A single data record within a feature. | One product, one order, one client |
How everything connects
The key to understanding OutDo is that data and presentation are separate.
A Feature defines what data exists — its columns, types, and rules. A View defines how that data is displayed — as a table, form, kanban board, or any other visualization.
This separation means:
- One feature can have many views. The same "Tasks" feature can be displayed as a table for managers, a kanban board for the team, and a calendar for scheduling.
- Views are fully configurable. Each view has its own filters, sorting, grouping, hidden columns, and layout settings — without changing the underlying data.
- Modules and rails organize navigation. They don't contain data themselves; they point to views that display feature data.
Relationships between features
Features can reference each other through Linked Select and Linked View components:
- A "Orders" feature can have a Linked Select column pointing to "Clients", creating a relationship between orders and clients.
- A "Client" form can embed a Linked View showing all orders for that client.
Variables
Both organizations and workspaces support custom variables — key-value pairs that can be referenced in integrations using template syntax like {{org.apiKey}} or {{ws.storeId}}. This allows the same integration configuration to work differently per workspace.
Data model overview
All data in OutDo is stored as JSON. Each row in a feature stores its field values in a flexible data object, with keys matching column names. This approach allows features to be reconfigured without database migrations — add or remove columns at any time, and existing data adapts.
Components determine how each column's data is entered and displayed. A column's component type (text field, select, date picker, formula, etc.) controls the input interface, validation rules, and display format. Changing a column's component type changes how users interact with that field across all views.
Permissions operate at the object level. Each user can be granted a role (admin, editor, viewer, restricted) on specific workspaces, modules, rails, views, or features. Permission templates and groups allow consistent access patterns across users.
Workflows add automation. Triggers fire on data changes, user actions, or schedules. Actions execute in sequence — creating records, calling APIs, mapping data, or showing notifications.
Integrations bring external data in. HTTP integrations fetch from REST APIs with field mapping. Excel integrations import spreadsheet data with column matching. AI Struct integrations use artificial intelligence to extract structured data from documents.