A scheduler you can't audit is a scheduler you don't trust. Every job in QueryFlow keeps its own history, so "did it run last night" is a question you can answer in a few seconds.
No credit card. 14 days. Cancel in one click.
Quick answer: Open a scheduled job and its run history shows every execution: scheduled time, actual run time (useful when the Mac was asleep and it caught up late), success or failure, and the error message on a failure. It's per job, not one shared log, so a busy scheduler with a dozen jobs doesn't turn into a wall of text you have to filter through by hand.
Select a scheduled job and its history lists every run, newest first. Each entry shows when it was supposed to fire, when it actually ran, and whether it succeeded. Click a failed run to see the underlying error, the same kind of message a connection Test would surface for a bad credential or unreachable host.
Say a Snowflake job scheduled for 6 AM shows a run logged at 8:14 AM instead. The history makes the gap visible immediately: the Mac was asleep at 6 and the job caught up on wake at 8:14, rather than failing outright. That distinction, "ran late" versus "didn't run," is the whole point of keeping scheduled time and actual time as separate fields.
For a job that actually failed, say a Databricks query against a table that got renamed:
SELECT customer_id, order_total FROM catalog.schema.orders_v2 WHERE order_date = current_date() - 1;
The run history entry for that job shows the failure and the underlying "table not found" error directly, rather than just a red status you have to go dig for context on elsewhere.
Run history is available on every job regardless of tier. What differs by tier is the output destinations available to schedule against and whether failed jobs retry automatically (Pipelines). See pricing for the full comparison.
This is a per-job history, not a centralized observability platform with alerting rules, dashboards, or SLA tracking across a whole team. For "tell me the moment something changes" outside of a job's own pass/fail status, that's what Watches are for, not the run history.
The two timestamps together tell most of the story before you even open the error. A run that's on time and failed points at the query or connection itself. A run that's hours late but succeeded points at sleep, not a bug. A run that's both late and failed is worth checking twice: sometimes a job fails specifically because it caught up alongside several others at once and hit a rate limit or a warehouse that hadn't finished waking either.
If the same job fails on the same day of the week, or always around the same time, the run history across several weeks will show that pattern before any single failure would tell you. A Monday-morning Salesforce sync that fails every third Monday, say, is worth cross-referencing against whatever else runs on that cadence, a monthly batch job, a maintenance window, before assuming it's random.
A run history that consistently shows a job catching up thirty or forty minutes late is a reasonable signal that either the Mac needs to stay awake through that window, or the trigger time itself should move earlier to compensate. Rather than guessing at the right adjustment, a few weeks of run history gives you the actual pattern to design around instead of a one-off anecdote.
When a job's behavior needs a second set of eyes, whether that's a teammate or QueryFlow support, the specific run's error detail is more useful shared directly than described from memory. Open the failed run, and copy or export the detail exactly as shown, rather than paraphrasing what the error probably said.
When a job's actual behavior doesn't match what you expected, the run history is the more reliable source than your own memory of setting it up. It's easy to misremember whether a job was scheduled Daily or Weekly, or whether a change to the query actually got saved; the history shows what really happened, run by run, independent of what you intended.
Recent run history is kept per job inside the app; it's meant for checking recent behavior, not as a long-term audit log warehouse.
Yes. Background-helper runs log into the same run history as any other run, once you next open QueryFlow.
No, that's a query-plan question, not a scheduler question. Run history tells you whether and when a job ran, not why a specific query took the time it took.
14-day free trial, no card. Run history on every job, every tier.
No credit card. 14 days. Cancel in one click.