Run Query

bigquery.query
ActionDatabases & warehousesconnection required

Calls the BigQuery API POST /projects/{project}/queries.

Run a standard-SQL query in BigQuery and return the rows.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Google BigQuery
Secret shape
{"client_id", "client_secret", "refresh_token"}
Config it needs
project_id
Resolved by
config.connection_id, else node.connection_id

Configuration

11 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
project_id
GCP project id (overrides connection).
stringNo———
sql
Standard SQL query.
stringYes———
max_results
Max rows (1-1000).
numberNo100≥ 1—
parameters
Named bindings for @name placeholders, e.g. {"email": "a@b.c"}.
objectNo——{"email":"a@b.c"}
location
Dataset location, e.g. EU.
stringNo———
default_dataset
Dataset for unqualified table names.
stringNo———
maximum_bytes_billed
Fail the query if it would scan more bytes than this.
numberNo—≥ 0—
timeout_seconds
How long to wait for the job (default 90).
numberNo90≥ 0—
decode_values
Decode row values into real numbers, booleans and ISO timestamps (default). Turn off to keep BigQuery's raw wire encoding, which is what workflows saved before decoding landed expect.
booleanNotrue——
job_id
Job to page through (with page_token).
stringNo———
page_token
next_page_token from a previous run of this node.
stringNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "decode_values": true,
  "max_results": 100,
  "parameters": {
    "email": "a@b.c"
  },
  "timeout_seconds": 90
}

Output

One shape.

result

FieldTypeExample
rows
Rows as objects keyed by column. Decoded by default — an INTEGER arrives as 42, not "42", and a TIMESTAMP as an ISO-8601 string, not epoch seconds. This changed: set decode_values to false to get the older raw wire encoding.
array—
count
Rows on this page.
number—
total
Rows the query produced in total.
number—
job_complete
Always true; the step fails otherwise.
boolean—
schema
Columns as {name, type, mode}.
array—
job_id
Pass back with page_token for the next page.
string—
location
Where the job ran.
string—
next_page_token
Only set when another page exists.
string—
bytes_processed
Bytes scanned.
number—
bytes_billed
Bytes billed.
number—
cache_hit
Served from BigQuery's result cache.
boolean—
dml_affected_rows
Rows a DML changed; null otherwise.
number—
warnings
Warnings BigQuery reported while the job ran, as {reason, message, location}. Empty on a clean run; a warning does not fail the step.
array—
{
  "bytes_billed": 0,
  "bytes_processed": 0,
  "cache_hit": false,
  "count": 0,
  "dml_affected_rows": 0,
  "job_complete": false,
  "job_id": "",
  "location": "",
  "next_page_token": "",
  "rows": [],
  "schema": [],
  "total": 0,
  "warnings": []
}

See Run Query run in a workflow.

In a technical demo we add the Google BigQuery connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.