I built a production-grade bulk WhatsApp campaign system in n8n and wanted to share it with the community.
**What it does:**
-
Reads contacts from Google Sheets
-
Normalizes phone numbers (multi-country support)
-
Filters blocked/opted-out contacts
-
Deduplicates with SHA256 keys (never double-message anyone)
-
Sends WhatsApp template messages via Meta Cloud API in throttled batches
-
Kill switch auto-stops if too many contacts already received the message
-
Inbound webhook captures every reply and correlates it to the campaign
-
Auto-detects opt-out keywords and adds numbers to a permanent blocklist
**The stack:**
-
n8n (37 nodes, fully connected)
-
Meta WhatsApp Business Cloud API
-
Google Sheets (5 tabs: Contacts, Blocklist, Dedupe, Sends, Replies)
**Bonus:** It comes with a browser-based configurator (HTML file) — you fill in a form with your API credentials,
spreadsheet ID, and campaign details, and it generates a ready-to-import JSON. No manual JSON editing.
I’ve used this to run real campaigns with 5,000+ contacts across Colombia, Mexico, Peru, Ecuador, and Chile.
I packaged it with full documentation (setup guide, feature guide, customization guide, architecture diagrams) and put it on
Gumroad:
WA Campaign Lean — Bulk WhatsApp Campaign System for n8n
Happy to answer any questions about the architecture or how specific nodes work!