DATA OPS
BigQuery dbt-Model Freshness Sentinel to Linear
Hourly scan of dbt-managed BigQuery tables for stale partitions; when a model misses its freshness SLA, files a Linear ticket to the owning team with lineage context so the right…
How it runs
The automated pipeline, trigger to output.
- TriggerHourly freshness scan
- ActionQuery partition recency + dbt SLABigQuery
- LogicKeep models past freshness SLA
- ActionResolve owner + upstream lineageBigQuery
- ActionFile Linear ticket to owning teamLinear
- OutputPost new-ticket digest to SlackSlack
What it does
Watches every dbt model registered in your BigQuery warehouse and checks whether its latest partition landed inside the model's declared freshness window. When a table goes stale past its SLA, it opens a Linear issue assigned to the team that owns the model, pre-filled with the table name, last-loaded timestamp, hours overdue, and upstream lineage so the on-call analyst can start triaging immediately.
When to use it
Use it when your team relies on dbt freshness checks but nobody watches the `dbt source freshness` output, or when stale dashboards keep surprising stakeholders. Best for warehouses where each model has a clear owning team in the dbt `meta` block.
How it works
- 1An hourly schedule fires the sentinel.
- 2It queries BigQuery `INFORMATION_SCHEMA.PARTITIONS` plus the dbt manifest to find each model's newest partition and its SLA.
- 3A filter keeps only models whose latest data is older than their allowed window.
- 4For each stale model it reads the dbt `meta.owner` and upstream `depends_on` lineage.
- 5It files a Linear issue to the owning team with the overdue hours and lineage chain.
- 6It posts a digest of all new tickets to the data-ops Slack channel.
Set it up
What you configure once, before turning it on.
- 1Connect BigQueryDatasets, queries, schemas.
- 2Connect LinearIssues, projects, cycles, triage.
- 3Connect SlackChannels, DMs, threads, mentions.
- 4Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 5Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 6Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More Data Ops workflows
BigQuery Per-Team Budget Breach Alert to PagerDuty
Tracks month-to-date BigQuery scheduled-query spend per team and, when a team crosses its monthly budget, pages the team's on-call in PagerDuty and snapshots the spend breakdown…
dbt orphan model detector with Linear cleanup tickets
Scans your dbt manifest for models that no other model, exposure, or BI tool consumes.
Weekly BigQuery Cost Trend Sheet and Exec Digest
Compiles week-over-week BigQuery scheduled-query cost by owner and dataset into a Google Sheet with trend columns.
Backfill Missing Owner Labels on BigQuery Scheduled Queries
Finds scheduled queries with no owner label, infers the likely owner from creator metadata and target-table lineage, proposes a label.
Daily BigQuery Scheduled-Query Cost Attribution to Owners
Each morning, totals the prior day's on-demand bytes-billed per scheduled query, maps each query to its owner from a label, and posts a per-owner cost leaderboard to Slack.
dbt source freshness watcher with severity-routed alerts
Checks Snowflake loaded-at timestamps against each dbt source's freshness SLA, then routes warnings to Slack and hard breaches to a PagerDuty incident so stale data never…
Run it inside a business
This workflow drops into a full company template. Import the org, and this is one of the playbooks its agents run.

Run this workflow in your colony.
14-day trial. No DevOps. No Sales call. Provisioned in under a minute.
