Sheets
Structured data with typed columns, formulas, multiple views, and simultaneous editing.
Sheets
A sheet holds structured data. Columns have types, formulas recalculate, and the same rows can be read as a grid, board, calendar, timeline or chart. Several people can work in one sheet at the same time without overwriting each other, because every change describes the specific cells it touches.
Collaboration
- Simultaneous editing: every change is an operation naming the exact cells it touches. Concurrent edits to different cells both apply; concurrent edits to the same cell resolve by server order.
- Presence: see who is in the sheet, where their cursor is, and which cell they are typing into.
- Comments: comment on a row or a cell, reply in a thread, resolve when
done.
@-mentions arrive as normal Coline notifications. - Offline safety: edits queue while you are disconnected and flush on reconnect. Nothing is dropped silently.
Columns
Text, number, currency, percent, rating, progress, duration, email, phone, checkbox, date, URL, select, multi-select, person, attachment, auto-number, created time, updated time, formula, relation, lookup, and rollup.
- Person columns resolve to workspace members.
- Attachment columns link Drive files.
- Relation columns link records in another table; lookup and rollup read through those links.
Views
Grid, board, calendar, gallery, timeline, chart, pivot, and form. Each view has its own filters, sorts, grouping, hidden columns, row height and conditional formatting. The underlying data is shared.
Charts support bar, line, area, scatter and pie with real axes and legends.
Formulas
Write = in a cell or define a formula column. The formula bar offers function
and column suggestions as you type. Recalculation is incremental: editing a cell
only recomputes the formulas that actually depend on it.
Automations
Create rules that run server-side when data changes:
- Triggers: a row is created, a cell changes, or a field becomes a specific value.
- Conditions: the same filter operators used by views.
- Actions: set a field, clear a field, stamp the current time, copy one field to another, or create a row.
Automations write through the ordinary edit path, so their changes are versioned, broadcast live and undoable. Each rule shows its recent runs, including skips and failures.
Version history
Every change is recorded with who made it and when. Save a named version before a large edit, compare it against the current state cell by cell, and restore it. Restoring saves the current state first, so it is itself reversible.
Permissions
Drive controls who can reach a sheet. Within a sheet you can additionally set per-person roles (owner, editor, commenter, viewer) and protect specific columns or rows so only owners can change them. Protections are enforced on the server.
Import and export
- Import: CSV, TSV, Excel (
.xlsx) and JSON. Column types are inferred from the data, so numbers, dates, currency and select lists arrive ready to sort and summarise. Import into a new table or append onto an existing one. - Export: CSV, Excel and JSON. Exports honour the active view: filters, sorts, column order and hidden columns all carry through.
Kairo integration
- "Read this sheet and tell me what's incomplete"
- "Make me a project tracker with 20 rows"
- "Fill the category column based on the company names"
- "Remove duplicate rows and normalise the dates"
- "Add a formula column for total = price × quantity"
Kairo edits sheets through the same operation path people do, so its changes appear live for collaborators and can be undone.
Clean data
The Clean data panel fixes common problems in a table: remove duplicate rows, trim whitespace and collapse repeated spaces, change case, fill blanks from the row above, and find and replace. It also shows a column's blank cells and duplicate values.
API
Sheets are available through the REST API under /api/v1/workspaces/{workspaceSlug}/sheets: list, create, read the workbook structure, read and write rows (/rows?tableId=…), apply operations (/ops), import, and export (/export?format=csv|xlsx|json). See the endpoint reference.