All postsDelivery

How to Build an AI Chatbot for a Client Website (Without Overselling It)

David IyaDavid Iya September 8, 2026 10 min read
A laptop on a clean studio desk showing a soft-glowing website chat window mockup in warm morning light
Original image, Claude Code Profit Room
TL;DR
  • The chatbot is not the product. Answered questions and captured leads are the product. Scope the build around the ten to fifteen questions the client's customers actually ask, not around the technology.
  • Ground the bot in the client's real content so it cannot make things up. An ungrounded chatbot that invents a return policy or a price is worse than no chatbot, because now the client is liable for what it said.
  • Price it as a lead-capture and support-deflection outcome, not as a chatbot. A widget that books three extra calls a month or deflects thirty support emails is easy to justify. A chatbot as a feature is easy to cut.

Start With the Questions, Not the Chatbot

Before you write a line of code, get the list of questions the client's customers actually ask. Not the questions the client thinks they ask - the real ones. Pull them from the contact form submissions, the support inbox, and the FAQ page. Most small businesses answer the same ten to fifteen questions over and over: hours, pricing, location, availability, whether you do X, how to book.

That list is the scope of the build. A chatbot that reliably answers those fifteen questions and knows when to hand off is worth money. A chatbot that tries to answer anything a visitor types is a liability. Narrowing the job is the single decision that separates a build that ships from a build that embarrasses the client.

Ask the client to forward you the last thirty messages from their contact form or support inbox. Twenty minutes of reading gives you the real question list, the client's actual tone of voice, and three build features you would never have guessed from the brief.

Ground the Bot in the Client's Real Content

The most important technical decision is grounding: the chatbot answers only from the client's own content, and it says it does not know rather than inventing an answer. An ungrounded model will confidently state a return window, a price, or a warranty that does not exist. The moment it does, the client owns that statement. Grounding is not a nice-to-have. It is the difference between an asset and a lawsuit risk.

The practical build: collect the client's pages, FAQ, policy documents, and service descriptions into a small knowledge base. Feed only that content to the model as context and instruct it to answer from that content alone. When a question falls outside the content, the bot says so and offers the escalation path instead of guessing.

QuestionUngrounded botGrounded bot
What is your return policy?Invents a plausible 30-day policy that does not match realityQuotes the client's actual policy, or says it will connect the visitor to someone who can confirm
Do you service my area?Guesses yes to be helpfulAnswers from the client's real service-area list, or asks for a zip code and escalates
How much is a project like mine?Makes up a numberExplains that pricing is scoped per project and captures the lead for a quote

Grounded versus ungrounded chatbot behavior

This is the same discipline that makes a CLAUDE.md file work on a client build: constrain the model to the client's real facts. The full approach is in [the CLAUDE.md file for client projects](/blog/claude-md-file-for-client-projects).

Build It With a Human Handoff Baked In

The chatbot's job is not to answer everything. It is to answer the routine questions instantly and route everything else to a human without dropping the visitor. Every unanswered question is a lead. The bot should capture a name and an email or phone number the moment it hits a question it cannot ground, then tell the visitor someone will follow up.

This is where the value actually lives. A support bot that only deflects is a cost saving. A support bot that captures every off-script question as a qualified lead is a revenue engine. Build the escalation as a first-class feature: a form the bot fills as it talks, a notification to the client, and a confirmation to the visitor.

  1. Bot answers routine questions from grounded content.
  2. On any off-script or high-intent question, bot captures contact details in the flow of conversation.
  3. Client gets an instant notification with the visitor's question and details.
  4. Visitor gets a clear next step so the conversation never dead-ends.

Embed It Without Breaking the Client's Site

Ship the chatbot as a lightweight widget the client drops into their site with a single script tag, not as a rebuild of their website. Most small business sites run on a platform the client already pays for. Do not touch it beyond adding one embed snippet. The widget lives in an iframe or a script that loads asynchronously so it never slows the page or conflicts with the client's existing setup.

Test it on the client's actual site before handoff, not just on localhost. Check it on mobile, check it does not cover the client's own call-to-action button, and check it loads even when the visitor is on a slow connection. The widget breaking a client's site is the fastest way to turn a paid build into a refund conversation.

Never ship a chatbot that spends the client's AI credits behind an open, unauthenticated endpoint. Put the API key server-side, lock the widget to the client's domain, rate-limit it, and cap the model and token spend. An open faucet on a funded key can drain a budget overnight.

Price It as an Outcome, Not a Feature

Nobody buys a chatbot. They buy fewer missed enquiries and fewer hours answering the same questions. Price against that. If the widget captures three extra leads a month that would otherwise have bounced, and the client closes even one, the build has paid for itself many times over. Frame the quote around captured leads and deflected support, and the price stops being a comparison to a five-dollar plugin.

The strongest structure is a build fee plus a small monthly retainer to maintain the grounding as the client's content changes. Policies update, prices change, new services launch. A chatbot grounded in last quarter's content slowly goes stale. The retainer keeps it accurate and gives you recurring revenue. The pricing logic is the same one in [value-based pricing - stop charging hourly](/blog/value-based-pricing-stop-charging-hourly).

Builders in the Claude Code Profit Room share their real chatbot scopes, grounding setups, and pricing - with actual numbers - at https://www.skool.com/claudecodeprofitroom/about. It is the fastest way to see what a website chatbot build should cost and include before you quote your first one.
Free builder-to-paid drops, straight to your inbox

Short, practical drops on offers, outreach, pricing, and closing clients with Claude Code. No spam, unsubscribe anytime.

Frequently asked

How long does it take to build an AI chatbot for a client website?

A grounded website chatbot for a small business is a two to four day build once you have the client's content and question list. The model integration is fast. Most of the time goes into collecting and structuring the client's real content so the bot cannot invent answers, wiring the human handoff, and testing the widget on the client's actual site across mobile and desktop.

How do I stop an AI chatbot from making things up on a client site?

Ground it. Feed the model only the client's own pages, FAQ, and policy documents as context, and instruct it to answer from that content alone. When a question falls outside the grounded content, the bot should say it does not know and capture the visitor's details for a human follow-up rather than guessing. An ungrounded chatbot that invents a policy or price makes the client liable for what it said.

What should I charge to build a chatbot for a client website?

Price it as a lead-capture and support-deflection outcome, not as a chatbot feature. A build fee plus a small monthly retainer to keep the grounding current is the strongest structure. Anchor the quote to what the widget is worth - extra leads captured and support hours saved - so it is not compared to a cheap off-the-shelf plugin. Value-based pricing applies directly here.

Should the chatbot try to answer every question a visitor asks?

No. The most valuable chatbot answers the routine questions instantly and routes everything else to a human without dropping the visitor. Every off-script or high-intent question is a lead. Build the escalation as a first-class feature: capture the visitor's contact details in the flow of the conversation, notify the client immediately, and give the visitor a clear next step.

Where should I host the chatbot so it does not break the client's website?

Ship it as a lightweight widget the client adds with a single script tag, loaded asynchronously so it never slows the page. Keep the API key server-side, lock the widget to the client's domain, rate-limit requests, and cap model and token spend so a funded key cannot be drained through an open endpoint. Test on the client's real site, on mobile, before handoff.

Last reviewed September 8, 2026.

David Iya
Co-founder, builder-operator

Co-founder of the Claude Code Profit Room. Went from shipping software to closing paying clients, and now teaches builders the selling half of the equation.

More from David Iya →

Ready to sell what you build?

Take the Profit Quiz and find your fastest path to your next client.