The problem
Sales, delivery, and people operations lived in different tools. Pulling them into a weekly review by hand made it hard to keep the numbers current and consistent.
What I built
The n8n workflow reads Google Sheets, Airtable, and a people-operations API. It normalizes the records and calculates 28 metrics for the current and comparison periods. Claude writes the analysis, the workflow checks it against the figures, and Supabase publishes it to a read-only dashboard.
Handling missing data and reruns
Bad rows are flagged, and missing values keep the reason they’re missing. The publication step uses natural keys and a transaction so rerunning it doesn’t create duplicate records. If the input fingerprint hasn’t changed, it skips another model call.
What I verified
The recorded harness runs the actual pipeline code and checks publication against Postgres. The evidence lists source credentials, live model calls, and deployment checks separately so unfinished checks aren’t counted as passing.
What testing caught
A correct calculation can still describe the wrong reporting window. I changed monthly spend to use the actual dates instead of adding up whole months.
Recorded pipeline evidence · September 2026. The figures here come from those test records.