Website Chat Bot
The Website Chat Bot replaces a third-party AI chat widget (like the one bundled with GoHighLevel) with a fully integrated assistant built into r4ptor — grounded in your own class list, fees, and knowledge, with every captured lead flowing straight into your New Starter Pipeline.
How it works
- A visitor lands on your website and clicks the floating chat bubble
- They ask a question — the bot answers using your club's actual classes, fees, and any extra knowledge you've given it
- If they're interested in joining, the bot offers two paths: book a free trial now, or request a callback if they're not ready to commit
- Either way, their details land in your Trial Starters pipeline, just like a
/joinform submission - You can review every conversation in Bot Conversations, get alerted the moment one starts, and even step in and reply yourself while it's still live
Setting up the bot
Go to Settings → Website Chat Bot.
| Setting | What it does |
|---|---|
| Enable chat bot | Turns the embedded widget on or off |
| Provider | Currently only Claude (Anthropic) is supported |
| Model | Haiku is recommended — fast and inexpensive, since this runs on every website visitor's message, not just admin queries |
| API Key | A separate key from AI Insights — the bot is public-facing and can see much higher traffic, so keeping it isolated makes cost and abuse easier to reason about |
| Knowledge | Free text for anything the bot should know that isn't already in your classes/fees data — uniform policy, grading process, parking, what to bring, etc. |
The bot answers only from your class list, your fee settings, and the Knowledge field above. If it doesn't know something, it says so and suggests contacting the club directly — it never guesses or invents pricing, policy, or scheduling details.
Once enabled, copy the embed snippet from Marketing & Ads → Embed on Your Website and paste it into a Custom HTML block on your website — the same way you'd embed the trial booking form (see WordPress / website integration). The snippet is a small floating chat bubble that expands into a full chat panel, and resizes itself automatically so it never clips or scrolls awkwardly on your page.
What the bot can do
Answering questions
The bot can discuss your classes (schedule, venue, age group), your fees, and anything you've added to the Knowledge field. It stays on topic — it won't discuss anything unrelated to the club, and it ignores any attempt by a visitor to change its instructions.
Booking a free trial
If a visitor is ready to commit, the bot collects the child's name, the parent/carer's name, email, phone, and which class, then books the trial exactly as if they'd filled in the /join form:
- Lands in the pipeline as Trial Booked
- The next available date for that class is picked automatically
- The
TRIAL_CONFIRMATIONcomms fires the same as any other booking
Requesting contact instead
Not every visitor is ready to book on the spot. If they'd rather be contacted — they have more questions, want to think it over, or just ask for a callback — the bot only needs their name and an email or phone number:
- Lands in the pipeline as New (the same stage a lead lands in when you add one manually)
- No trial date is set, and no automated booking-confirmation comms fires — it's simply a new opportunity waiting for you to follow up
- The class and a short note on what they're after are captured if mentioned, but optional
Reviewing conversations
Open Bot Conversations from the home screen tile. Each row shows a preview of the first message, how many messages were exchanged, and when it was last active.
- A red dot marks conversations you haven't opened yet, and the home tile shows a badge with your total unread count
- Conversations that resulted in a captured lead show a Lead tag; conversations you're actively replying to show a Live tag instead
- Open a conversation to read the full transcript — if it captured a lead, you'll see their name and current pipeline status at the top
- Dismiss hides a conversation from the default list without deleting it — use Show dismissed to bring dismissed conversations back into view
Instructor alerts
Two separate, opt-in alert toggles are available in Settings — both off by default, both send to your Instructor Email / Instructor Phone:
| Toggle | Location | Fires when |
|---|---|---|
| Alert me on new conversations | Settings → Website Chat Bot | A visitor starts chatting with the bot — once per conversation, regardless of whether it results in a lead |
| Alert me on new opportunities | Settings → Pipeline Alerts | A new lead lands in your funnel via the /join form or the bot (either booking a trial or requesting contact) |
These are deliberately separate — a bot conversation starting is a different, noisier signal than an actual lead landing in your funnel, so you can turn on whichever one is useful to you. Neither fires for leads you or your staff add manually — you already know about those, having just typed them in.
Taking over a conversation live
While a conversation is in progress (or even after it's finished), you can reply directly as the instructor instead of leaving it to the bot.
Open the conversation and type your reply in the box at the bottom. As soon as you send it:
- The bot stops auto-replying to that visitor — every message that visitor sends from then on is simply logged for you to see, no automated response is generated
- The visitor's chat widget picks up your reply automatically within a few seconds — no page refresh needed — and shows it in a distinctly styled bubble labelled Instructor, with a one-time note that "an instructor has joined the conversation"
- If the visitor sends another message, the conversation is marked unread again, so it resurfaces in your Bot Conversations unread badge just like a brand-new conversation would
This is a one-way handover — once you've taken over a conversation, it stays with you; the bot won't resume auto-replying to that visitor.
Cost & abuse controls
The bot is public and unauthenticated, so a few safeguards keep it from running away on cost or getting spammed:
- Rate limiting — 30 messages per hour per visitor IP address
- Conversation length cap — a single conversation is capped at 30 turns; visitors are asked to start a fresh chat beyond that
- Per-message length cap — 2,000 characters
- Daily token spend cap — once your instance's daily AI token usage (set via
BOT_DAILY_TOKEN_CAP, defaults to a sensible ceiling if unset) is reached, the bot fails safe: it stops calling the AI and tells visitors to contact you directly instead, rather than risk unexpected spend
AppSettings keys
| Key | Purpose | Default |
|---|---|---|
BOT_ENABLED | true / false — turns the embedded widget on or off | true |
BOT_AI_PROVIDER | claude or none | None |
BOT_AI_MODEL | Model ID, e.g. claude-haiku-4-5 | None |
BOT_AI_API_KEY | API key for the bot — separate from AI_API_KEY used by AI Insights, masked after entry | None |
BOT_KNOWLEDGE | Free text the bot draws on alongside your classes and fees | None |
BOT_ALERT_ENABLED | true / false — email/SMS alert on every new bot conversation | false |
BOT_DAILY_TOKEN_CAP | Daily AI token spend ceiling before the bot fails safe | A sensible built-in default |
LEAD_ALERT_ENABLED | true / false — email/SMS alert on every new opportunity (from /join or the bot) | false |
See App Settings for where these are configured.