DATA OPS
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…
How it runs
The automated pipeline, trigger to output.
- TriggerSchedule every 30 minutes
- ActionLoad source freshness config from GitLabGitLab
- ActionQuery Snowflake for latest loaded-at per sourceSnowflake
- LogicBucket sources as fresh / warn / error by SLA
- ActionOpen PagerDuty incident for error-level breachesPagerDuty
- OutputPost freshness digest to SlackSlack
What it does
Reads the freshness thresholds (`warn_after` / `error_after`) declared on each dbt source, queries Snowflake for the max load timestamp of each source table, and compares the lag against the SLA. Fresh sources are ignored; warn-level lag pings Slack; error-level lag opens a PagerDuty incident so on-call can react before downstream models run on stale inputs.
When to use it
Run it on a tight cadence (every 30-60 min) for pipelines where data staleness causes real harm — finance close, ops dashboards, ML feature tables. Use it when `dbt source freshness` alone isn't loud enough to wake anyone up.
How it works
- 1A frequent schedule triggers the check.
- 2Pull source freshness config (table, loaded-at column, thresholds) from the dbt project in GitLab.
- 3Run a Snowflake query for the latest loaded-at per source table.
- 4Compute lag and bucket each source as fresh, warn, or error.
- 5Branch: warn sources go to a Slack message; error sources trigger a PagerDuty incident with the table and lag.
- 6Emit a combined freshness digest to Slack.
Set it up
What you configure once, before turning it on.
- 1Connect GitLabRepos, MRs, pipelines, registry.
- 2Connect SnowflakeWarehouses, queries, shares.
- 3Connect SlackChannels, DMs, threads, mentions.
- 4Connect PagerDutyIncidents, on-call, escalations.
- 5Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 6Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 7Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More Data Ops workflows
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.
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.
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.
Raw Sensor Telemetry Archive to BigQuery
Captures every incoming building sensor reading via webhook, normalizes the payload into a consistent schema.
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.
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.
