Short answer: You can run bigquery sql query in Google BigQuery by hand from its own interface, but it won’t repeat itself. On TinyCommand, add the Google BigQuery Run BigQuery SQL Query action to a workflow, map its 5 inputs from any upstream app, and it runs automatically every time the trigger fires. No code, and a free tier to start.
Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.
| Field | Type | Required | Description |
|---|---|---|---|
Project ID project_id | string | Required | GCP project that billing/quotas apply to. |
SQL Query query | string | Required | Standard SQL. Use fully-qualified table names: `project.dataset.table`. |
Use Legacy SQL use_legacy_sql | boolean | Optional | Leave off for standard SQL (recommended). On only for legacy BQ syntax. |
Max Results max_results | number | Optional | Rows per page. |
Query Timeout (ms) timeout_ms | number | Optional | How long to wait for the query to finish before returning a jobId for async polling. |
{"project_id": "my-gcp-project-12345","query": "SELECT name, COUNT(*) AS count FROM `bigquery-public-data.usa_names.usa_1910_2013` WHERE state = 'CA' GROUP BY name ORDER BY count DESC LIMIT 10","use_legacy_sql": "{{trigger.use_legacy_sql}}","max_results": "{{trigger.max_results}}","timeout_ms": "{{trigger.timeout_ms}}"}
{"kind": "bigquery#queryResponse","rows": [{"f": [{"v": "John"},{"v": "12345"}]}],"schema": {"fields": [{"name": "name","type": "STRING"},{"name": "count","type": "INTEGER"}]},"totalRows": "10","jobComplete": true,"jobReference": {"jobId": "job_abc123","projectId": "my-project"}}
Use these fields in downstream nodes for routing, logging, or error handling.
Any of these apps can fire this action as part of a workflow.