---
title: Overview
description: A grid of typed columns and rows in your workspace, for data your workflows read and write.
pageType: concept
---

import { Image } from '@/components/ui/image'
import { Card, Cards } from 'fumadocs-ui/components/card'
import { FAQ } from '@/components/ui/faq'

A **table** is a grid of typed columns in your workspace, like a spreadsheet with a schema. Use one to hold reference data, collect what your workflows produce, or store the structured records your agents read and write.

<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
  <Image src="/static/tables/tables-overview.png" alt="A table of typed columns: name, title, company, role" width={800} height={500} />
</div>

## Column types

Every column has a type, which decides how its values are stored and validated.

| Type | Holds | Example |
| --- | --- | --- |
| **Text** | A free-form string | `"Acme Corp"` |
| **Number** | A numeric value | `42` |
| **Boolean** | `true` or `false` | `true` |
| **Date** | A date | `2026-03-16` |
| **JSON** | An object or array | `{ "tier": "pro" }` |

Types are enforced as you enter values, so a Number column only takes numbers.

## Editing a table

Open the **Tables** section in the sidebar and click **New table** to create one. Add columns from the column header, type into a cell to edit it, and paste rows from a spreadsheet to bulk-load. Filter and sort from the toolbar without changing the underlying data. The editor has full keyboard support; see [keyboard shortcuts](/keyboard-shortcuts).

## Tables in workflows

A [Table block](/tables/using-in-workflows) reads and writes rows from inside a workflow: query rows for reference data, write results back, or process a batch. A [workflow column](/tables/workflow-columns) goes a step further and runs a workflow against each row on its own. Everything in a table is also available over the [REST API](/api-reference/getting-started).

## Next

<Cards>
  <Card title="Using tables in workflows" href="/tables/using-in-workflows" description="Read, write, and update rows with the Table block." />
  <Card title="Workflow columns" href="/tables/workflow-columns" description="Run a workflow against each row of a table." />
  <Card title="Keyboard shortcuts" href="/keyboard-shortcuts" description="Navigate and edit a table from the keyboard." />
</Cards>

<FAQ items={[
  { question: "Is there a row limit per table?", answer: "Tables are built for working datasets. For very large ones (100k+ rows), paginate your API reads or split the data across multiple tables." },
  { question: "Can I import data from a spreadsheet?", answer: "Yes. Copy rows from any spreadsheet and paste them straight into the table; the values are validated against the column types." },
  { question: "Do tables support formulas?", answer: "No. Tables store raw data. Use workflow logic (a Function or Agent block) to compute values and write them back." },
  { question: "Can multiple workflows write to the same table?", answer: "Yes. Writes are atomic at the row level, so multiple workflows can write to the same table at once." },
  { question: "How do I reference a table from a workflow?", answer: "Use the Table block: select the table, choose an operation (query, insert, update), and configure the fields." },
  { question: "Are tables shared across workspace members?", answer: "Yes. Tables are workspace-scoped and available to all members with the right permissions." },
  { question: "Can I undo changes?", answer: "In the table editor, Cmd/Ctrl+Z undoes recent cell edits, row insertions, and row deletions. Changes made through the API are not part of the editor's undo history." },
]} />
