# Review and approve Fivetran schema changes in one place

> One board for every new table and column Fivetran wants to copy into your warehouse, where your team approves, blocks, or hashes each one by hand.

- Workflow type: app
- Services: Fivetran, Slack Bot
- Categories: Operations, Engineering
- Published: 2026-08-21

## What it does

- Pulls every newly appeared schema, table, and column across all your Fivetran connections into a single review queue, so nobody has to open each connector one at a time
- Shows each item's current on or off state next to how that connection handles new data, so you can see exactly what is already flowing into the warehouse
- Lets you approve, block, or hash items in bulk, tighten a connection so it stops accepting new data, reload the latest source structure, and clean up columns you already blocked
- A Review new columns button hands one connection to a background assistant that suggests approve, block, or hash for each new column and posts a summary to Slack, while a person still applies every change

## What you'll need

- A Fivetran account, plus an API key and secret from your account settings
- Permission in Fivetran to change connector and schema settings
- A Slack workspace connected, if you want the assistant to post its review summaries there
- A shortlist of the connections your data team actually owns, so the queue starts focused

## Prompt

Build me an app where my data team reviews and approves Fivetran schema changes across every connection in one place, instead of clicking into each connector's Schema tab one at a time. Treat it as a review and approval board for all new schemas, tables, and columns. The hard rule: nothing changes in the warehouse unless a person clicks approve, block, or hash inside the app.

The main surface is a review queue. A handler calls Fivetran List Connections, then Get Connection Schema Config for each connection, and flattens the result into one row per schema, table, or column. Each row shows the connection name and connector type, the schema, table, and column path, the item's current enabled state, whether a column is hashed, the table's sync mode, and that connection's schema change handling setting (allow all new data, allow new columns only, or block all new data). Newly appeared items sort to the top.

To know what is new, persist a snapshot of each connection's schema config every time the app fetches it, and diff each fresh fetch against the last stored snapshot. Anything absent from the previous snapshot enters the queue as pending. Persist a review record per item holding its status (pending, approved, blocked, hashed), who decided, when, and any agent recommendation with its reason. Items stay in the queue until a human decides on them, so the queue is a real work list and not just a diff view.

Give the queue filters for connection, destination group, item type (schema, table, or column), review status, and agent recommendation, plus a search box on table and column name. Clicking a table opens a detail drawer that calls Get Source Table Columns Config for that table, so I can see every column with its enabled and hashed state before deciding anything.

From the queue I select rows and act in bulk. Approving or blocking a table calls Modify Table Config to enable or disable it. Approving, blocking, or hashing a column calls Modify Column Config. These run one call per item, so show progress with per row success and failure, and refresh each row's state from Fivetran after the batch finishes rather than assuming it worked.

Each connection also gets its own panel. From there I can tighten schema change handling with Modify Connection Schema Config, moving a connection from allow all new data down to allow new columns only or block new data entirely. The same panel has a button that calls Reload Connection Schema to pull the latest source structure. Reload is asynchronous, so do not render the response as if it were current: show a pending state and refetch Get Connection Schema Config afterwards before updating the queue.

Add a cleanup section listing columns that are currently blocked for each connection. Drop Blocked Columns clears them from the destination in bulk and Delete Blocked Column handles a single one. This is destructive because it removes data that already landed in the warehouse, so put a confirmation dialog in front of it that names every column being dropped and requires typing the connection name to proceed.

Every connection row and connection panel has a Review new columns button that kicks off a background agent for that connection. The agent reads the connection's schema config with Get Connection Schema Config, pulls Get Source Table Columns Config for tables that have new columns, then flags two things: columns whose names suggest personal or sensitive data (email, phone, national ID, date of birth, address, salary, card number, auth token and similar), and columns sitting on high volume tables nobody asked for. It writes a recommended decision of approve, block, or hash into each matching queue row along with a one sentence reason. The agent must never call any modify, drop, or reload operation. It only proposes; the human confirms.

When the agent finishes, it posts a summary to a Slack channel I choose in app settings using Slack Bot Send a Message: the connection name, how many new schemas, tables, and columns it found, the counts by recommendation, and the handful it considers riskiest. Show the agent run state in the app (running, finished, failed) next to the connection, and refresh the queue when the run lands so the recommendations appear inline.

Finally, add an audit log view listing every change the app applied: the item, the decision, who made it, when, and the before and after enabled or hashed state. Put a summary bar at the top of the queue with the count of pending items, the number of connections still set to allow all new data, and the number of blocked columns waiting for cleanup.

## How to customize

- Change the word list the assistant treats as sensitive, so it flags the columns your team actually worries about
- Pick which Slack channel gets the review summaries, or turn the posts off entirely
- Filter the queue down to one team's connections or one destination warehouse
- Require a second reviewer before anyone can clean up blocked columns

## FAQ

### Will this change anything in my warehouse on its own?

No. Nothing is applied to Fivetran until a person clicks approve, block, or hash in the app. The background assistant only writes a suggested decision next to each item for someone to confirm.

### How does it know which tables and columns are new?

The app remembers what it saw the last time it checked each connection and compares that against the latest structure. Anything that has appeared since the last check shows up in the queue as pending review.

### Does it cover all my Fivetran connections at once?

Yes. It loads every connection on the account and merges them into one queue, and you can filter down to a single connection, destination, or team whenever you want.

### What happens to a column that already landed in the warehouse before I blocked it?

Blocking stops future syncing, and a separate cleanup step removes columns you have already blocked from the destination. That step deletes data, so it sits behind a confirmation that names every column first.

### Do I have to use Slack?

No. Slack is optional and only used for the assistant's end of run summary. The full review queue and every decision live in the app itself.

Use this prompt in General Input: https://www.generalinput.com/prompts/review-and-approve-fivetran-schema-changes-in-one-place