Google BigQuery
Run SQL in Google BigQuery with query parameters, stream rows into tables, read table rows and schemas, and list projects, datasets, tables and jobs.
Connect Google BigQuery
- In the sidebar, open Connections and press Add connection.
- Type
google bigqueryand choose Google BigQuery. - Press Sign in with Google.
- Choose your account in Google’s window and allow access.
You should see Signed in as and the account’s address.
You can also connect from a step: under Connection, press New.
What if it says “Google sign-in isn’t set up here”?
This installation has no Google app yet. An admin of the installation sees Set up Google sign-in instead, and sets it up once for everyone:
- In Google Cloud, create an OAuth client of type Web application, and turn on the API for Google BigQuery.
- In GoRunner, copy the Redirect address to add in Google Cloud, and add it to the client.
- Paste the Client ID and Client secret, then press Save and sign in.
Publish the app in Google Cloud. An app left in Testing signs everyone out after 7 days.
Everyone else sees who to ask.
Can I use my own Google app?
Yes. In the sheet, open Use your own Google app and paste its Client ID and Client secret. Add the Redirect address to add in Google Cloud to your app first. The connection then signs in through your app instead of the installation’s.
Connections says how to sign in again, rename or delete it. In a product that embeds GoRunner, Add connection can be missing: then your provider makes connections for you.
Do things in Google BigQuery
Add a Google BigQuery step, choose a Resource, then an Operation. Choose a row to see its fields.
- Query and InsertExecute Query · Insert Rows
- TableGet Rows · Get · Get Many
- DatasetGet Many
- ProjectGet Many
- JobGet · Get Results
To start a workflow from Google BigQuery, use a Schedule, Webhook or Form trigger.
Later steps read a step’s output by its name: see Use data from earlier steps.
Limits
- A reply from Google BigQuery can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Google BigQuery says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.
Not in your list? See When an app isn’t here.
For developers
In the API, which calls apps pieces, Google BigQuery is pieceId: "googlebigquery" with actionId: "googlebigquery", set by resource and an operation_… field, such as operation_database. Get an app returns every field.
It can change something outside the run (writes_external). See How versions and side effects work.
Google BigQuery › Query and Insert
Execute Query
- Project · Required
The project the query job runs (and is billed) in, or that holds the table.
- SQL Query · Required
GoogleSQL, exactly as written. Put values from earlier steps in Query Parameters and refer to them as @name, such as SELECT * FROM `shop.orders` WHERE customer_id = @customer.
- Query Parameters · Optional
Values for the @names in the query, such as {"customer": "{{trigger.body.id}}", "since:DATE": "2026-10-01", "ids": [1, 2, 3]}. Types follow the value (text, whole number, decimal, true/false, list, JSON object); add :TYPE to a name to set one (DATE, TIMESTAMP, NUMERIC, ARRAY<STRING> …).
- Location · Optional
Where the data lives, such as EU, US or europe-west3. Needed when the dataset is in one region rather than the US or EU multi-region.
- Default Dataset · Optional
A dataset (dataset or project.dataset) that table names without one refer to.
- Maximum Bytes Billed · Optional
Fail the query, without charge, if it would read more than this many bytes. Empty uses the project's limit.
- Dry Run · Optional
Only check the query and say how many bytes it would read; nothing runs.
Off by default.
- Simplify · Optional
Return each row as one object of column values by name, with numbers, booleans, timestamps, records and lists as such. Off returns BigQuery's row format (f/v).
On by default.
- Return All · Optional
Read every row, page by page (at most 20000; past that the step fails rather than stop early).
On by default.
- Limit · Optional
How many rows to return (1–20000).
Default: 1000.
Shows when Return All is off.
Insert Rows
- Project · Required
The project the query job runs (and is billed) in, or that holds the table.
- Dataset · Required
The dataset that holds the table.
- Table · Required
The table.
- Location · Optional
Where the data lives, such as EU, US or europe-west3. Needed when the dataset is in one region rather than the US or EU multi-region.
- Rows · Required
The rows to insert: a list of objects by column name, such as [{"order_id": 1042, "customer": "Ada"}], or one object. Sent 500 at a time.
- Row ID Column · Optional
A column whose value identifies each row: BigQuery then drops a row sent twice within about a minute (best effort).
- Skip Invalid Rows · Optional
Insert the valid rows and list the others under insertErrors. Off, one invalid row fails its batch and nothing of it is inserted.
Off by default.
- Ignore Unknown Columns · Optional
Drop values for columns the table does not have, instead of refusing the row.
Off by default.
- Table Suffix · Optional
Insert into <table><suffix>, created from the table as a template when it does not exist (such as _20261101).
Google BigQuery › Table
Get Rows
- Project · Required
The project that holds the dataset.
- Dataset · Required
The dataset that holds the table.
- Table · Required
The table.
- Columns · Optional
Only these columns, comma-separated. Empty reads every column.
- Start at Row · Optional
Skip this many rows first (0 starts at the first). Rows of a table come in no set order.
- Return All · Optional
Read every row, page by page (at most 20000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many rows to return (1–20000).
Default: 100.
Shows when Return All is off.
- Simplify · Optional
Return each row as one object of column values by name. Off returns BigQuery's row format (f/v).
On by default.
Get
- Project · Required
The project that holds the dataset.
- Dataset · Required
The dataset that holds the table.
- Table · Required
The table.
Get Many
- Project · Required
The project that holds the dataset.
- Dataset · Required
The dataset that holds the table.
- Return All · Optional
List every table (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many tables to return (1–5000).
Default: 100.
Shows when Return All is off.
Google BigQuery › Dataset
Get Many
- Project · Required
The project whose datasets to list.
- Include Hidden · Optional
Also list hidden datasets (names starting with _).
Off by default.
- Return All · Optional
Read every dataset, page by page (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many datasets to return (1–5000).
Default: 100.
Shows when Return All is off.
Google BigQuery › Project
Get Many
- Return All · Optional
Read every project, page by page (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many projects to return (1–5000).
Default: 100.
Shows when Return All is off.
Google BigQuery › Job
Get
- Project · Required
The project the job ran in.
- Job ID · Required
The job's id, such as from an earlier Execute Query's jobId.
- Location · Optional
The job's location (Execute Query's location), needed outside the US and EU multi-regions.
Get Results
- Project · Required
The project the job ran in.
- Job ID · Required
The job's id, such as from an earlier Execute Query's jobId.
- Location · Optional
The job's location (Execute Query's location), needed outside the US and EU multi-regions.
- Return All · Optional
Read every row, page by page (at most 20000; past that the step fails rather than stop early).
On by default.
- Limit · Optional
How many rows to return (1–20000).
Default: 1000.
Shows when Return All is off.
- Simplify · Optional
Return each row as one object of column values by name.
On by default.