Tables and records
Operations teams build tables, link records and compute fields.
Operations teams build tables, link records and compute fields.
Where to find it
Web: open Tables. Desktop: Business → Tables, using the same record paths. Disabled modules or missing read permission remove the navigation entry.
| Screen / tab | Web path | Usage | Desktop |
|---|---|---|---|
| Tables | /tables | List, view or tab | Native screen |
| Data | /data | List, view or tab | Native screen |
| Record details | /tables/[tableId] | Record or editor | Native screen |
| Record details | /tables/[tableId]/access | Record or editor | Native screen |
| Record details | /tables/[tableId]/sync | Record or editor | Native screen |
| Record details | /data/[id] | Record or editor | Native screen |
Start working
Step 1
Create groups/tables with names, descriptions and limits.
Step 2
Configure types, required/default values and choices.
Step 3
Edit/delete/bulk change/import rows.
Step 4
Select Grid/Form/Gallery/Kanban/Calendar/Timeline/Map.
Step 5
Configure Access, Sync and sharing.


Settings
Option-by-option configuration and screen paths: Settings guide.
- Custom fields ·
/settings/custom-fields
Permissions and limits
Before you start
Computed fields are not writable cells. Type conversion validates existing data. Not all declared limits have settings controls.
Role capabilities: Read (read), Write (write), Delete/archive (delete), Manage (manage), Import (import), Export (export), Comment (comment).
Own-record restrictions apply equally to lists, records and Era. Record state or missing data can refuse an otherwise permitted action.
Ask Era
Prepare a requests table with customer, owner, status and date.
Select relevant records for Era context. Era respects modules/roles; external or confirmation-sensitive work can stop for approval. Use era tools in the terminal to inspect currently available tools.
Automation and events
These declared events are available to module-event triggers. Subscribing does not configure the next operation; choose recipients, conditions and actions separately.
Operation details
The inventory includes record, configuration, visitor and background flows. IDs support Era/automation; not every row is a menu button. Asterisks mark required inputs. Unmapped rows do not imply a visible control.
| Operation and ID | Inputs | Permission | Screen or flow |
|---|---|---|---|
Add a table group · data.create_table_group | Name * | Manage | /tables |
Rename a table group · data.rename_table_group | Group *, Name, Position | Manage | /tables |
Delete a table group · data.delete_table_group | Group * | Manage | /tables |
Move a table to a group · data.move_table | Table *, Group | Manage | /tables |
Duplicate a table · data.duplicate_table | Table *, Name of the copy, Copy the records too | Manage | /tables |
Add a table · data.create_table | System name *, Display name *, Description, Icon, Kind, Attach to, Record type, Record limit | Manage | /settings/custom-fields, /tables |
Edit a table · data.rename_table | Table *, System name, Display name, Description, Icon | Manage | /data/[id] |
Delete a table · data.delete_table | Table * | Delete/archive | /data/[id], /tables |
Clear a table’s records · data.purge_rows | Table * | Delete/archive | Record/API/visitor flow; no separate screen button mapped |
Add a field · data.add_column | Table *, Label *, Key *, Type *, Shown as, Unit, Required, Filterable, Available as a column, Visible on the storefront, Help text, Description, Colour, Default, Order, Points at, Record type, Validation, Choices, How it is shown | Manage | /tables/[tableId], /tables/[tableId]/sync |
Edit a field · data.update_column | Field *, Label, Shown as, Unit, Required, Filterable, Available as a column, Visible on the storefront, Help text, Description, Colour, Default, Order, How it is shown, Validation, Archived | Manage | /data/[id], /settings/custom-fields, /tables/[tableId] |
Change a field’s type · data.change_column_type | Field *, New type * | Manage | /data/[id], /tables/[tableId] |
Remove a field · data.remove_column | Field * | Delete/archive | /data/[id], /settings/custom-fields, /tables/[tableId] |
Set as display value · data.set_display_field | Field * | Manage | /tables/[tableId] |
Edit the choices · data.set_select_options | Field *, Choices * | Manage | /tables/[tableId] |
Add a record · data.insert_row | Table *, Values * | Write | /tables/[tableId] |
Edit a record · data.update_row | Record *, Values * | Write | /tables/[tableId] |
Delete a record · data.delete_row | Record * | Delete/archive | /tables/[tableId] |
Move a record · data.move_row | Record *, After record | Write | /tables/[tableId] |
Fill in extra fields · data.set_record_values | Field group *, Record type *, Record *, Values *, Whole form | Write | /leads/[id] |
Set a custom field · data.set_field | Record type *, Record *, Field *, Value | Write | Record/API/visitor flow; no separate screen button mapped |
Remove a field group from a record · data.clear_record_values | Field group *, Record type *, Record * | Delete/archive | Record/API/visitor flow; no separate screen button mapped |
Change who may use a table · data.set_table_permission | Table *, Role *, Permission *, Granted * | Manage | Record/API/visitor flow; no separate screen button mapped |
Narrow who sees which rows · data.set_row_policy | Table *, Rule, Name *, Applies to *, Condition, Who it is for *, Active | Manage | /tables/[tableId]/access |
Remove a row rule · data.delete_row_policy | Rule * | Manage | /tables/[tableId]/access |
Import records · data.insert_rows | Table *, Records *, Only check the file, Skip rows with problems | Import | /tables/[tableId] |
Export records · data.export_rows | Table *, Filter, Search, Limit | Export | /tables/[tableId] |
Link to another table · data.create_relation | Table *, Links to *, Each record here… *, Field name here *, Field name on the other table, When a parent record is deleted | Manage | /tables/[tableId] |
Link records · data.link_records | Link field *, Record *, Records to link * | Write | /tables/[tableId] |
Unlink records · data.unlink_records | Link field *, Record *, Records to unlink * | Write | /tables/[tableId] |
Add a lookup, rollup or formula · data.add_computed_field | Table *, Kind *, Name *, Key, Through the link, Field of the linked table, Summary, Formula, Field the code carries, When clicked, Link, Button text, Button colour | Manage | /tables/[tableId] |
Edit a computed field · data.update_computed_field | Field *, Name, Formula, Summary, Field of the linked table, Field the code carries, When clicked, Link, Button text, Button colour | Manage | /tables/[tableId] |
Edit several records · data.update_rows | Table *, Per-record values, Records, Filter, Values | Write | /tables/[tableId] |
Delete several records · data.delete_rows | Table *, Records, Filter | Delete/archive | /tables/[tableId] |
Add or update records · data.upsert_row | Table *, Match on *, Values, Records | Import | /tables/[tableId] |
Press a button · data.press_button | Button *, Record * | Write | /tables/[tableId] |
Related guides
Field types and conversion
Steps, actions and related settings.
Views forms and preview
Steps, actions and related settings.
Relations lookup and rollup
Steps, actions and related settings.
Table access and imports
Steps, actions and related settings.
Settings
Options, screen paths and defaults.
Workflows
Operations managers connect triggered blocks on a canvas with conditions, loops and approval waits.
Tables
Tables — modules and detailed settings
Technical sources
packages/os-kernel/src/modules/data.ts, packages/os-kernel/src/modules/index.ts, apps/studio/lib/os/navigation.ts, apps/studio/lib/os/settings-groups.ts, apps/era-station/apps/web/src/era/business/screens.ts.