---
title: "QuestDB Integration"
description: "Connect AI agents to QuestDB, the high-performance time-series SQL database. Agents run queries and DDL/DML over the REST API, export result sets as CSV, and validate connectivity."
url: https://flowrunner.ai/integrations/questdb
date_modified: 2026-08-01T02:40:32-07:00
---

# QuestDB

[Database](https://flowrunner.ai/integrations/category/databases-warehouses)

Connect AI agents to QuestDB, the high-performance time-series SQL database. Agents run queries and DDL/DML over the REST API, export result sets as CSV, and validate connectivity.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 3 actions · API key · available

[QuestDB website](https://questdb.io/) · [Platform Documentation](https://questdb.io/docs/) · Capability data verified 2026-07-14

1.  A scheduled flow needs the latest aggregated time-series metrics
2.  Agent runs Execute Query to compute the aggregate over the recent window
3.  Agent reads the dataset and column metadata into flow variables
4.  Agent compares the aggregate against the prior interval
5.  Agent posts the metric summary to the team via Slack
6.  Agent runs Export Query as CSV to hand a full result set to a spreadsheet step
7.  Any Execute Query that runs a DROP or unbounded DELETE against production pauses for approval

## What This Integration Enables

Agents query time-series metrics, events, and sensor data and feed the results into downstream automation, run DDL and DML as part of a workflow, export result sets as CSV, and validate connectivity before running production queries. Execute Query returns the executed query, a columns array of names and types, a dataset of rows, a row count, and server-side timings; the Row Limit parameter accepts either a first-N count or a 1-based inclusive range. Bulk CSV import is not exposed as an operation; to load data, agents use INSERT statements through Execute Query.

### Without FlowRunner

**Metrics locked in the DB**: Time-series data can only be seen through a console query

**Manual CSV exports**: Someone runs a query and downloads CSV to feed the next tool

**No connectivity check**: A production run fails late because credentials were wrong

### With FlowRunner

**Metrics in the flow**: Query results feed flow logic and channels directly

**CSV as a step**: Export Query as CSV hands a full result set to downstream processing

**Readiness up front**: Check Health validates the endpoint and credentials before real work

## Use Case Scenarios

### Scheduled metric summaries

On a schedule, the agent runs Execute Query to compute the latest aggregated metrics, compares them against the prior interval, and posts a summary to the team channel with Slack. The numbers arrive where the team already works, straight from the time-series store.

### Result export for reporting

The agent runs Export Query as CSV to dump a full result set, then loads it into a spreadsheet for reporting. If you also run a companion store, an agent can read source records with [CrateDB](https://flowrunner.ai/integrations/cratedb) and persist them into QuestDB with Execute Query as a separate step to keep the two in sync.

### Maintenance write with a human gate

An agent needs to drop or prune a table during maintenance. Before it runs a DROP or an unbounded DELETE against production through Execute Query, it does not act on its own. It routes the statement for approval and runs it only after a person confirms.

## Human-in-Loop Highlight

Execute Query runs DDL and DML as readily as it runs a SELECT, so a DROP TABLE or an unbounded DELETE against production is a place to bring in a person. FlowRunner's answer is human-in-the-loop, an execution pattern where the agent pauses on its own, assembles the context and the choices, routes to a human on their preferred channel, and resumes the moment they respond. When an Execute Query statement is a DROP, or a DELETE without a bounded predicate, against a table flagged as production, the agent pauses before sending it and asks through Slack: "This statement will `DROP TABLE trades`. Here is the full SQL. Approve or cancel?" The statement runs only after a person confirms, with the approver and timestamp captured in the run log. A connector can run any SQL; an orchestration layer knows which SQL should stop and ask.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via Slack

Human decides

Agent resumes with decision

## Agent Capabilities

3 actions

### Query

2

-   **Execute Query** Runs a SELECT plus DDL (CREATE, DROP, ALTER) and DML (INSERT, UPDATE) statement and returns the query, a columns array of \`{name, type}\`, a dataset of rows, a row count, and server-side timings. The Row Limit parameter accepts a first-N count or a 1-based inclusive range.
-   **Export Query as CSV** Runs a query and returns the full result set as CSV text with a header row, for spreadsheets, files, or downstream CSV processing.

### System

1

-   **Check Health** Runs a trivial \`SELECT 1\` and returns a healthy flag, the URL, and latency, validating that both the endpoint and the configured credentials work before a production query.

## Frequently Asked Questions

### What can FlowRunner do with QuestDB?

FlowRunner agents can run Execute Query, Export Query as CSV, and Check Health in QuestDB.

### Does connecting QuestDB to FlowRunner require OAuth?

No. QuestDB connects to FlowRunner with an API key, no OAuth flow required.

### Can QuestDB trigger a FlowRunner workflow automatically?

QuestDB doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at QuestDB?** This integration exposes QuestDB to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/questdb. Site index: https://flowrunner.ai/llms.txt
