Workspace Modes

Data

The Airtable-style data mode — typed tables, inline editing, and the native People table.

Data is the structured-data mode. It shows your tables flat on the canvas with inline editing, sorting, and filtering.

Layout

CanvasDataCard renders:

  • Toolbar — filter, add column, add row, delete table.
  • Table grid — the active table rendered flat on the canvas (no card wrapper). Click any cell to edit.
  • DataTableDropdown in the breadcrumb — searchable list of every table in the workspace, with icon, row count, SYS badge for system tables, and a new-table button.

State is lifted to CanvasWorkspace so the breadcrumb and grid share the same activeTableId.

Creating a table

Click the breadcrumb dropdown → + New table. The NewTableModal asks for:

  • Name and slug
  • Lucide icon
  • Initial columns

Columns can be added later via the toolbar.

Column types

The full registry lives in src/modals/recordEditor/colTypes.jsx. There are 15 column types — see Data tables for the full table. The short list:

text, number, phone, email, price, percent, date, datetime, time, boolean, select, multi-select, link, child-link, formula.

Inline editing

Click any cell to edit. Updates are optimistic — the cell updates immediately, then persists. On error, the cell rolls back and a toast explains.

Drag a row's grip to reorder. Save status indicators ("Saving..." / "Saved" / "Save failed") appear in the toolbar.

The People table

Your org's first table is People, created automatically via the ensure_people_user_table() SQL function. It has typed Postgres columns optimized for scale (100k+ rows):

  • first_name, last_name, email, phone, company, job_title
  • tags (text array)
  • source, status, opted_in_sms, opted_in_email
  • city, state, country
  • last_contacted_at, conversation_count
  • custom_fields JSONB for user-defined columns

The Data mode shows it like any other table, but with a SYS badge. The SMS mode and Campaigns mode read from it directly.

Tables as agent context

Agents can query your tables with the built-in search_user_tables tool. That's how you give an agent access to your CRM, ticket queue, or product catalog without writing any glue code.

Where to go next

On this page