Skip to main content

Data Tables

Data Tables

Description

Data Tables are lightweight, persistent, schema‑defined storage components built into Koodisi. They allow you to manage structured data such as ID maps, configuration, sync checkpoints, and reference lists—without the need for external databases.

The new Tables menu combines both Lookups and Data Tables under a unified interface with separate tabs.


Benefits

  • Reusable data logic: Centralize your ID mappings, sync checkpoints, and configuration records.
  • High performance: Optimized for quick access with optional TTL (Time to Live) caching.
  • Declarative querying: Visual tools to filter, sort, group, and aggregate data without code.
  • No external DB required: Eliminates infrastructure burden for transient or reference data.
  • Seamless integration: Fully compatible with workflow activities.
  • Scoped & secure: Bound by environment and role‑based access controls.

How It Works

Creating Tables

  1. Go to the Tables tab in the main navigation.
  2. Choose to either create a table from scratch or import data from a CSV.
  3. Define the schema: column names, types, and TTL in minutes.
  4. Save the table for immediate use across workflows.

Using Tables in Workflows

You can use purpose‑built activities to interact with your Data Tables:

  • DataTableQuery – Retrieve data using filters, sorting, aggregation, and pagination.
  • DataTableInsert – Insert new rows.
  • DataTableUpdate – Update existing records based on matching conditions.
  • DataTableUpsert – Insert or update data based on unique key(s).
  • DataTableDelete – Remove specific rows using filter conditions.
  • DataTableTruncate – Bulk delete entire tables or filtered subsets.

DataTableQuery

Description

Retrieves data from tables using filters, sorting, aggregation, and pagination options.

Configuration

FieldRequiredDescriptionExample
NameYesThe name of the activity. This name must be unique in a workflow.DataTableQuery
DescriptionNoA clear description to guide execution and collaboration.Retrieves customer data by status
Data TableYesA predefined resource for accessing the data table.CustomerConfig

Columns Tab

FieldRequiredDescriptionExample
ColumnYesThe name of the column in the tablename, age
TypeAutoData type of the columnstring, number
KeyNoIndicates if it's a key columnSelected/Deselected

Conditions Tab

FieldRequiredDescriptionExample
Condition GroupNoNamed groups of conditions (AND/OR logic)group_1
ColumnYesThe column to apply the condition tostatus
TypeAutoData type of the columnstring
OperatorYesComparison operator=
Filter ValueYesThe value to compare againstactive

Sorting Tab

FieldRequiredDescriptionExample
Column NameNoThe column to sort bycreatedAt
Sort TypeYesDirection of sortAscending

Aggregation Tab

FieldRequiredDescriptionExample
FunctionYesAggregation functionCOUNT
ColumnYesColumn to aggregateid
Alias NameNoName for the aggregated resulttotalCount

Input Schema

FieldRequiredData TypeDescriptionExample
parametersNoObjectMapping fields for columns/conditions/pagination{ \"limit\": 10 }

Output Schema

FieldRequiredData TypeDescriptionExample
dtQueryOutputYesObjectContainer for all query results
recordsYesArrayThe rows returned
totalCountYesIntegerTotal number of records matching the query156
hasMoreYesBooleanIndicates if more records exist beyond this pagetrue
nextOffsetNoIntegerOffset for retrieving the next page100
executionMsYesIntegerQuery execution time in milliseconds350

DataTableUpsert

Description

Inserts new records or updates existing ones based on unique key(s).

Configuration

FieldRequiredDescriptionExample
NameYesUnique name of the activity within a workflow.DataTableUpsert
DescriptionNoClear description for guidance and collaboration.Sync product inventory
Data TableYesPredefined resource for accessing the data table.Inventory
TTLYesTime‑to‑live for the stored data (seconds).3600

Columns Tab

FieldRequiredDescriptionExample
ColumnYesThe name of the columnsku, quantity
TypeAutoData typestring, integer
KeyYesColumn(s) used to identify recordsSelected

Input Schema

FieldRequiredData TypeDescriptionExample
recordsYesArrayArray of records to be upserted[ { "sku": "A1", "quantity": 5 } ]

Output Schema

FieldRequiredData TypeDescriptionExample
dtUpsertOutYesObjectContainer for upsert operation results
rowsAffectedYesIntegerNumber of rows inserted or updated5

DataTableInsert

Description

Inserts new rows into a data table.

Configuration

FieldRequiredDescriptionExample
NameYesUnique name of the activity.DataTableInsert
DescriptionNoClear description for guidanceBatch import employees
Data TableYesPredefined resource for accessing the data table.Employees
TTLYesTime‑to‑live for the stored data (seconds).1800

Columns Tab

FieldRequiredDescriptionExample
ColumnYesThe name of the columnfirstName, email
TypeAutoData typestring
KeyNoIndicates if it’s a key columnDeselected

Input Schema

FieldRequiredData TypeDescriptionExample
recordsYesArrayArray of records to inserting[ { "firstName": "Jane" } ]

Output Schema (extendable)

FieldRequiredData TypeDescriptionExample
rowsAffectedNoIntegerNumber of rows successfully inserted10
successNoBooleanIndicates operation successtrue
errorsNoArrayError details if insertions failed

DataTableDelete

Description

Removes specific rows from a data table using filter conditions.

Configuration

FieldRequiredDescriptionExample
NameYesUnique name of the activity.DataTableDelete
DescriptionNoClear description for guidanceRemove inactive customers
Data TableYesPredefined resource for accessing the data table.Customers

Conditions Tab

FieldRequiredDescriptionExample
ConditionGroupNoNamed group of conditions (AND/OR logic)expiryCheck
ColumnYesThe column to apply the conditionstatus
TypeAutoData typestring
OperatorYesComparison operator=
Filter ValueYesThe value to compareinactive
AddConditionNoButton to add additional conditions within a group
AddConditionGrpNoButton to add new condition groups

Input Schema

FieldRequiredData TypeDescriptionExample
conditionsYesObjectContainer for all condition groups

Output Schema (extendable)

FieldRequiredData TypeDescriptionExample
rowsAffectedNoIntegerNumber of rows successfully deleted5
successNoBooleanIndicates operation successtrue
errorsNoArrayError details if deletions failed

DataTableTruncate

Description

Bulk deletes all data from a table while maintaining its structure.

Configuration

FieldRequiredDescriptionExample
NameYesUnique name of the activity.DataTableTruncate
DescriptionNoClear description for guidanceReset staging data
Data TableYesPredefined resource for accessing the data table.StagingRecords

Output Schema (extendable)

FieldRequiredData TypeDescriptionExample
successNoBooleanIndicates operation successtrue
rowsAffectedNoIntegerNumber of rows deleted1250
executionTimeMsNoIntegerTime taken to execute the operation (ms)350

TTL and Temporary Storage

All Data Tables are temporary storage governed by the TTL you configure (in minutes). Once the TTL period expires:

  • Records are automatically deleted and will not be returned by any query or activity.
  • In the event of any infrastructure failure (e.g. disk outage, service restart), data within the TTL window may be unrecoverable. Integrations relying on that data must be designed to recreate or re-fetch it as needed.

When to Use Lookups vs. Data Tables

  • Data Tables: Ideal for execution data—transient data created and accessed during the runtime of an integration (e.g., sync checkpoints, temporary buffers, session states).
  • Lookup Tables: Designed for persisted reference data or secure storage, such as credentials, mapping definitions, or metadata. Use vault-backed lookups only when you need encryption or strict access control; otherwise, non-vault lookup tables offer better performance.

Operator Mapping Table

Display LabelOperator ValueApplies To
Equal To (=)=all types
Not Equal To (!=)!=, <>all types
Greater Than (>)>number, date
Less Than (<)<number, date
Greater Than or Equal To (>=)>=number, date
Less Than or Equal To (<=)<=number, date
BetweenBETWEENnumber, date
InINmultiple types
Not InNOT INmultiple types
LikeLIKEstring
Not LikeNOT LIKEstring
Is NullIS NULLall types
Is Not NullIS NOT NULLall types