Skip to content
Last updated

A Table is a spreadsheet-like resource: rows, columns, views, and aggregations. It is flatter than an Object — it does not have record types, and it does not carry CRM-style activities like notes or tasks. It can still link to other resources (Objects or Tables) through a relation column, and it can hold files via a file column.

If you need a dataset that flows interact with (lookups, writes, conditionals) without the CRM-style overhead, use a Table. If you need a typed entity with multiple record types and full activity tracking, use an Object.

All tables endpoints require a USER API key. See Authentication.

Identity

FieldTypeNotes
idnumber
namestringInternal identifier. Use as :name in route params.
display_namestringUser-facing name.
typeenumAlways "table" (vs "object" for Objects).
custombooleantrue for tables you created.
descriptionstring?
emojistring?A Unicode emoji character (e.g. 📊, not an icon-name string).
icon_colorstring?Color name or hex.
field_countnumber?Number of columns.
created_atstringISO timestamp.
updated_atstringISO timestamp.

Detail responses include fields and views. They also include a record_types array for shape compatibility, but Tables always carry a single implicit record type — categorization is not exposed.

Columns

Tables use the same column types as Objects (see Objects → Fields). Allowed types in the Public API: string, number, boolean, date, dateOnly, select, relation (limited), file, avatar. Internal types are rejected.

Tables vs Objects

FeatureTablesObjects
Multiple record types
Relations to Objects / other Tables
Relations to Users
Notes attached to rows
Tasks attached to rows
file column type
Views
Aggregations
Exports (CSV / XLSX)

When in doubt: pick Object if records need record types, notes/tasks, or links to Users; pick Table for flatter datasets used by flows and workflows.

Sub-resources

Mounted under /public/v1/tables/{name}/...:

Sub-resourcePurpose
fieldManage columns.
optionManage select field options.
record / rowList, get, create, update, delete rows.
viewSaved view configurations.
aggregationPer-view aggregations.
exportExport rows as XLSX or CSV.

To attach files to a row, use a column of type file rather than a row-level activity.

Operations (top-level)

VerbPathPurpose
GET/public/v1/tablesList
POST/public/v1/tablesCreate
GET/public/v1/tables/{name}Detail
GET/public/v1/tables/{name}/schemaSchema-only
PATCH/public/v1/tables/{name}Update display name, emoji, color, description
DELETE/public/v1/tables/{name}Delete

CLI

frontline table list
frontline table get my_table
frontline table create my_table --data '{"displayName":"My Table","columns":[{"name":"Name","type":"string","metadata":{"format":"text"}}]}'
frontline table row create my_table --data '{"Name":"Acme"}'
frontline table export my_table --format csv