DATA OPS

BigQuery Multi-Table Freshness Sweep with Morning SLA Digest

Each morning, sweeps a registry of BigQuery tables against their individual SLA windows and posts one ranked Slack digest of every stale table.

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily at 7am
  • ActionRead table SLA registryAirtableAirtable
  • ActionCheck freshness for each BigQuery tableGoogle BigQueryBigQuery
  • LogicRank breaches; any tier-1 stale?
  • ActionPage on-call for tier-1 breachPagerDutyPagerDuty
  • OutputPost ranked freshness digest to SlackSlack

What it does

Runs a single daily health check across many BigQuery tables, each with its own freshness window and tier. Instead of one alert per table, it produces a consolidated digest ranked by severity, and reserves paging for the highest-tier breaches.

When to use it

Use it when you own dozens of tables and want a once-a-day picture of pipeline health without alert fatigue — a standing morning report the data team reads with coffee.

How it works

  1. 1A schedule fires at 7am in the team's timezone.
  2. 2Read the table registry (table, SLA window, tier) from an Airtable base.
  3. 3Query BigQuery for each table's last-modified time and compute staleness against its window.
  4. 4Logic sorts breaches by tier and age, and flags whether any tier-1 table is stale.
  5. 5If a tier-1 table breached, open a PagerDuty incident for it.
  6. 6Post a single Slack digest listing every stale table with age, tier, and owner — green if all fresh.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect BigQueryDatasets, queries, schemas.
  2. 2
    Connect AirtableBases, tables, views, automations.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Connect PagerDutyIncidents, on-call, escalations.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.