Data & knowledge

Tables

The structured business memory your AI workforce reads and writes: typed columns, AI-enriched columns that fill from agent runs, and row-event triggers that fire workflows, all under least-privilege access.

A Table is the structured data store your AI workforce reads from and writes to. It is a typed grid of rows and columns, scoped to a workspace, that agents can query and update at run time. Where a Knowledge Base holds read-only narrative text for semantic search, a Table holds discrete facts: one row per record, one typed column per attribute.

Two things make a Table more than a spreadsheet. First, a column can be AI-enriched, meaning it is computed by an agent instead of typed by hand. Second, a row event can fire a trigger that runs an agent automatically. A Table is therefore both the memory your workers draw on and the workbench they act on.

When to use a table

Reach for a Table whenever a job needs durable, queryable state that persists between runs and can be shared across agents. It is the difference between a source of truth that outlives any single conversation and output that vanishes when a chat ends. Typical uses:

  • Hold a working list of records, such as leads, tickets, documents, or accounts, that agents enrich and update over time.
  • Add an AI-enriched column (a summary, score, category, or risk flag) that an agent computes for every row.
  • Auto-process each new row on arrival, classifying, routing, or notifying, with a row-created trigger.
  • Give an agent a read-only reference table, such as a lookup or catalog, that it can query mid-run.
  • Relate one table to another with a foreign key so agents can join across records.
  • Import a spreadsheet to seed a table, then export the enriched result back out.

Because every column is typed and every write is attributed, a Table gives your workers a shared record that stays consistent and auditable as many agents act on it.

How a table flows

The point of a Table is that it fills and acts on itself. An agent run writes rows; AI-enriched columns hydrate from that run; a row event fires a trigger; the trigger hands off to the next workflow.

Agent rundoes the work
Writes rowsrecords facts
AI-enriched columnshydrate from the run
Row-event triggeron insert / update
Next workflowruns an agent
An agent writes rows into the table; its AI-enriched columns hydrate with computed values; a row-event trigger fires on insert, update, or a condition; and the next workflow runs. Every write is attributed to the agent that made it.

Where tables live

All of your tables appear on the Tables page, the workspace-wide index. Each table is a card showing its schema (column chips, with AI-enriched columns flagged), its metrics (rows, AI columns, last write, and how many agents use it), and its live triggers. From here you can search by table or column name, filter by capability, and open any table into its Table View. The header carries the actions to create a table, import one from the library, or import a CSV.

app.turtleaicoworker.com/tables
The Tables list showing table cards with schema chips, metrics, and triggers
The Tables list: every table in the workspace, with schema, metrics, and triggers at a glance.click to enlarge

Step by step

  1. Create a table and add typed columns

    From the Tables list, choose Create table. Give the table a name (the display label), an ID (the machine identifier agents reference, usually auto-derived from the name), and an optional description that agents read when deciding whether to query it. Then build the schema one column at a time in the column builder: each column has a name and a type, and selecting a column loads its settings in the config panel.

    Make one column the primary key: turn Primary on and the builder locks Required and Unique on automatically, since a primary key can be neither blank nor duplicated. For any other column you can set Unique (no duplicate values) or Required (the row cannot save without a value) to enforce data quality.

    app.turtleaicoworker.com/tables/new
    The Create new table builder with the identity bar, columns list, and the column type grid
    Create new table: name the table, then build columns in the list with the type grid and per-column settings.click to enlarge
  2. Pick a column type

    Selecting a column shows the column type grid. Pick the type that matches what the column holds: Text for labels, Number for metrics, Date for timestamps, Select for one choice from a fixed set, Foreign Key to link into another table, and more. Two types add a configuration block: a Foreign Key asks for a referenced table and lookup column; a Select asks for its option list. See the reference below for every type.

    The column type grid showing the available column types with one selected
    The column type grid: choose from text, number, date, select, foreign key, AI-enriched, and more.click to enlarge
  3. Add an AI-enriched column

    To have the model derive a field instead of storing it by hand, add a column and set its type to AI Enrich. An AI-enriched column is created empty. You wire the agent that computes it, and its input sources, after the table exists, from Manage columns in the Table View. Once wired, a trigger runs that agent and writes its output into the column (see the triggers step below).

  4. Add, edit, and delete a row

    Open a table to reach the Table View, the single-table grid. To add a row, choose Add row in the toolbar (shortcut N); a blank row editor opens with a field per column. To edit a cell, click the row to slide in the right-hand row drawer, where every field is inline-editable; make your changes and choose Save changes. To delete a row, open its drawer and choose Delete row, or tick one or more rows to raise the selection bar and choose Delete for a bulk removal.

    app.turtleaicoworker.com/tables/leads
    The Table View data grid with typed columns and a color-coded AI-enriched column
    The Table View: the data grid, with typed cells and a color-coded AI-enriched column. Click a row to open its drawer.click to enlarge
  5. Filter, sort, and save views

    The view actions shape which rows you see without touching the data. Filter builds rows of column, operator, value (equals, contains, not equals, is empty), combined with AND by default and switchable to OR, applied live. Sort stacks multiple levels, each ascending or descending, with a primary column and tie-breakers. The density picker (Compact, Cozy, Tall) trades rows-on-screen against readability. An export scoped to the current view respects any active filter and sort.

  6. Add a row-event trigger

    Triggers are the automation heart of a table: when an event occurs on a row, run an agent, feed it mapped input columns, and write its output back to mapped columns. From the toolbar, open Triggers, then Add new trigger. Give it a name, choose the event, choose the agent to run, map inputs (columns into agent inputs) and output (agent output into a column), and optionally add a condition that gates the run.

    The event options are:

    • When a row is created, on any new insert.
    • When a row is updated, when any field on a row changes.
    • When a column changes, when a specific column's value changes.
    • When a column changes to a specific value, when a column reaches a target value.
    • When a row is deleted, when a row is removed.
    • On a schedule, when a cron time is reached, with no row event.
  7. Give an agent access and set R/C/U/D permissions

    An agent can only touch a table you grant it. You connect a table to an agent on the Agent Editor, on its Tables tab, where each grant carries per-table Read, Create, Update, and Delete permissions. Grant only the operations the agent's job needs: a reporting agent may read only, while an enrichment agent reads and updates. Because access is least-privilege, an agent has no rights to a table until you add it, and every write it makes is attributed and traced back to the run.

Column type reference

Every column has a type that decides what values it accepts and what extra configuration it needs. The table below lists the column types available in the schema builder and how each behaves.

Column typeTypeWhat it does
TexttextNames, IDs, and short strings. Can be marked unique or required.
Long texttextA paragraph of free text, for notes and descriptions.
NumbernumberCounts, metrics, and scores. Renders right-aligned.
CurrencynumberA money amount, formatted as currency.
DatedateA calendar date, rendered as a mono date.
SelectchoiceOne choice from a fixed option set you define in the options block.
Multi-selectchoiceMany choices from a defined set. Uniqueness does not apply.
BooleanflagAn on / off flag (shown as Checkbox in the edit modal). Uniqueness does not apply.
URLlinkA web link.
EmailemailAn email address, rendered with a mail icon.
FileuploadAn uploaded document. Uniqueness does not apply.
Foreign KeyrelationA reference into another table. Configured with a referenced table and a lookup column; uniqueness does not apply since a key naturally repeats.
AI EnrichcomputedA value the model fills in from an agent run rather than one you type. Starts empty; wired to its agent from Manage columns. Uniqueness does not apply.

Reshaping a table later

A table's schema is not fixed at creation. Open a table and choose Columns to reach Manage columns, a reorderable list of every column with its type, constraint badges, and inline edit and delete actions. Drag by the grip to reorder, use the pencil to open the Edit Column modal for any change of name, type, or setting, and Add column to append a new one. For an AI-enriched column, this is where you connect the agent that computes it and its input sources.