Table User-defined data tables for storing and querying structured data
Tables allow you to create and manage custom data tables directly within Sim. Store, query, and manipulate structured data within your workflows without needing external database integrations.
Why Use Tables?
No external setup : Create tables instantly without configuring external databases
Workflow-native : Data persists across workflow executions and is accessible from any workflow in your workspace
Flexible schema : Define columns with types (string, number, boolean, date, json) and constraints (required, unique)
Powerful querying : Filter, sort, and paginate data using MongoDB-style operators
Agent-friendly : Tables can be used as tools by AI agents for dynamic data storage and retrieval
Key Features:
Create tables with custom schemas
Insert, update, upsert, and delete rows
Query with filters and sorting
Batch operations for bulk inserts
Bulk updates and deletes by filter
Up to 10,000 rows per table, 100 tables per workspace
Tables are created from the Tables section in the sidebar. Each table requires:
Name : Alphanumeric with underscores (e.g., customer_leads)
Description : Optional description of the table's purpose
Schema : Define columns with name, type, and optional constraints
Type Description Example Values stringText data "John Doe", "active"numberNumeric data 42, 99.99booleanTrue/false values true, falsedateDate/time values "2024-01-15T10:30:00Z"jsonComplex nested data {"address": {"city": "NYC"}}
Required : Column must have a value (cannot be null)
Unique : Values must be unique across all rows (enables upsert matching)
Create and manage custom data tables. Store, query, and manipulate structured data within workflows.
Query rows from a table with filtering, sorting, and pagination
Parameter Type Required Description tableIdstring Yes Table ID filterobject No Filter conditions using MongoDB-style operators sortobject No Sort order as {column: "asc"|"desc"} limitnumber No Maximum rows to return (default: 100, max: 1000) offsetnumber No Number of rows to skip (default: 0)
Parameter Type Description successboolean Whether query succeeded rowsarray Query result rows rowCountnumber Number of rows returned totalCountnumber Total rows matching filter limitnumber Limit used in query offsetnumber Offset used in query
Insert a new row into a table
Parameter Type Required Description tableIdstring Yes Table ID dataobject Yes Row data as JSON object matching the table schema
Parameter Type Description successboolean Whether row was inserted rowobject Inserted row data including generated ID messagestring Status message
Insert or update a row based on unique column constraints. If a row with matching unique field exists, update it; otherwise insert a new row.
Parameter Type Required Description tableIdstring Yes Table ID dataobject Yes Row data to insert or update
Parameter Type Description successboolean Whether row was upserted rowobject Upserted row data operationstring Operation performed: "insert" or "update" messagestring Status message
Insert multiple rows at once (up to 1000 rows per batch)
Parameter Type Required Description tableIdstring Yes Table ID rowsarray Yes Array of row data objects to insert
Parameter Type Description successboolean Whether batch insert succeeded rowsarray Array of inserted rows with IDs insertedCountnumber Number of rows inserted messagestring Status message
Update a specific row by its ID
Parameter Type Required Description tableIdstring Yes Table ID rowIdstring Yes Row ID to update dataobject Yes Data to update (partial update supported)
Parameter Type Description successboolean Whether row was updated rowobject Updated row data messagestring Status message
Update multiple rows matching a filter condition
Parameter Type Required Description tableIdstring Yes Table ID filterobject Yes Filter to match rows for update dataobject Yes Data to apply to matching rows limitnumber No Maximum rows to update (default: 1000)
Parameter Type Description successboolean Whether update succeeded updatedCountnumber Number of rows updated updatedRowIdsarray IDs of updated rows messagestring Status message
Delete a specific row by its ID
Parameter Type Required Description tableIdstring Yes Table ID rowIdstring Yes Row ID to delete
Parameter Type Description successboolean Whether row was deleted deletedCountnumber Number of rows deleted (1 or 0) messagestring Status message
Delete multiple rows matching a filter condition
Parameter Type Required Description tableIdstring Yes Table ID filterobject Yes Filter to match rows for deletion limitnumber No Maximum rows to delete (default: 1000)
Parameter Type Description successboolean Whether delete succeeded deletedCountnumber Number of rows deleted deletedRowIdsarray IDs of deleted rows messagestring Status message
Get a single row by its ID
Parameter Type Required Description tableIdstring Yes Table ID rowIdstring Yes Row ID to retrieve
Parameter Type Description successboolean Whether row was found rowobject Row data messagestring Status message
Get the schema definition for a table
Parameter Type Required Description tableIdstring Yes Table ID
Parameter Type Description successboolean Whether schema was retrieved namestring Table name columnsarray Array of column definitions messagestring Status message
Filters use MongoDB-style operators for flexible querying:
Operator Description Example $eqEquals {"status": {"$eq": "active"}} or {"status": "active"}$neNot equals {"status": {"$ne": "deleted"}}$gtGreater than {"age": {"$gt": 18}}$gteGreater than or equal {"score": {"$gte": 80}}$ltLess than {"price": {"$lt": 100}}$lteLess than or equal {"quantity": {"$lte": 10}}$inIn array {"status": {"$in": ["active", "pending"]}}$ninNot in array {"type": {"$nin": ["spam", "blocked"]}}$containsString contains {"email": {"$contains": "@gmail.com"}}
Multiple field conditions are combined with AND logic:
{
"status" : "active" ,
"age" : { "$gte" : 18 }
}
Use $or for OR logic:
{
"$or" : [
{ "status" : "active" },
{ "status" : "pending" }
]
}
Specify sort order with column names and direction:
Multi-column sorting:
{
"priority" : "desc" ,
"name" : "asc"
}
Every row automatically includes:
Column Type Description idstring Unique row identifier createdAtdate When the row was created updatedAtdate When the row was last modified
These can be used in filters and sorting.
Resource Limit Tables per workspace 100 Rows per table 10,000 Columns per table 50 Max row size 100KB String value length 10,000 characters Query limit 1,000 rows Batch insert size 1,000 rows Bulk update/delete 1,000 rows
Category: blocks
Type: table
Tables are scoped to workspaces and accessible from any workflow within that workspace
Data persists across workflow executions
Use unique constraints to enable upsert functionality
The visual filter/sort builder provides an easy way to construct queries without writing JSON