Skip to main content
Data operation actions allow you to interact with databases in your workflows. These actions support SQL databases (PostgreSQL, MySQL, SQLite) and MongoDB through configured integrations.
Before using data operations, ensure you have a database integration configured. See Configuration Reference for setup details.

fetch

Retrieves data from a database table using filters.

Database Integration

The SQL or MongoDB integration to read from.

Table

The database table or collection name to query.

Filters

Query filters to narrow down results. See Filter Syntax for available operators.

Single

Return a single result object instead of an array.

Fail If Empty

Treat no results as a failure, routing to the fail step. Note the default is true: unless you set this to false, a query that matches nothing fails the step.

Datasource Options

Additional datasource-specific options.

Output

{{ .step_id }} holds the rows the query matched, with the table’s own column names — one row when single is set, otherwise a list.

Example


save

Inserts a new record, or updates existing records, in a database table.
save is one action for both operations. When filters are provided, it updates every record they match. When filters are absent, it inserts a new record.

Database Integration

The SQL or MongoDB integration to write to.

Table

The database table or collection name to write to.

Fields

The data to write, as key-value pairs.

Filters

Filters identifying which records to update. Omit them to insert instead. See Filter Syntax for available operators.

Datasource Options

Additional datasource-specific options.

Output

{{ .step_id }} is an object with one field:

Insert Example

With no filters, save inserts:
If no id field is provided, a UUID is generated automatically. Read it back with {{ .create_user.id }}.

Update Example

With filters, save updates the records they match:

delete

Deletes records from a database table.

Database Integration

The SQL or MongoDB integration to delete from.

Table

The database table or collection name to delete from.

Filters

Filters to identify which records to delete. See Filter Syntax for available operators.

Datasource Options

Additional datasource-specific options.

Example


mongoquery

Executes native MongoDB queries with filter and projection support.

MongoDB Integration

The MongoDB integration to query.

Collection

The MongoDB collection name to query.

Filter Query

MongoDB filter query in JSON format.

Projection

MongoDB projection query in JSON format to select specific fields.

Fail If Empty

Treat no results as a failure, routing to the fail step.

Example

Dynamic filter example:
Use the stringescape template function when inserting user input into JSON queries to prevent injection attacks.

firestore

Stores documents in Google Cloud Firestore. Unlike the other data actions, it does not use an integration — it is configured with a service account directly.

Project ID

The Google Cloud project that owns the Firestore database.

Collection ID

The Firestore collection to write the document into.

Document Template

The document to write, as JSON. Use template syntax to fill in values.

Service Account

The Google service account credentials JSON. Use a secret rather than inlining it.

Output

{{ .step_id }} holds the document that was written, as the JSON text it was sent as.

Example


Filter Syntax

The fetch, update, and delete actions use a common filter syntax:

Available Operators

Multiple Filters Example


Next Steps

Actions Overview

Learn about action structure and chaining.

Vector Operations

Store and query vector embeddings.

Authentication

Secure your APIs with JWT and authentication.

Secrets Management

Securely store database credentials.