Table block
Data view
Example. A table block over an Orders table. Search, CSV export and import, and an Add button sit in the top bar; the Status column shows the select field's option colors; each row ends in an Invoice action; a Mark shipped bulk action appears once rows are selected; the footer is the “pages” pagination mode.
The table block is the workhorse of most internal tools: rows of a table in a dense, searchable grid. It scales from a five-row checklist to tens of thousands of rows with pagination, grouping, and per-row actions.
Try it: Click a column header to sort, type in the search box, tick rows to reveal the bulk bar, and page through the footer.
Orders
8 rows
| #1042 | Nordic Supply AB | Shipped | €1,240.00 | ||
| #1041 | Beck & Söhne | Processing | €312.50 | ||
| #1040 | Lumen Studio | On hold | €868.00 | ||
| #1039 | Harbor Foods | Delivered | €2,088.00 | ||
| #1038 | Vega Clinic | Delivered | €540.00 |
Rows per page1–5 of 8
When to use it
- Records where people scan many fields at once — orders, tickets, inventory.
- Data that gets edited in place: mark columns editable and edits save as you type.
- Workflows that need CSV import/export or bulk actions over selected rows.
Settings
| Setting | Options | What it does |
|---|---|---|
| Columns | — | Which fields render, in which order. Drag to reorder — action columns live in the same list. |
| Editable columns | — | Columns rendered as inline inputs on every row. Edits write back after a short pause, gated by the viewer's update permission. |
| Reference quick-create | per column | Editable reference columns offer an “Add …” option that creates a row in the referenced table and links it to that row. On by default; disable it per column. |
| Sort | field + asc/desc | Default sort. Viewers can also click any column header to cycle ascending → descending → off. |
| Group by | up to 4 levels | Nest rows under group headers, each level optionally starting collapsed. |
| Group summary | count, sum, avg, min, max | The aggregate shown on each group header — row count by default; sum/avg need a number field, min/max also work on dates. |
| Search | on / off | A search box that filters rows as the viewer types. |
| Viewer filters | on / off | A Filters button in the top bar where viewers stack their own conditions (column, operator, value) on any visible column: contains, is, is not, greater than, is before, is any of, is empty, and so on. Date columns also take a relative value, so “is within this month” still means this month tomorrow. An email column can be filtered to “is me”, and so can a reference column pointing at your app’s users table when both tables live in the same data source; “me” is always the signed-in viewer, resolved on the server, so public links never offer it. Conditions combine with an And/Or switch, and groups nest conditions with their own And/Or (up to three levels, ten conditions in all). They always narrow your configured filter, never replace it, and the row count and CSV export follow them. Off by default. |
| Saved filters | on / off | Inside that Filters popover, viewers can name a set of conditions and pick it again later, keeping it to themselves or sharing it with everyone who can see the block. A saved filter follows the TABLE, so a block offers one only when it shows every column the filter uses; one whose column you later hide still applies, minus that condition, and says so. Picking a filter puts it in the page address, so a link opens the screen already filtered. Viewers can pin a personal default, and you can set the one everyone else opens on. On wherever viewer filters are on. |
| Default filter | app presets and shared filters | The saved filter this block opens on, for viewers who have not pinned their own. A link with a filter in it wins over both. Only app presets and filters shared with everyone can be picked here: a private one would resolve to nothing for everybody else. |
| Row click | record view | The record page a row opens when clicked. |
| Pagination | load more / pages | “Load more” appends rows on demand; “pages” adds a footer with page navigation, exact filtered counts, and a rows-per-page picker (default 25, 5–100). |
| Row expansion | — | Expand a row inline into related rows of another table, matched by a record filter against the parent row (up to 8 child columns). |
| Action columns | up to 3 | Per-row action buttons rendered as extra columns, anchored anywhere in the column order, icon-only if you like. |
| Bulk actions | up to 5 | Actions that run over all selected rows via row checkboxes. |
| CSV export / import | on / off | Let viewers download the current rows as CSV, or import new rows from a CSV file. |
Pagination rules
"Pages" mode needs at least 4 grid rows of height for its footer and can't combine with grouping (a group would span only the current page) — the publish check flags both cases.
Like every block, this one also has the shared block settings: an optional title (which shows as a heading above the block) with a description under it, auto-height, conditional visibility, and role-based visibility, plus the source table and record-filter settings shared by all data blocks.