Type identifier:
integration:sql:queryCategory: Integration Operations
The Integration - SQL Query node executes SQL queries against a database connection established by an Integration - SQL Connect node. It supports parameterised queries to prevent SQL injection, validates queries for dangerous operations, and returns results matching a configurable schema.
Handle | Type | Description |
|---|---|---|
| SQL connection | Database connection from Integration - SQL Connect node. |
|
| (Dynamic) The SQL query to execute. |
| varies | Dynamic handles for query parameters. |
Handle | Type | Description |
|---|---|---|
|
| Array of result rows matching the row schema. |
| control | Triggered when query completes successfully. |
| control | Triggered when query fails. |
Option | Type | Default | Description |
|---|---|---|---|
Connection Mode | enum |
| Use incoming connection handle or shared SQL credential. |
SQL Credential | credential id | - | Required when Connection Mode is shared credential. |
Query |
| - | SQL query with optional named parameters ( |
Parameters | array | - | Parameter definitions with names and types. |
Rows Schema | object schema | - | Schema defining the structure of result rows. |
Allow Dangerous Operations |
|
| Allow DDL operations (such as DROP and CREATE). |
Parameters are referenced in queries using colon prefix (:paramName) and defined in the configuration:
Field | Type | Description |
|---|---|---|
Name |
| Parameter name (matches |
Type | schema | Data type of the parameter. |
Defines the expected structure of each result row. Properties should match the column names or aliases in the query.
handle: uses the connection input handleshared_credential: resolves the selected SQL credential
error path without making an outbound connection attemptValidates the query:
Shared credential mode updates connection health status automatically based on runtime outcomes. Repeated connection failures can place a credential into a suspended state; once the cooldown expires, the next run automatically probes the connection again.
Blocked operations (unless Allow Dangerous Operations is enabled):
DROP TABLE/DATABASE/SCHEMATRUNCATE TABLEALTER TABLE/DATABASE/SCHEMAGRANT / REVOKECREATE TABLE/DATABASE/SCHEMA/ROLE/USERParameters prevent SQL injection:
SELECT * FROM users WHERE email = :email AND status = :statusResults are converted to match the row schema:
Configuration:
SELECT id, name, email FROM users WHERE active = trueRows Schema:
{
id: number,
name: string,
email: string
}Configuration:
SELECT * FROM orders WHERE customer_id = :customerId AND created_at > :sinceParameters:
customerId (number)since (datetime)Configuration:
INSERT INTO logs (event, data) VALUES (:event, :data) RETURNING id, created_atParameters:
event (string)data (object)Rows Schema:
{
id: number,
created_at: datetime
}Configuration:
SELECT status, COUNT(*) as count FROM orders GROUP BY statusRows Schema:
{
status: string,
count: number
}