Skip to main content
Tables are the built-in structured data store behind 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

  1. Create the table once with a schema that fits your data and a unique index on the upsert column.
  2. Insert or upsert rows as new events arrive.
  3. 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. Use TEXT, INTEGER, NUMERIC, BOOLEAN, DATE, TIMESTAMPTZ, JSONB, SELECT, or MULTI_SELECT.
  • nullable: Optional boolean. Defaults to true.
  • default: Optional value. It must match the column type.
  • options: Optional array of strings. Required for SELECT and MULTI_SELECT, and invalid for other types.
The documented 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

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 table

core.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 table

core.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 table

core.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 table