How to build a WhatsApp bot that qualifies leads in 60 seconds
Connect the WhatsApp Cloud API to a Make scenario that stores each conversation in Supabase and passes it to an LLM such as GPT or Claude with a qualification prompt. Once a lead meets your criteria, the scenario writes them to your CRM and sends a calendar link. At October 2026 list prices this runs under $50/month for 1,000 conversations. The steps below show how to build a working version; if you're not sure Make is your platform, our Make vs n8n vs Zapier comparison settles that first.
Why WhatsApp: it is one of the most used messaging apps in Europe. In Poland, for example, 18.5 million people used it in June 2026, second only to Messenger (Mediapanel, Gemius/PBI). If your leads prefer chat to phone calls, WhatsApp Business API + AI gives you capacity no call center can match: one bot holds many conversations at once, 24/7, in several languages, and replies within seconds.
Architecture
- A lead messages you on WhatsApp (from a Click-to-Chat ad, your website or a QR code).
- The WhatsApp Cloud API sends a webhook to Make.
- Make logs the message in Supabase or Airtable (the conversation history).
- An LLM with a qualification system prompt writes the reply.
- Make sends the reply through the WhatsApp Cloud API.
- Once the qualification criteria are met (budget, timeline, decision maker), the bot writes the lead to your CRM and sends a calendar link.
Step 1: WhatsApp Business Cloud API
You don't need Twilio: Meta offers its own Cloud API, which is cheaper and has no middleman. Setup:
- Create a Business app at
developers.facebook.com. - Add the "WhatsApp" product.
- You get a test phone number to send your first messages from.
- For production, verify your business number in WhatsApp Business Manager.
- Pricing: since 1 July 2025 Meta bills per delivered template message, not per conversation. Your replies inside the 24-hour customer service window are free. Templates are billed by category and the recipient's country, and marketing templates are charged even inside the window (Meta's pricing docs, and our WhatsApp API pricing guide).
Step 2: Webhook to Make
In Make, create a scenario that starts with "Webhooks → Custom webhook". Paste its URL into the Meta Developer Console as the message callback, and subscribe to the messages field.
Watch out: Meta requires webhook verification. Make handles it automatically, but the first subscription needs a static verify token, which you set in "Custom webhook" → Advanced settings.
Step 3: Conversation history in Supabase
The model has no memory between calls, so for the bot to "remember" earlier messages you have to pass them in each time. The simplest store is a Supabase table with phone_number, role (user/assistant), content, created_at.
In Make, on every incoming message:
- Insert the user message into Supabase.
- Fetch the last 20 messages for that number, sorted chronologically.
- Map them into the messages array your model's API expects.
Step 4: The system prompt
This is where most tutorials fall short. A weak prompt gives you a robotic bot that scares leads off. Here is a skeleton that works:
You are a sales assistant for [Company]. Your job:
1. Greet naturally.
2. Understand their problem (open questions, not a survey).
3. Gather 4 pieces of info, spread through the conversation:
- industry
- scale of problem (numbers, time, money)
- who decides
- when they want it solved
4. Once you have all 4, reply with JSON:
{"qualified": true, "summary": "...", "budget_signal": "...", "urgency": "..."}
5. One question per message. Max.
6. Don't pretend to be human. If asked "are you a bot", say yes.
7. Never quote prices or timelines. Hand off to the calendar instead.
Step 5: Router, conversation vs qualified
Add a Router after the model module. The first branch takes responses that contain "qualified": true: it writes the lead to the CRM and sends a calendar link (Cal.com or Calendly). The second branch sends normal replies to WhatsApp.
Step 6: Sending the reply
Use Make's HTTP module to POST to https://graph.facebook.com/v26.0/[PHONE_NUMBER_ID]/messages (v26.0 is the current Graph API version as of October 2026; check Meta's changelog when you build), with a bearer token and this body:
{
"messaging_product": "whatsapp",
"to": "{{phone}}",
"type": "text",
"text": { "body": "{{ai_reply}}" }
}
Monthly cost (1,000 conversations)
Our assumption: a qualifying conversation runs about 5 messages from the lead and 5 replies from the bot, and each model call sends about 1,000 tokens in (system prompt plus history) and gets about 100 back. List prices as of 12 October 2026:
- WhatsApp Cloud API: $0. The lead writes first and every reply lands inside the 24-hour service window, where non-template messages are free. If the lead came from a click-to-WhatsApp ad or a Facebook Page call-to-action button, wrote from the WhatsApp app on Android or iOS (not desktop or web), and you reply within 24 hours, everything you send for the next 72 hours is free too.
- Model: 5,000 calls, about 5M tokens in and 0.5M out. On a small model such as GPT-6 Luna or Claude Haiku 5.5 ($0.10 in / $0.50 out per million tokens) that's about $0.75. On a mid-tier model such as GPT-6.1 Sol or Claude Sonnet 5.5 ($2 / $10) it's about $15 (OpenAI pricing, Anthropic pricing).
- Make: each incoming message runs the scenario once, for about 6 credits (webhook, two Supabase modules, the aggregator, the model call and the send; routers are free). 5,000 runs come to about 30,000 credits, which needs the 40k-credit Core tier: $29/mo billed annually, $34.12 monthly (Make pricing).
- Supabase: the free tier includes a 500 MB database (Supabase pricing). At about 10 short rows per conversation (our estimate), that holds the history of tens of thousands of conversations.
- Total: about $30/mo on a small model, about $44 on a mid-tier one (Make billed annually).
Pitfalls
- Session window. Once 24h have passed since the user's last message, you can only send approved templates, not free-form text. Plan your follow-ups inside the window.
- Model rate limits. A traffic spike can hit your API tier's per-minute limit. Make retries automatically, but add a 1s "Sleep" module before the model call anyway.
- Price hallucinations. Always tell the model "never quote prices". Otherwise it will make them up, and leads will show up angry.
- Marketing consent. The user's first message gives you consent to reply. Don't message people cold: it violates WhatsApp's terms of service.
Prefer not to build this yourself?
We build the production version for you in 4–8 weeks. That includes channel setup, CRM integration and a tuning period on real conversations, with your branding and a prompt tuned to your industry (see the 30-second first-contact deployment). You own the whole stack, and the model and WhatsApp fees are billed to your own accounts.
Which process costs you the most?
Thirty minutes, free. You leave with a concrete fix plan and what the process costs you. The plan is yours, even if you build it without us.
Book a free audit