DATA OPS
Validate S3 CSV drops and load clean rows into Snowflake
When a CSV lands in an S3 bucket, validate its schema and row quality, load only conforming rows into Snowflake, and quarantine the rest. Posts a load summary to Slack.
How it runs
The automated pipeline, trigger to output.
- TriggerNew CSV uploaded to S3 inbound prefixAWS S3
- ActionRead file and validate schema + row qualityAWS S3
- LogicSplit rows into passing vs failing sets
- ActionCOPY passing rows into Snowflake stagingSnowflake
- ActionWrite failing rows to S3 quarantine prefixAWS S3
- OutputPost load summary to SlackSlack
What it does
Watches an S3 prefix for new CSV uploads, runs each file through schema and data-quality checks, then loads only the rows that pass into a Snowflake staging table. Rows that fail are written to a quarantine prefix so nothing silently disappears, and a load summary lands in Slack.
When to use it
Use it when upstream partners or internal teams drop CSV exports into a bucket on no fixed schedule and you need a hands-off pipeline that never loads malformed data into the warehouse. Ideal for keeping a Snowflake landing zone trustworthy without a human reviewing every file.
How it works
- 1An S3 object-created event for the inbound prefix triggers the run.
- 2The pipeline reads the file and validates headers, column count, types, and required-field presence against the expected contract.
- 3A logic step splits rows into a passing set and a failing set based on the validation results.
- 4Passing rows are bulk-loaded into the Snowflake staging table via COPY.
- 5Failing rows plus a reason column are written back to an S3 quarantine prefix.
- 6A summary (file name, rows loaded, rows quarantined) is posted to Slack.
Set it up
What you configure once, before turning it on.
- 1Connect AWS S3Buckets, objects, signed URLs.
- 2Connect SnowflakeWarehouses, queries, shares.
- 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
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.
