> ## Documentation Index
> Fetch the complete documentation index at: https://university.triggr-app.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data tables

> Keep simple registers, such as client renewals, in typed tables inside Studio, and let an AI assistant read and update them through MCP.

Data > Data Tables keeps small registers inside Triggr, such as client renewals, which you edit here or through an AI assistant connected by [MCP](/studio/mcp). Workflows, forms and internal apps don't read them; for data your workflows use, connect a [database](/studio/data/databases).

<Frame caption="Data tables: creating a client renewals register, adding rows and finding them again (1:29).">
  <video controls preload="none" playsInline className="w-full aspect-video rounded-xl" poster="/images/videos/studio-data-tables.jpg" src="https://mintcdn.com/triggr/GxrCQFDFNLmEMyJ1/images/videos/studio-data-tables.mp4?fit=max&auto=format&n=GxrCQFDFNLmEMyJ1&q=85&s=9e4c6ce18d0f10e92cc3628aa9e13ca6" data-path="images/videos/studio-data-tables.mp4" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/triggr/_d7ojda9vf8IHE31/images/studio/data/data-tables.png?fit=max&auto=format&n=_d7ojda9vf8IHE31&q=85&s=8a6507dfe83f10c0fce2029c6caa714c" alt="The Data page with the table Docs sample – Client renewals selected in the left rail, its slug badge, 3 rows · 5 columns, Search rows, Filter, Delete table and Add row, and rows for Initech (Premium, 80 seats, Nov 20, 2026, auto-renew ticked), Globex (Essentials, 12, Jan 15, 2027, not ticked) and Acme Corp (Pro, 45, Dec 1, 2026, ticked)." width="2368" height="648" data-path="images/studio/data/data-tables.png" />
</Frame>

## Example: a client renewals register

<Steps>
  <Step title="Create the table">
    Click **New table** and name the table. The first column starts as `title`: rename it, then click **Add column** for each of the others and choose its type. Tick Required for anything every row must have, and give a `select` column its options, separated by commas. Click **Create table**.

    <Frame>
      <img src="https://mintcdn.com/triggr/_d7ojda9vf8IHE31/images/studio/data/new-table.png?fit=max&auto=format&n=_d7ojda9vf8IHE31&q=85&s=c6b1c9eec8dc0a7df37dbf04adbc4000" width="580" alt="The New table dialog with Table name Docs sample – Client renewals and five columns: client (text, Required ticked), plan (select, options Essentials, Pro, Premium), seats (number), renewal_date (date) and auto_renew (boolean), with Cancel and Create table buttons." data-path="images/studio/data/new-table.png" />
    </Frame>

    The name and columns can't be changed on this page afterwards.
  </Step>

  <Step title="Add rows">
    Click **Add row**, fill in the fields and confirm.

    <Frame>
      <img src="https://mintcdn.com/triggr/_d7ojda9vf8IHE31/images/studio/data/add-row.png?fit=max&auto=format&n=_d7ojda9vf8IHE31&q=85&s=2550bf4e5341a0562bb8043eff9e1114" width="520" alt="The Add row dialog with client Acme Corp, plan Pro, seats 45, renewal_date 01/12/2026 and auto_renew switched On, and Cancel and Add row buttons." data-path="images/studio/data/add-row.png" />
    </Frame>
  </Step>

  <Step title="Find rows">
    Search matches any cell, a column heading sorts, and **Filter** narrows a `select` column. Hover over a row to edit or delete it, or tick rows to delete several.

    <Frame>
      <img src="https://mintcdn.com/triggr/_d7ojda9vf8IHE31/images/studio/data/filter-rows.png?fit=max&auto=format&n=_d7ojda9vf8IHE31&q=85&s=c869cc6627e1d2bf4599fcfb8a4f78eb" alt="The Filter rows panel open under the Filter button showing PLAN options Essentials, Pro and Premium with Pro chosen, and the table showing only Acme Corp." width="1856" height="316" data-path="images/studio/data/filter-rows.png" />
    </Frame>
  </Step>
</Steps>

| Column type | Holds |
| - | - |
| `text` | Any text |
| `number` | A number |
| `boolean` | On or off |
| `date` | A date, stored as `YYYY-MM-DD` |
| `datetime` | A date and time with a time zone, such as `2026-10-16T09:00:00Z`, filled in by an AI assistant through MCP. For dates you enter on this page, use `date` |
| `select` | One of the options you listed |
| `json` | Any JSON value |

## Use it from an AI assistant

Connect Claude Code, Codex or Cursor with an [MCP token](/studio/mcp) that includes the Datatables tools, then ask in plain words, naming the table by its slug. The page shows the slug in capitals next to the table's name, but it's lower case, such as `client-renewals`:

> Using the Triggr data table docs-sample-client-renewals, list the clients whose renewal\_date is before 1 January 2027, with their plan and whether they auto-renew.

> Add Umbrella Corp to the client renewals table: plan Essentials, 20 seats, renews 2027-03-31, auto-renew on.

The tools are `list_data_tables`, `get_data_table`, `query_data_table_rows`, `insert_data_table_row`, `update_data_table_row`, `delete_data_table_row`, `create_data_table` and `add_data_table_column`.

## FAQ

<AccordionGroup>
  <Accordion title="Can a workflow read or write a data table?">
    No. Keep data your workflows need in your own [database](/studio/data/databases) and use the Execute SQL step.
  </Accordion>

  <Accordion title="Why can't I see all my rows?">
    The page shows the newest 100 rows, and search and filters work on those. Ask an AI assistant through MCP for older rows.
  </Accordion>

  <Accordion title="Can I add a column later?">
    Not on this page. An AI assistant can, with `add_data_table_column`; existing rows leave it empty.
  </Accordion>

  <Accordion title="Can I import a spreadsheet?">
    Give an AI assistant connected through MCP the CSV and ask it to add each row.
  </Accordion>

  <Accordion title="Can I keep a table per client?">
    Add a `client` column, as in the example, and search for the client's name.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="“a table with slug '…' already exists”">
    Another table's name gives the same slug, for example `Client Renewals` and `client-renewals`. Choose a different name.
  </Accordion>

  <Accordion title="Select column “…” needs at least one option.">
    Type each `select` column's options, separated by commas, such as `Essentials, Pro, Premium`.
  </Accordion>

  <Accordion title="Column names must be unique">
    Two columns have the same name. Rename one.
  </Accordion>

  <Accordion title="“column '…' must be one of: …”">
    The value isn't one of the column's options. Pick one from the list; option names are case-sensitive.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.