Artificial IntelligenceMay 15, 2026·12 min read

AI WhatsApp Bot in 15 days: real case, architecture and pricing (2026)

Real case of a client who automated WhatsApp bookings and customer service with AI. Stack (Claude + n8n + WhatsApp Business API), pricing (€2,500-4,500), timeline, results (-60% no-shows, +30% qualified leads).

SM
SprintMarkt
AI + Automation Team

A dental clinic in Valencia with 4 chairs reached out with a clear problem: they lost 28% of appointments because when a patient called outside business hours nobody picked up, and when they called back the next day the patient had already booked elsewhere. Plus 6h/week of the receptionist answering the same 8 questions: hours, prices, emergencies, parking. The solution they asked for sounded magic: an AI WhatsApp bot that understood patients, booked the appointment in the calendar, and filtered real emergencies.

We delivered it in 15 days for €3,200 (not counting the fixed maintenance fee, €180/mo). This post explains exactly how we did it, what went wrong, and what we'd change today. The P&L at 3 months: -60% no-shows, +30% new patients captured, receptionist freed 5h/week for actual management, full ROI in 2.5 months.

Technical architecture (no fluff): official WhatsApp Business API via a BSP provider (360dialog, €25/mo + per-conversation cost when initiated by the clinic, ~€0.03 per outbound message) → webhook that receives incoming messages and passes them to a self-hosted n8n workflow on Hetzner (€5/mo VPS) → the workflow calls Claude (Haiku to classify intent, Sonnet for complex answers) → Claude queries the client's Google Calendar via API, replies and logs in Supabase (free plan up to 500MB) → if it detects a real emergency (fever, acute pain, trauma), it notifies the on-call dentist via Twilio SMS. The whole stack cost the client about €60-90/mo depending on volume, versus the €800/mo Aivo or Landbot would have charged for equivalent functionality.

Day 1-3 — Discovery and flow design: two sessions with the owner + receptionist. We mapped the 12 most frequent conversations: new appointment, reschedule, cancel, price of filling/cleaning/implant, hours, location, parking, emergencies, doubts about ongoing treatment, reminders, payment, invoice. From that came 4 main intents (appointment, info, emergency, other) and a simple decision tree. We documented prices and policies in a Notion that later became the RAG knowledge base.

Day 4-6 — WhatsApp Business API + n8n + Claude: number registration in 360dialog (24-48h Meta verification), n8n installation in Docker (one afternoon), connection of the WhatsApp inbound webhook to n8n, first "hello world" flow. Claude API connection: system prompt with the clinic's personality (warm but professional tone, no excessive emojis, route emergencies in fewer than 2 messages). We spent 1 day polishing the prompt — the secret was giving it real few-shot examples from the receptionist, not abstract instructions.

Day 7-9 — RAG with the knowledge base + calendar integration: we indexed the Notion in a simple vector DB (Supabase pgvector, more than enough for 80 documents) with Voyage embeddings. When a patient asks "how much is a filling?", Claude searches the base, finds the current price, replies in natural tone and adds the caveat that the final price depends on the review. Google Calendar integration via OAuth, function to create/cancel/find appointments. Here came the first scare: Claude invented a price for a treatment that wasn't documented. Fix: explicit instruction in the prompt "if you can't find the data in the base, DON'T invent, route to the clinic" + automatic post-response verification.

Need help with your project?

Calculate your budget in 2 minutes with our interactive tool.

Calculate budget

Day 10-12 — Emergency detection + human handoff: classifier with Haiku (cheaper and faster) that scores every inbound message 0-3: 0 informational, 1 appointment, 2 incident, 3 emergency. If score=3, the bot replies "I'll alert the on-call dentist" and fires SMS to the owner via Twilio. If the patient writes "I want to talk to a human" or the bot loses the thread twice in a row, immediate handoff. This is CRITICAL — without handoff, patients lose patience and the bot loses credibility.

Day 13-14 — Testing with real patients (silent mode) + adjustments: we routed the bot to 20 recurring patients who already knew the clinic. We collected the 14 complaints and fixed them: tone too formal, didn't understand "empaste" in Valencian, gave prices with VAT when local convention was without VAT, didn't know they closed during Fallas. Each fix = 30 min in the prompt or knowledge base.

Day 15 — Go-live + metrics dashboard: public activation, pinned message on Instagram and Google Business announcing the new channel. Simple Metabase dashboard for the owner: conversations/day, % auto-resolved, appointments created, emergencies escalated, average response time. First week: 47 conversations, 38 auto-resolved (80%), 9 escalated to human, 0 serious incidents.

What I'd change today if redoing it: I'd invest 2 more days in the prompt and the knowledge base — week 1 findings were all about missing context, not technical bugs. Also: start with n8n cloud (€20/mo) instead of self-hosted, so the client can maintain it alone if they leave the service. And add from day 1 a light fine-tuning of the classifier with their own data instead of generic Haiku — it would halve cost per conversation.

Indicative pricing for your sector (based on similar 2026 SprintMarkt projects): standard dental/medical/veterinary clinic (1 number, 1 calendar, ~30 intents): €2,500-3,500 setup + €150-220/mo. Legal practice / consultancy (more legal nodes, lawyer escalation): €3,500-4,500 + €200/mo. Restaurant with bookings and dynamic menu: €2,500-3,200 + €130/mo. Real estate with property catalog + lead screening: €4,000-5,500 + €250/mo. Pricing includes 15-day setup, 1 month of post-launch support and 2 prompt-tuning sessions in the first 3 months.

Frequently Asked Questions

Direct answers to the most common questions on this topic.

Does it work with a regular WhatsApp number or do I need Business API?

You need WhatsApp Business API (not to be confused with free WhatsApp Business). The API is the only official way for a bot to reply automatically with Meta compliance. Registration is done via a BSP (Business Service Provider) like 360dialog, Twilio or Vonage — they cost €25-50/mo + per-message cost. Free WhatsApp Business does NOT allow automated bots: if you try it with unofficial APIs, Meta can ban the number permanently.

And GDPR? Can I store patient/client conversations?

Yes, with conditions. You need: (1) Accessible privacy notice stating conversations are processed by AI and where. (2) Legal basis — consent (better for marketing) or legitimate interest (valid for customer service). (3) If you store health or sensitive data, encryption at rest and on-demand deletion process within 30 days. (4) If you use Anthropic's Claude API, you already comply with DPF (EU-US Data Protection Framework). At SprintMarkt we always deliver a GDPR compliance document + ready-to-paste privacy notice text for the client's website.

Can I scale it to several sectors with the same bot?

Yes, but with multi-tenant. Each client (clinic, consultancy, restaurant) has its own knowledge base, its own system prompt, its own calendar and its own WhatsApp channel. You share infrastructure (n8n, Claude, Supabase) but NOT data. At SprintMarkt we have clients with 5+ businesses under the same bot — per-unit cost drops by half and management remains clean.

How many messages/month does the €180 fee include?

The fixed fee covers infrastructure, monitoring, prompt maintenance and backups. Outbound messages initiated by the clinic (notifications, reminders, marketing) have variable cost: Meta charges ~€0.03 per message in Spain. In an average dental clinic that's 400-800 outbound messages/mo = €12-24 additional. Inbound messages (patient writes first) are free.

What if the bot gets it wrong and gives a wrong price or loses an appointment?

For this we have 3 layers: (1) Pre-response validation: if the bot invents a price not in the base, it's logged as an anomaly and the client is notified. (2) Auto-response limit — if the bot loses the thread twice, automatic human handoff. (3) Legal coverage — we include in the privacy notice and the bot's first message the caveat "AI assistant, prices are indicative and confirmed at the clinic". In 18 months running 10+ bots we haven't had a single formal complaint.

Does it understand Valencian/Catalan/Galician or only Castilian Spanish?

Claude understands and replies in Valencian, Catalan, Galician, Basque, Portuguese and all European languages without additional training. The trick is in the system prompt: "if the user writes you in Valencian, reply in Valencian; if in Castilian, in Castilian". And it's good to have technical terms in both languages in the knowledge base. We've built ES/CA, ES/GA and ES/EN bilingual bots for clients in Catalonia, Galicia and tourist areas.
#WhatsApp#Claude API#n8n#WhatsApp Business API#Chatbot IA#Automatización#RAG
Share:

Have a project in mind?

Tell us your idea and we'll help make it happen. No-obligation quote.

Presupuesto sin compromiso

Have a project in mind?en mente?

Tell us your idea and we'll help you make it happen. No-obligation quote.

Respuesta en 24h
100% confidencial
Sin compromiso