WhatsApp Chat Bot
The same AI assistant that powers the Website Chat Bot can also answer questions and book trials on your club's own WhatsApp number — grounded in the exact same classes, fees, and knowledge, with every captured lead flowing into your New Starter Pipeline exactly like a website or form booking.
This page covers WhatsApp-specific setup and behaviour. Everything about what the bot knows and how it answers — the Knowledge field, cost controls, how leads are captured — is shared with the website bot and documented there; read that page first if you haven't already.
What you need
- A Twilio account (the same one used for SMS, if you already have it configured)
- A WhatsApp-enabled sender — either Twilio's free Sandbox (for testing only) or your own approved WhatsApp Business sender (for real customers)
Twilio's WhatsApp Sandbox is a shared number you can start using in minutes, with no approval process — perfect for testing the bot end-to-end before going live. It has real limitations though: anyone who wants to message it first has to send a join code (e.g. "join happy-tiger") to opt in, and it isn't yours alone — Twilio can reset the join code, and it's not something you'd hand out to real customers.
For real customers, you need your own WhatsApp Business sender registered against your own Twilio number, approved via Meta. That's a separate, one-time setup step covered below.
Step 1 — Testing with the Twilio Sandbox
Use this to get the bot fully working and verified before applying for a real number.
- In the Twilio Console, go to Messaging → Try it out → Send a WhatsApp message
- Twilio gives you a Sandbox number and a join code (e.g. "join happy-tiger")
- From your own phone, send that join code as a WhatsApp message to the Sandbox number — this opts your number in so the Sandbox will respond to it (anyone testing the bot needs to do this once)
- Copy your Account SID and Auth Token from the Console Dashboard (same values used for SMS)
- Under Sandbox settings, set "WHEN A MESSAGE COMES IN" to:
(replacehttps://yourclub.r4ptor.app/api/whatsapp/webhook
yourclubwith your actual subdomain), method HTTP POST - In r4ptor, go to Settings → WhatsApp Chat Bot and fill in the Sandbox number as your Twilio WhatsApp Number (see Step 3 below)
You can now message the Sandbox number from your own phone (having sent the join code) and have a full conversation with the bot, exactly as a customer would.
The Sandbox is for verifying everything works — not for taking real customer enquiries. Anyone messaging it has to know and send the join code first, which no real prospective parent will ever do unprompted. Move to a real WhatsApp sender (Step 2) before promoting the number anywhere public.
Step 2 — Getting a real WhatsApp Business sender
This is a one-time approval process through Twilio and Meta (WhatsApp's parent company). The exact screens change over time, so follow Twilio's own current flow, but broadly:
- In the Twilio Console, go to Messaging → Senders → WhatsApp senders
- Register a new WhatsApp sender — you'll either use a Twilio number or bring your own
- You'll need a Meta Business Manager account for your club (or your franchise's parent business) — Twilio walks you through connecting or creating one
- Meta reviews and verifies your business — this can take anywhere from a few hours to a few days
- Once approved, that number is yours alone — no join code, no sharing
WhatsApp only allows free-form replies within a 24-hour window of the customer's last message. r4ptor's automatic re-engagement nudge (see below) is specifically designed to always stay inside that window, so it never needs a pre-approved message template. If you ever want to message a customer completely out of the blue (no prior conversation), that requires a Meta-approved template message — a separate, more involved process not currently built into r4ptor.
Once approved, update your Twilio WhatsApp Number setting (Step 3) to the real number, and update the webhook URL on that sender (same URL as the Sandbox step) if it isn't already set.
Step 3 — Fill in the fields
Go to Settings → WhatsApp Chat Bot.
| Field | Value |
|---|---|
| Twilio Account SID | Starts with AC — shared with SMS, from your Twilio Console Dashboard |
| Twilio Auth Token | Shared with SMS, from your Twilio Console Dashboard. Masked after entry. |
| Twilio WhatsApp Number | Your Sandbox number (testing) or your approved WhatsApp sender (production), in E.164 format: +447700900123 |
The bot itself (provider, model, API key, Knowledge) is configured once under Settings → Website Chat Bot and applies to both channels — there's no separate AI configuration for WhatsApp.
How it works
Once set up, a customer messaging your WhatsApp number gets exactly the same assistant as your website widget: it answers questions from your classes, fees, and Knowledge text, and can either book a free trial or take a callback request. See Website Chat Bot → What the bot can do for the full detail — this section only covers what's genuinely different on WhatsApp.
Booking more than one child
Two children can be booked together directly in the conversation — the bot asks about each one in turn (name, class, date) and books them both. For three or more children, the bot doesn't try to walk through the whole booking in chat — it points the visitor to your online booking form instead, which takes about a minute per child and is the more reliable route once a conversation is juggling that many details at once.
Spam and off-topic messages
WhatsApp numbers attract more spam and unrelated messages than a website chat widget embedded on your own page. If an incoming message looks like spam, an advertisement, or has nothing to do with the club, the bot doesn't reply — it stays silent and the conversation appears in Bot Conversations with a Pending Review flag, so you can decide whether it deserves a response. Genuine questions are never flagged this way, even off-topic-sounding ones from a real prospective parent.
Re-engagement nudges
If a visitor starts a conversation but goes quiet partway through, r4ptor automatically sends a gentle follow-up — paced at least 3 hours apart, up to 3 times, and always within 24 hours of their last message (see the note on WhatsApp's messaging window above). No setup needed; this runs automatically once the bot is configured.
Taking over a conversation — one important difference from the website
The live takeover feature works the same way on WhatsApp, with one thing worth knowing: a website chat is a fresh conversation every time a visitor opens the widget, but WhatsApp reuses one ongoing conversation per phone number, indefinitely. That means once you take over a conversation with a specific customer, the bot stops auto-replying to that number permanently — not just for the current conversation. If that customer messages again next month, you (not the bot) will need to reply, or ask a colleague to.
Formatting
WhatsApp renders its own lightweight formatting — a single asterisk on each side of a word makes it bold (e.g. *Snakes & Cranes*). The bot is instructed to use this correctly and consistently; you don't need to do anything for this to work.
AppSettings keys
| Key | Purpose | Default |
|---|---|---|
TWILIO_ACCOUNT_SID | Twilio Account SID — shared with SMS | None |
TWILIO_AUTH_TOKEN | Twilio Auth Token — shared with SMS | None |
TWILIO_WHATSAPP_FROM_NUMBER | Your Sandbox or approved WhatsApp sender number | None |
The bot's own configuration (BOT_ENABLED, BOT_AI_PROVIDER, BOT_AI_MODEL, BOT_AI_API_KEY, BOT_KNOWLEDGE, BOT_DAILY_TOKEN_CAP) is shared with the website bot — see Website Chat Bot → AppSettings keys.