Skip to main content

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

  1. A visitor lands on your website and clicks the floating chat bubble
  2. They ask a question — the bot answers using your club's actual classes, fees, and any extra knowledge you've given it
  3. 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
  4. Either way, their details land in your Trial Starters pipeline, just like a /join form submission
  5. 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.

SettingWhat it does
Enable chat botTurns the embedded widget on or off
ProviderCurrently only Claude (Anthropic) is supported
ModelHaiku is recommended — fast and inexpensive, since this runs on every website visitor's message, not just admin queries
API KeyA 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
KnowledgeFree 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 only knows what you tell it

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_CONFIRMATION comms 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:

ToggleLocationFires when
Alert me on new conversationsSettings → Website Chat BotA visitor starts chatting with the bot — once per conversation, regardless of whether it results in a lead
Alert me on new opportunitiesSettings → Pipeline AlertsA 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

KeyPurposeDefault
BOT_ENABLEDtrue / false — turns the embedded widget on or offtrue
BOT_AI_PROVIDERclaude or noneNone
BOT_AI_MODELModel ID, e.g. claude-haiku-4-5None
BOT_AI_API_KEYAPI key for the bot — separate from AI_API_KEY used by AI Insights, masked after entryNone
BOT_KNOWLEDGEFree text the bot draws on alongside your classes and feesNone
BOT_ALERT_ENABLEDtrue / false — email/SMS alert on every new bot conversationfalse
BOT_DAILY_TOKEN_CAPDaily AI token spend ceiling before the bot fails safeA sensible built-in default
LEAD_ALERT_ENABLEDtrue / false — email/SMS alert on every new opportunity (from /join or the bot)false

See App Settings for where these are configured.