A WhatsApp CRM with campaigns and an AI auto-reply
A self-hosted WhatsApp Cloud API inbox with spreadsheet-driven bulk campaigns, a Gemini auto-reply bot and per-message cost tracking.
- Client
- A software reseller (name withheld)
- Sector
- Sales and distribution
- Shipped
- 2026
- Practice
- AI products and agents
A self-hosted CRM built on the WhatsApp Cloud API. It gives a sales team a WhatsApp-Web-style inbox for business conversations, sends bulk campaigns from an uploaded spreadsheet, answers common questions with a Gemini bot that hands over to a human when it should, and tracks what every message cost. The UI, the API and the Meta webhook run in one Next.js process, so there is a single thing to deploy.
The problem
The team was running sales from personal WhatsApp accounts. Nothing was attributable, nobody could see a conversation after the person who owned it left, bulk sending risked the number being blocked, and the cost of messaging was invisible until the Meta bill arrived.
What we built
- 01
A familiar inbox: conversation list, threaded history and a composer, so nobody needed training on a new metaphor.
- 02
Campaigns from a spreadsheet upload, mapped onto approved Meta templates with per-row variables.
- 03
The 24-hour window made visible in the UI, with the free-form composer swapped for a template picker the moment it closes, because the platform rejects anything else.
- 04
A Gemini auto-reply that answers routine questions and escalates to a human in one step when it detects it is out of depth.
- 05
Per-message cost tracking by conversation category, shown before a campaign is sent rather than discovered afterwards.
- 06
One deployable unit: the Next.js app serves the UI, the API routes and the webhook endpoint in the same process.
What it does now
- Conversations belong to the business, not to a departed salesperson's phone.
- A campaign's cost is visible before the send button is pressed.
- Routine enquiries get an immediate answer; anything unusual reaches a person.
- Template compliance is enforced by the interface, which keeps the number out of trouble.
What people ask about this work.
Is bulk WhatsApp messaging allowed through the Cloud API?
Yes, within the platform's rules. Outside the 24-hour customer service window you may only send templates that Meta has approved, each message is billed by conversation category, and recipients must have a basis to be contacted. Software that hides these rules gets the business number blocked; we surface them in the interface instead.
What is the 24-hour window in WhatsApp Business?
A business may send free-form messages only within 24 hours of the customer's last message. After that, only pre-approved templates are permitted. In this CRM the countdown is visible on every conversation and the composer switches to a template picker automatically when the window closes.
Can an AI bot answer WhatsApp messages and still let a human take over?
Yes, and it should. The bot here answers routine questions and escalates in one step when it is out of depth. Every automated reply leaves a way to reach a person, which we treat as a design rule rather than an option.
