DATA OPS
Three-way reconciliation of Postgres source, Intercom destination, and an audit ledger
Reconciles row counts across a Postgres audience query, the Intercom segment it feeds, and an Airtable audit log, then writes the daily reconciliation result back to Airtable.
How it runs
The automated pipeline, trigger to output.
- TriggerDaily post-sync schedule
- ActionCount eligible rows in Postgres source queryPostgres
- ActionFetch Intercom segment member countIntercom
- ActionRead expected count from Airtable ledgerAirtable
- LogicClassify discrepancy: extraction vs load vs balanced
- ActionAppend reconciliation result row to AirtableAirtable
- OutputPost daily reconciliation digest to SlackSlack
What it does
Performs a three-way row-count reconciliation for a reverse-ETL sync into Intercom. It compares the eligible rows in your Postgres source, the actual member count of the Intercom segment, and the count your audit ledger expected, surfacing exactly where records leaked.
When to use it
Use it when you need an auditable trail, not just an alert, such as syncs that drive lifecycle messaging where over- or under-targeting has compliance weight. A two-way check tells you something is off; this three-way check tells you whether the loss happened at extraction, at load, or in your own bookkeeping.
How it works
- 1A daily schedule kicks off the reconciliation after the nightly sync window.
- 2Query Postgres for the count of rows matching the audience definition.
- 3Fetch the live member count of the target Intercom segment.
- 4Read the expected count from the prior run's Airtable ledger entry.
- 5A logic step classifies the discrepancy as extraction loss, load loss, or in-balance.
- 6Append a timestamped reconciliation row to Airtable with all three counts and the verdict.
- 7Post a digest line to Slack summarizing today's result and pointing to the ledger.
Set it up
What you configure once, before turning it on.
- 1Connect PostgresAny Postgres URL — query, write, migrate.
- 2Connect IntercomConversations, contacts, articles.
- 3Connect AirtableBases, tables, views, automations.
- 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.
