DATA OPS
Auto-Pause Scheduled Refreshes for Idle Dashboards to Recover Cost
Daily detects dashboards with active scheduled refreshes but no views in 30 days, pauses their refresh jobs via webhook.
How it runs
The automated pipeline, trigger to output.
- TriggerDaily schedule starts the cost-recovery check
- ActionJoin refresh schedules to last-view dates in SnowflakeSnowflake
- LogicFilter to scheduled-but-unviewed dashboards (30+ days)
- ActionPause the scheduled refresh via BI admin webhookHTTP webhook
- OutputNotify last viewer in Slack with a resume optionSlack
- ActionLog paused state and saved compute to SnowflakeSnowflake
What it does
This workflow targets the most direct cost of dashboard decay: warehouse spend on refreshing data that nobody looks at. It finds dashboards still refreshing on a schedule despite 30 days of zero views, pauses the refresh, and tells the last viewer so they can resume if needed.
When to use it
Run this when scheduled refreshes are quietly burning compute on abandoned dashboards. Pausing (not deleting) keeps the asset intact while immediately stopping the bleed, making it a low-risk first lever before full retirement.
How it works
- 1A daily schedule starts the cost-recovery check.
- 2Snowflake is queried to join active refresh schedules against last-view dates per dashboard.
- 3A filter keeps dashboards refreshing on a schedule but unviewed for 30+ days.
- 4For each, an HTTP webhook call to the BI tool's admin API pauses the scheduled refresh.
- 5Slack notifies the last viewer that refresh was paused, with a one-click way to resume.
- 6The paused state and estimated saved compute are logged back to Snowflake.
Set it up
What you configure once, before turning it on.
- 1Connect SnowflakeWarehouses, queries, shares.
- 2Connect HTTP webhookTrigger any URL on agent actions.
- 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
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 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…
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.
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.
