Write the query once, pick a schedule, and stop running it by hand every morning. The background helper keeps it going even after you close QueryFlow.
No credit card. 14 days. Cancel in one click.
Quick answer: Write your query, click Schedule in the toolbar, and pick a trigger: Manual, Interval, Daily, Weekly or Custom Cron. Choose where the results go, then turn on Enable immediately. For jobs to run with QueryFlow closed, turn on Run Jobs When App Is Closed in Settings, BigQuery is one of the sources the background helper supports.
With that toggle on, the background helper runs Snowflake, Redshift (IAM keys), BigQuery and Databricks jobs that deliver to S3, SFTP, a local file or email. Jobs with other sources or other destinations still need QueryFlow open.
A daily row count check that emails you if something looks off starts with a plain query:
SELECT COUNT(*) AS rows_loaded, MAX(loaded_at) AS last_load FROM `my-gcp-project.ingest.events_raw` WHERE DATE(loaded_at) = CURRENT_DATE();
Schedule it Daily at 7 AM, output to Email, enable it, and turn on the closed-app toggle. You'll get a message every morning whether or not your Mac is actually open with QueryFlow running.
Open the job's run history after its first scheduled run. A successful run shows a timestamp, duration, and row count; a failed one shows the error, usually the same message a connection Test would show.
| If you see | Fix |
|---|---|
| Job doesn't run while the app is closed | Check the source and output are ones the helper supports (BigQuery to S3, SFTP, file or email). |
| macOS needs your approval to keep this running in the background. | Click Open Login Items Settings… and approve the helper. |
| Job fails immediately | Open its run history; it usually matches an error a connection Test would show. |
A table that updates once a day doesn't need an hourly check, it just adds noise and BigQuery cost for no new information. Match the interval to how often the underlying data actually changes: daily for most reporting tables, hourly or more frequent only for something genuinely near-real-time. This isn't a QueryFlow-specific rule, it's just wasted query cost otherwise.
If your Mac was asleep or off when a job was due, it simply runs at its next scheduled time rather than queuing up missed runs. Check the run history if a report seems to have skipped a day, it will show whether the job ran and failed, or never fired at all.
See the full Schedule a BigQuery or Databricks query tutorial for every trigger and output option.
A scheduled query that fails doesn't retry automatically by default, it logs the failure and waits for its next scheduled time. If a job is important enough that a single missed run matters, pair it with a Watch This alert on a related value so you find out the same day rather than the next time you happen to check the job history.
You don't need to delete and recreate a job to change its time or output. Open it from the job list, adjust the Trigger Type or destination, and save; the job keeps its history intact, so you can still see how it behaved under the old schedule if that matters later.
If a job is only paused for now, a seasonal report you don't need for a few months, disable it rather than deleting it. Its schedule, output settings and history stay intact, and turning it back on later is a single toggle instead of rebuilding the whole thing from scratch.
Daily and Weekly triggers use your Mac's local time zone, not UTC and not BigQuery's. If you travel or your Mac's time zone setting changes, double-check a schedule that matters still fires when you expect, especially around daylight saving transitions.
Yes. Choose a BigQuery destination and pick Append or Replace. See Sync BigQuery to Databricks or the destinations tutorial for the exact steps.
The query queues like any other BigQuery job; it just takes longer to return, it doesn't fail outright.
Yes, times are set in your Mac's local timezone.
Up to 100,000 rows per query, same as running it manually.
14-day free trial, no card. Schedule your first BigQuery query today.
No credit card. 14 days. Cancel in one click.