DATA OPS
Diff Reverse-ETL Rejects in BigQuery and File Triage Tickets
Compares the rows BigQuery tried to sync against what landed in the destination Postgres, isolates the missing reject rows, classifies the likely cause.
How it runs
The automated pipeline, trigger to output.
- TriggerScheduled run after BigQuery-to-Postgres sync
- ActionQuery source row keys from BigQuery for the windowBigQuery
- ActionQuery destination keys present in PostgresPostgres
- LogicDiff sets, tag probable cause, group by signature
- OutputOpen one Linear ticket per failure patternLinear
What it does
When a reverse-ETL push from BigQuery to an operational Postgres database silently drops rows, this workflow reconciles source against destination, pulls the set of rows that never arrived, and groups them by failure signature (type-mismatch, constraint violation, null key). It then files one Linear ticket per distinct pattern instead of one per row, so the backlog is actionable.
When to use it
Use this when your application database is supposed to mirror a BigQuery model but you keep finding gaps and have no idea which rows or why. It produces a clean, deduplicated diff and turns it into triage work.
How it works
- 1A schedule runs after the BigQuery-to-Postgres sync completes.
- 2The flow queries the source row keys from BigQuery for the sync window.
- 3It queries the destination keys actually present in Postgres.
- 4A logic step computes the set difference to find rejected rows and tags each with a probable cause.
- 5Rows are grouped by failure signature and counted.
- 6One Linear issue is opened per signature with affected counts and example keys, labeled for the data platform team.
Set it up
What you configure once, before turning it on.
- 1Connect BigQueryDatasets, queries, schemas.
- 2Connect PostgresAny Postgres URL — query, write, migrate.
- 3Connect LinearIssues, projects, cycles, triage.
- 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.
