Read and write your workspace's persistent data tables directly from workflow nodes.
Data Tables are a built-in feature. No external connection or authentication is required.
Data Table nodes provide access to the workspace's persistent tabular storage directly within the workflow canvas. Unlike node outputs (which only exist during a single run), data in a table persists indefinitely and is accessible by any workflow in your workspace.
For full documentation of data tables including how to create tables and manage their schema, see the Data Tables page.
Actions
Get Rows
Returns rows from a data table, optionally filtered and sorted.
| Input | Required | Description |
|---|---|---|
| Table | Yes | The data table to read from |
| Filters | No | Column conditions (e.g. status = "pending") |
| Sort By | No | Column to sort results by |
| Sort Direction | No | asc or desc |
| Limit | No | Maximum number of rows to return |
| Output | Type | Description |
|---|---|---|
rows | array | Matching rows as objects |
rowCount | number | Number of rows returned |
Insert Row
Adds a new row to a data table.
| Input | Required | Description |
|---|---|---|
| Table | Yes | Target data table |
| Row Data | Yes | Column → value mapping for the new row |
| Output | Type | Description |
|---|---|---|
rowId | string | ID of the inserted row |
row | object | The full inserted row |
Upsert Row
Inserts a new row or updates an existing one if a match is found on specified key columns.
| Input | Required | Description |
|---|---|---|
| Table | Yes | Target data table |
| Match Columns | Yes | Columns to use as the unique key |
| Row Data | Yes | Values to set (for both insert and update paths) |
| Output | Type | Description |
|---|---|---|
rowId | string | Row ID |
row | object | The resulting row |
created | boolean | Whether a new row was inserted (true) or an existing row was updated (false) |
Update Rows
Updates all rows matching a filter.
| Input | Required | Description |
|---|---|---|
| Table | Yes | Target data table |
| Filters | Yes | Conditions identifying rows to update |
| Updates | Yes | Column values to set on matched rows |
| Output | Type | Description |
|---|---|---|
updatedCount | number | Number of rows modified |
Delete Rows
Removes all rows matching a filter.
| Input | Required | Description |
|---|---|---|
| Table | Yes | Target data table |
| Filters | Yes | Conditions identifying rows to delete |
| Output | Type | Description |
|---|---|---|
deletedCount | number | Number of rows removed |
Count Rows
Counts rows matching optional filter conditions.
| Input | Required | Description |
|---|---|---|
| Table | Yes | Data table to count |
| Filters | No | Optional filter conditions |
| Output | Type | Description |
|---|---|---|
count | number | Number of matching rows |
Find First Row
Returns the first row matching a filter, or null if no match is found.
| Input | Required | Description |
|---|---|---|
| Table | Yes | Data table to search |
| Filters | Yes | Filter conditions |
| Sort By | No | Column to sort by (determines which row is "first") |
| Sort Direction | No | asc or desc |
| Output | Type | Description |
|---|---|---|
row | object | The first matching row, or null |
found | boolean | Whether a matching row was found |