core.table.*.
Use them when your workflows need durable, queryable records such as asset inventories, user allowlists, enrichment results, or investigation evidence.
Common workflow pattern
- Create the table once with a schema that fits your data and a unique index on the upsert column.
- Insert or upsert rows as new events arrive.
- Look up, search, or export rows later from another workflow step.
Column schema
core.table.create_table takes columns as a JSON array of column objects.
This is the same schema you use for tables that you later link to cases.
name: Required string. Use letters, numbers, and underscores, and start with a letter or underscore.type: Required uppercase string. UseTEXT,INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMPTZ,JSONB,SELECT, orMULTI_SELECT.nullable: Optional boolean. Defaults totrue.default: Optional value. It must match the column type.options: Optional array of strings. Required forSELECTandMULTI_SELECT, and invalid for other types.
type values match the custom tables picker, and case custom fields use the same storage types.
The case field picker surfaces raw JSONB through the URL kind and layers Long text on top of TEXT.
Create a table with a SELECT column:
FAQ
How do I insert more than 1000 rows into a table?
How do I insert more than 1000 rows into a table?
Split large imports into batches upstream, then run one
insert_rows action per batch.core.table.create_table
Create a new lookup table with optional columns.
columns takes the column objects described in
Column schema.Inputs
string
required
The name of the table to create.
array[object] | null
List of column definitions. Each item is an object with required
name and uppercase type, plus optional nullable, default, and options fields. Use TEXT, INTEGER, NUMERIC, BOOLEAN, DATE, TIMESTAMPTZ, JSONB, SELECT, or MULTI_SELECT. options is required for SELECT and MULTI_SELECT, and invalid for other types.Default: null.boolean
If true, raise an error if the table already exists.Default:
true.Examples
Create and inspect a tablecore.table.list_tables
Get a list of all available tables in the workspace.
Inputs
This action does not take input fields.Examples
Create and inspect a tablecore.table.get_table_metadata
Get a table’s metadata by name. This includes the columns and whether they are indexed.
Inputs
string
required
The name of the table to get.
Examples
Create and inspect a tablecore.table.update_table
Rename a table by name.
Inputs
string
required
The current name of the table to update.
string
required
The new table name.
Examples
Rename a tablecore.table.create_column
Add a column to an existing table.
Inputs
object
required
Column definition with required
name and uppercase type, plus optional nullable, default, and options fields. Use TEXT, INTEGER, NUMERIC, BOOLEAN, DATE, TIMESTAMPTZ, JSONB, SELECT, or MULTI_SELECT. options is required for SELECT and MULTI_SELECT.string
required
The table to add the column to.
Examples
Manage table schemacore.table.update_column
Update a table column’s name, type, nullability, default, index, or options.
Set update: {is_index: true} to create the table’s unique index on
the column. A table can have one single-column unique index:
creation fails if the column already contains duplicate values, and a
second is_index: true call raises Table cannot have multiple unique indexes.
Guard the step when a workflow repeats it; see
Tables.
Inputs
string
required
The current column name.
string
required
The table containing the column.
object
required
Partial column update. Supported fields:
name, type, nullable, default, is_index, and options.Examples
Create a unique index and upsertcore.table.delete_column
Delete a column from an existing table.
Inputs
string
required
The column name to delete.
string
required
The table containing the column.
Examples
Delete a columncore.table.lookup
Get a single row from a table corresponding to the given column and value.
Inputs
string
required
The column to lookup the value in.
string
required
The table to lookup the value in.
any
required
The value to lookup.
Examples
Look up rowscore.table.is_in
Check if a value exists in a table column.
Inputs
string
required
The column to check in.
string
required
The table to check.
any
required
The value to check for.
Examples
Look up rowscore.table.lookup_many
Get multiple rows from a table corresponding to the given column and values.
Inputs
string
required
The column to lookup the value in.
string
required
The table to lookup the value in.
any
required
The value to lookup.
integer
The maximum number of rows to return.Default:
100.Examples
Look up rowscore.table.search_rows
Search for rows in a table with optional filtering.
Inputs
string
required
The table to search in.
string | null
Cursor for pagination.Default:
null.string | null
Filter rows created before this time.Default:
null.integer
The maximum number of rows to return.Default:
100.boolean
If true, return cursor pagination metadata along with items.Default:
false.boolean
Reverse pagination direction.Default:
false.string | null
Text to search for across all text and JSONB columns.Default:
null.string | null
Filter rows created after this time.Default:
null.string | null
Filter rows updated after this time.Default:
null.string | null
Filter rows updated before this time.Default:
null.Examples
Search table rowscore.table.insert_row
Insert a row into a table.
Inputs
object
required
The data to insert into the row.
string
required
The table to insert the row into.
boolean
If true, update the row if it already exists (based on primary key).Default:
false.Examples
Insert, update, and delete rowscore.table.insert_rows
Insert multiple rows into a table.
Inputs
array[object]
required
The list of data to insert into the table.
string
required
The table to insert the rows into.
boolean
If true, update the rows if they already exist (based on primary key).Default:
false.Examples
Insert, update, and delete rowscore.table.update_row
Update a row in a table.
Inputs
object
required
The new data for the row.
string
required
The ID of the row to update.
string
required
The table to update the row in.
Examples
Insert, update, and delete rowscore.table.delete_row
Delete a row from a table.
Inputs
string
required
The ID of the row to delete.
string
required
The table to delete the row from.
Examples
Insert, update, and delete rowscore.table.download
Download a table’s data by name as list of dicts, JSON string, NDJSON string, CSV or Markdown.
Inputs
string
required
The name of the table to download.
string | null
The format to download the table data in.Default:
null.integer
The maximum number of rows to download.Default:
1000.