Skip to content

Storage Nodes

Storage nodes provide CRUD operations for persistent data stores. Data persists across flow executions, enabling stateful workflows.


Persistent Data stores are key-value databases scoped to your tenant. Each store is identified by a UUID and can hold any JSON-serializable data.


Store Add

Create a new record

Store Get

Retrieve record by key

Store Update

Update existing record

Store Delete

Delete record by key

Store Check

Check if record exists

Store Search

Query with filters

Store Count

Count records


All storage nodes share this base configuration:

{
data_store: string, // UUID of the persistent data store
params: {
key?: string, // Record identifier (required for most operations)
// ... operation-specific params
},
metadata?: object // Optional metadata
}

Module ID: ion.store.add

Creates a new record in the store.

params: {
key: string, // Unique identifier
value: any // Data to store
}
HandleDescription
outputCreated record
errorKey already exists or store error
{
"data_store": "550e8400-e29b-41d4-a716-446655440000",
"params": {
"key": "order_12345",
"value": {
"status": "processing",
"items": 3,
"total": 99.99
}
}
}

Module ID: ion.store.get

Retrieves a record by its key.

params: {
key: string // Record key to fetch
}
HandleDescription
outputFound record data
errorRecord not found or store error

Module ID: ion.store.update

Updates an existing record.

params: {
key: string, // Record key to update
value: any // New data (replaces existing)
}
HandleDescription
outputUpdated record
errorRecord not found or store error

Module ID: ion.store.delete

Deletes a record by key.

params: {
key: string // Record key to delete
}
HandleDescription
outputConfirmation
errorRecord not found or store error

Module ID: ion.store.check

Checks if a record exists without retrieving it.

params: {
key: string // Record key to check
}
HandleDescription
foundRecord exists
not_foundRecord does not exist
errorStore error

Module ID: ion.store.search

Queries records with filters.

params: {
filters: Array<{
field: string,
operator: string,
value: any
}>,
limit?: number,
offset?: number
}
HandleDescription
outputArray of matching records
errorInvalid query or store error

Module ID: ion.store.count

Returns the count of records matching criteria.

params: {
filters?: Array<Filter> // Optional filters
}
HandleDescription
outputCount result { count: number }
errorStore error

Module ID: ion.store.delete_all

Deletes all records in the store.

HandleDescription
outputConfirmation
errorStore error

[Webhook: Order Created] → [Store Add: order_{id}]
[Webhook: Order Updated] → [Store Update: order_{id}]
[Webhook: Order Fulfilled] → [Store Delete: order_{id}]
[Input] → [Store Check: key]
├── found → [Store Update]
└── not_found → [Store Add]
[Daily Trigger] → [Store Search: today's records] → [Iterator] → [Calculate] → [Report]

ErrorCause
”Missing ‘data_store‘“No store UUID provided
”Invalid data_store”Store UUID format invalid
”Persistent Data does not exist”Store not found
”node not configured properly”Missing params