Setting up WhatsApp automation for AI receptionists

I built an AI receptionist that handles incoming WhatsApp messages, does basic triage with an AI, and hands awkward cases to a human. It runs on n8n, uses a WhatsApp Business API provider for messaging, and keeps short-lived conversation state so follow-ups do not start from scratch. This is the wiring I used, when I hand work over to a person, and the checks I put in place to stop the thing getting clever in the wrong way.

Start by wiring WhatsApp to n8n. Pick a WhatsApp Business API provider that gives you a webhook for incoming messages. In n8n, create a webhook node that accepts messages and pulls out the phone number, message id, timestamp, and text. Add a simple session store, such as a Redis key per phone number with a 30-minute TTL. Use an HTTP request node to send the message text and recent context to your AI model. Keep prompts short and include only the last two turns of context.

  1. Receive the webhook and normalise the payload into a standard JSON shape.
  2. Check session data in Redis and attach the last 1–2 messages.
  3. Call the AI with a prompt template and a max token limit.
  4. Evaluate the AI response and confidence field in a Switch node to choose an action.

Make sure the WhatsApp provider supports templates for outbound messages you must send before a user replies. Store template IDs in a credential vault, not in plaintext.

Human-in-the-loop is the safety valve. I use a confidence threshold from the AI to decide when to escalate. For plain intents like “opening hours” or “directions”, I accept auto-replies if confidence is above 0.7. If confidence drops below 0.6, or if the message contains sensitive markers such as “complaint”, “refund”, “legal” or numbers longer than eight digits, I create a human task.

That task is a compact JSON card with the conversation history, suggested reply, and an action set: approve, edit and send, or escalate externally. I send that card to a lightweight queue. In practice, I have used an n8n HTTP node to POST the card to a small web dashboard, and a Slack webhook for faster triage. When someone edits or approves the reply, n8n receives the approval webhook, updates the Redis session, sends the reply through the WhatsApp provider, and logs the resolution.

For verification, include a status field on the session object and reject automated send attempts if the status is pending human. That stops the AI from double-sending while a person is deciding what to do.

Tuning the workflow and keeping the chat usable takes a bit of work. Keep prompts explicit about tone, length, and disallowed content. Use short quick-reply options to narrow user intent; they cut down on free-text ambiguity and usually lift AI confidence. Log every message, AI output, and action with a unique conversation id, and capture timing so you can measure average human handover time.

Audit a random 5–10% of escalations each week to catch prompt failures or misrouted intents. For complex queries, send a short acknowledgement while the human handles it, for example: “I’ve passed this to an advisor, they’ll reply soon.” That keeps the chat live and avoids repeat messages from the user. Make sure data retention and consent rules are followed in your region; store minimal PII and delete session keys after 30–90 days.

A few things helped in practice: restrict AI replies to 1–2 sentences for the receptionist role, flag numeric or legal-looking content for human review, and use quick-reply buttons for actions like “Book a meeting” or “Request a quote”. Track automated resolution rate, average human response time, and the share of escalations that need another escalation. Set the confidence thresholds from those numbers, not from guesswork.

The setup stays fairly lean in n8n, uses the WhatsApp webhook as the single ingress, and treats human reviewers as the backstop. That keeps conversations moving, cuts down on daft AI mistakes, and gives someone a clean way to fix the odd edge case without breaking the flow.

Related posts

Agentic AI still needs domain judgement

Agentic AI can write the thing, but it still cannot tell you whether the thing is right. That is where domain expertise matters, because a clean config or neat bit of glue logic can still be wrong in...

Weekly Tech Digest | 06 Jul 2026

Stay updated with the latest in tech! This digest covers AI ethics, auto industry shifts, and the impact of politics on technology, exploring today's pressing issues.

wolfCOSE zero-allocation parsing in embedded C

wolfCOSE looks sensible only if you care about what your firmware actually has to carry. I like that, because on small targets the wrong crypto feature can cost more than the message itself, and there...