Manual lead intake doesn't scale
Leads arrive as spreadsheets — inconsistent formats, stale rows, duplicate entries. Someone has to open each file, decide what is actually new, and copy it into the system by hand. That is fine for ten rows. It breaks down long before a thousand.
What we built
A webhook-driven pipeline that ingests Excel files the moment they land, validates freshness against what is already stored, and syncs only what has actually changed, rather than re-processing an entire sheet every time.
- Webhook-based ingestion, no manual upload step.
- Freshness validation against existing records before any write.
- Bulk synchronization instead of row-by-row processing.
- Workflow orchestration built to scale with volume, not just handle today’s batch.
Why freshness validation mattered most
The easy version of this pipeline just overwrites everything on every run. That is wasteful, and worse, it can clobber data that has already been worked on downstream. The validation layer is what makes the automation safe to run unattended.
The stack
n8n for orchestration, Supabase for storage, Google Sheets for source ingestion, ChatGPT for data enrichment.