A data table stores structured records — customer details, order status, price lists — that your flows and AI agents can read at runtime. This article covers the day-to-day work with the records inside a table: viewing them, adding, editing and deleting rows, exporting the table to CSV, and the limits a table runs into as it grows.
Creating a table and defining or changing its columns is separate work, covered in Creating a Data Table.
📝 Note: Data Tables is a tenant-level module and is enabled per tenant. If Data Tables does not appear in the main navigation, the module is not enabled for your tenant. You also need a table that already exists — this article starts from one.
📝 Note: Data Tables carries a Beta badge in the navigation: "Data Tables is in Beta. Features and limits may change."
Opening a table's rows
Open Data Tables in the main navigation and click the table's name in the list. The table's detail page shows its rows.

1. Breadcrumb: Shows which table's rows you are looking at.
2. Edit Schema: Opens the table's columns for editing. Existing columns are partially locked there — schema work is outside this article.
3. + Add Row: Opens the Add New Row panel above the grid. See Adding a row below.
4. Id: A system column. Every row gets a server-generated Id when it is created. It is never editable and never changes.
5. Your columns: One column per column you defined, in the order of the schema.
6. DateCreated: A system column, stamped when the row is created.
7. DateModified: A system column, empty until the row is edited — it shows a dash (—) on a row that has never been changed.
8. Row actions: The edit and delete icons at the end of each row.
9. Total count: The footer under the grid shows the number of rows in the table as "N total".
How values are shown
| Column type | How the grid renders it |
|---|---|
| Text, Long Text | The stored text |
| Number | Trailing zeros are trimmed — a stored 64.90 is shown as 64.9 |
| Boolean | A green tick for True, a red cross for False |
| DateTime | The stored date and time |
| Empty value | A dash (—), as on an unedited DateModified |
📝 Note: A dash means the cell holds no value — leaving a field empty in the Add New Row panel stores NULL, not empty text. When a flow filters on such a column, the Data Table node's is empty condition matches both NULL and empty text on Text and Long Text columns, but only NULL on Number, Boolean and DateTime columns.
📝 Note: Rows always come back in the order they were created, oldest first. Sorting the grid by a column does not reorder them. If you need rows in a particular order at runtime, use the Data Table node's own sorting rather than relying on what this screen shows.
Adding a row
Click + Add Row. The Add New Row panel opens full width above the grid — it is not a side drawer — with one input per editable column laid out in a wrapping row.

1. Column name and type chip: Each field carries its column name above it and a small chip naming the column's type: text, longText, number, boolean or dateTime.
2. Inputs: One per editable column. The input you get depends on the column's type:
| Type chip | What you enter |
|---|---|
text |
Free text, up to 200 characters |
longText |
Free text, up to 8,000 characters |
number |
A number; decimal values are accepted |
boolean |
A True / False picker |
dateTime |
A date picker |
3. Cancel and Save: At the right of the panel. Save writes the row and closes the panel; the grid refreshes and a "Row added successfully." message confirms it.
4. Close (×): At the top right of the panel — the same as Cancel. Both discard what you typed without asking.
The three system columns — Id, DateCreated and DateModified — never appear in this panel. As the schema screen says: "System columns are automatically added to every table and cannot be edited. They are shown in the table detail view but are not editable when adding or editing rows." On save, the new row is given an Id and a DateCreated automatically, and its DateModified stays empty until the row is first edited.
Example
For a support-ticket table with the columns ticketNumber (Text), category (Text), issueSummary (Long Text), resolutionHours (Number), isResolved (Boolean) and openedAt (DateTime), one row is added as:
| Field | Value |
|---|---|
| ticketNumber | TCK-50975 |
| category | Billing |
| issueSummary | Customer asked for a payment link for invoice INV-2026-07-4412. |
| resolutionHours | 2.50 |
| isResolved | True |
| openedAt | 8/5/2026 12:00 AM |
After saving, the row appears in the grid with a generated Id, today's DateCreated, a dash under DateModified, a green tick under isResolved, and 2.5 under resolutionHours.
Editing a row
Click the edit icon on the row. The same panel opens, titled Edit Row, with the row's current values filled in. Change what you need and click Save; a "Row updated successfully." message confirms it.

📝 Note: Editing a row stamps its DateModified, which is how the dash on that row is replaced. Id and DateCreated are not touched by an edit — a row keeps the Id it was created with, and any flow or agent that stored that Id keeps pointing at the same row.
Deleting a row
Click the delete icon on the row. A confirmation asks Delete Row? — "This row will be permanently deleted. This action cannot be undone." Confirm, and a "Row deleted." message appears.
⚠️ Warning: Deleting a row is permanent. There is no undo and no recycle bin — the row is removed from the table immediately, and any flow that looked it up by Id will stop finding it.
Exporting to CSV
On the Data Tables list, the table's row offers Export CSV, which opens the Export Data Table dialog.

1. Information notice: "System columns (Id, DateCreated, DateModified) are excluded from the export by default to prevent duplicate columns when the file is re-imported."
2. Include system columns (Id, DateCreated, DateModified): Off by default, and off again every time the dialog is opened. Turn it on when you want the system columns in the file — for an audit extract, or to reconcile rows against Ids your flow stored. With it on, Id is written as the first column and DateCreated and DateModified as the last two.
3. Buttons: Export produces the file; Cancel closes the dialog without exporting.
The export is designed to be read back in by the CSV import, so the file is written in a fixed, locale-independent format:
| Encoding | UTF-8 with a byte order mark |
| Line endings | CRLF |
| Quoting | Minimal — values are quoted only when they need to be |
| Numbers | Invariant format, so 129.5 regardless of your regional settings |
| Booleans | Lowercase true / false |
| Dates | ISO format |
💡 Tip: Leave Include system columns off for any file you intend to import again. With the system columns in the file, the import reads Id, DateCreated and DateModified as three ordinary columns of your own, and the new table ends up with duplicates of columns the platform would have added anyway.
📝 Note: Importing a CSV creates a new data table. There is no import into an existing table, so an export-edit-import round trip gives you a second table rather than updated rows in the first one. To change rows in place, use the Edit Row panel.
Limits
| Item | Limit |
|---|---|
| Rows per data table | 50,000 |
| Storage per data table | 25 MB |
| Storage per tenant, across all data tables | 100 MB |
| Data tables per tenant | 20 |
| Columns per data table | 20 |
| Text value | 200 characters |
| Long Text value | 8,000 characters |
These are the maximum values. A tenant can be configured with lower row and storage limits, so check what your own tenant reports if a table stops accepting rows earlier than the table above suggests.
Two places show you where a table stands: the Data Tables list has a Total Rows column per table and a Data Tables Storage bar for the whole tenant, and the row grid's footer shows the table's row count as "N total".
When a table is full, adding a row is refused with "Row limit reached. This table has reached the maximum of 50,000 rows.", and a CSV import that would exceed the limit is rejected before it starts with "A data table can have at most 50,000 rows. Your file has N."
⚠️ Warning: The row limit applies to writes from your flows as well as to this screen. Once a table is full, a Data Table node that inserts a new row at runtime fails and takes its failed output — so a table that quietly fills up stops accepting data from live conversations, not just from the admin panel. Watch Total Rows on tables your flows write to, and make room by deleting rows you no longer need.
💡 Tip: A table that grows without bound is usually one whose flow inserts a row per conversation. Export it before you clear it out: an export with Include system columns turned on keeps the Ids and the creation dates, which is what you need if the data is ever queried again.
