GoRunner docs
Search or askSearch⌘K

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.

9 actions · Sign in with Google

Connect Google BigQuery

  1. In the sidebar, open Connections and press Add connection.
  2. Type google bigquery and choose Google BigQuery.
  3. Press Sign in with Google.
  4. 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:

  1. In Google Cloud, create an OAuth client of type Web application, and turn on the API for Google BigQuery.
  2. In GoRunner, copy the Redirect address to add in Google Cloud, and add it to the client.
  3. 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.

Set up Google sign-in for connections

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.

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.