DataTable
The DataTable node performs operations on internal data tables managed within the Qinfinite platform. Data tables are structured, schema-defined storage that can be used for reference data, lookup tables, staging areas, and cross-workflow data sharing. They behave like simple database tables without requiring an external database connection.
Before You Use This Node
| What you may need | Where to set it up | Why it matters |
|---|---|---|
| Reusable business data | Datasets | Prepare shared data once, then use it in DataTable-related workflows. |
| Common table IDs, filters, or status values | Global Variables | Keep repeated table values consistent across workflows. |
Actions
| Action | Description |
|---|---|
datatable:insertRows | Insert one or more rows into a data table |
datatable:updateRows | Update existing rows that match a filter |
datatable:deleteRows | Delete rows that match a filter |
datatable:upsertRows | Insert rows or update them if a matching key exists |
datatable:getRows | Retrieve rows with optional filtering and sorting |
datatable:ifRowExists | Check whether any rows match a given condition |
datatable:insertRows
Inserts one or more new rows into the data table.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | Yes | ID of the data table |
rows | array | Yes | Array of row objects with column name-value pairs |
datatable:updateRows
Updates rows that match the specified filter.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | Yes | ID of the data table |
filter | object | Yes | Filter criteria to match rows for update |
values | object | Yes | Column name-value pairs to set on matched rows |
datatable:deleteRows
Deletes rows that match the specified filter.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | Yes | ID of the data table |
filter | object | Yes | Filter criteria to match rows for deletion |
datatable:upsertRows
Inserts rows if they do not already exist (based on a key column), or updates them if they do.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | Yes | ID of the data table |
keyColumn | string | Yes | Column used to determine whether a row already exists |
rows | array | Yes | Array of row objects |
datatable:getRows
Retrieves rows from a data table with optional filtering, sorting, and pagination.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | Yes | ID of the data table |
filter | object | No | Filter criteria to match rows |
sort | object | No | Sort specification (e.g., {"name": "asc"}) |
limit | integer | No | Maximum rows to return. Defaults to 100 |
offset | integer | No | Number of rows to skip for pagination |
columns | array | No | List of column names to include in the result |
datatable:ifRowExists
Checks if any rows match the given filter and returns a boolean result. This is useful for conditional branching in workflows.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | Yes | ID of the data table |
filter | object | Yes | Filter criteria to check |
Connection
Requires a DataTable connection. This typically points to the internal Qinfinite data store and is pre-configured in most environments. Configure under Connections > DataTable in the Global Configurator if a custom endpoint is needed.