DATA OPS
dbt Anomaly Recovery Auto-Close for PagerDuty and Linear
Re-checks tables that previously breached freshness or volume thresholds, and when a table has recovered it resolves the open PagerDuty incident, closes the Linear issue.
How it runs
The automated pipeline, trigger to output.
- TriggerSchedule loop while incidents open
- ActionRead open incidents and affected tablesPagerDuty
- ActionRe-query current metrics from SnowflakeSnowflake
- LogicSelect recovered vs still-breaching tables
- ActionResolve incident and close Linear issueLinear
- OutputPost all-clear with time-to-recover to SlackSlack
What it does
Alerts are only half the loop — this workflow closes it. It reads the set of currently open freshness and volume incidents, re-queries Snowflake to see whether each affected table is now back inside its threshold, and for every recovered table it resolves the PagerDuty incident, transitions the linked Linear issue to done, and announces the recovery in Slack with the time-to-recover.
When to use it
Use it when stale incidents and zombie tickets erode trust in your alerting. Auto-resolution keeps PagerDuty and Linear honest, so an open incident always means a real, current problem.
How it works
- 1A schedule fires on a tight loop while incidents are open.
- 2Open incidents and their affected tables are read from PagerDuty.
- 3Snowflake is re-queried for current freshness and volume per table.
- 4A logic branch keeps still-breaching tables open and selects recovered ones.
- 5Recovered tables resolve their PagerDuty incident and close the Linear issue.
- 6A Slack all-clear posts each recovered table with its time-to-recover.
Set it up
What you configure once, before turning it on.
- 1Connect SnowflakeWarehouses, queries, shares.
- 2Connect PagerDutyIncidents, on-call, escalations.
- 3Connect LinearIssues, projects, cycles, triage.
- 4Connect SlackChannels, DMs, threads, mentions.
- 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
Snowflake column type-drift sentinel with Linear fix ticket
Snapshots the data types of every column in your tracked Snowflake schemas on a schedule, diffs against the last snapshot.
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 dropped/renamed column sentinel with PagerDuty incident
Detects when a column is dropped or renamed in your governed BigQuery datasets and, because that breaks downstream queries hard, pages the on-call via PagerDuty and posts…
PR-time Snowflake schema contract check on dbt model changes
When a pull request changes a dbt model, it compares the model's declared output columns against the live Snowflake table it will replace and blocks the merge with a GitHub check…
Agent-triaged warehouse drift with impact analysis and runbook update
On a webhook from your warehouse audit log, an agent investigates the changed column, traces which downstream models and dashboards depend on it.
Cross-warehouse replication schema mismatch reconciler
Compares the column shape of mirrored tables between BigQuery and Snowflake and, when a replicated table has drifted out of sync between the two, opens an Asana task for the data…
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.
