PepoChat
Knowledge baseAI chatbotHow-to

How to Train an AI Chatbot on Your Own Website and PDFs (No Code)

A step-by-step guide to training a customer support chatbot on your website, help docs and PDFs without code — what “training” really means, how to prepare content, and how to test it.

PepoChat TeamPublished Last verified 12 min read
Chat message bubbles floating on a frosted glass screen, representing an AI chatbot answering questions

Short answer

To train an AI chatbot on your website and PDFs without code, you don't train a model at all. You give a support platform your URLs and files, it indexes the text into a private knowledge base, and the chatbot retrieves the relevant passages for every answer. In PepoChat that takes four steps: add your website, upload your documents, test with real questions, and set the handoff rules. A small site is ready in about ten minutes.

Most guides on "training a chatbot" are written for engineers. This one is for the person who owns the support inbox. You will finish with an assistant that answers from your own help docs, product pages and PDFs, tells customers when it doesn't know, and hands the hard ones to a human. No Python, no API keys, no vector databases to run.

We'll use PepoChat for the screenshots and specifics, but the method is the same for any platform built on retrieval. Where PepoChat has a limit or a default, we say so, because those numbers are exactly what you need when you are deciding what to upload.

What "training" a chatbot actually means

The word training causes most of the confusion, so it is worth two minutes to get it right.

When a company like OpenAI trains a model, it runs a huge computation over a huge dataset and produces new model weights. That is expensive, slow, and permanent: you cannot "untrain" a wrong fact. Almost nobody trains a model to build a support bot.

What support platforms do instead is retrieval-augmented generation, usually shortened to RAG. The model is left alone. Your content is split into chunks, each chunk is turned into a numeric fingerprint (an embedding), and the fingerprints are stored in an index. When a visitor asks a question, the platform finds the chunks whose meaning is closest to the question, hands those chunks to the model together with the question, and asks it to answer only from that material. You can read a neutral overview of the technique on Wikipedia's page on retrieval-augmented generation.

The practical differences matter for you:

Fine-tuning a modelRetrieval (what support bots use)
What changesThe model's weightsAn index of your content
Time to add a pageHours to days, plus a retraining runSeconds to minutes
Removing a wrong factRetrainDelete or edit the page
Can it cite a source?NoYes, the retrieved passage
Cost per updateHighNear zero for unchanged pages
Skills requiredML engineeringCopy a URL, drag a file

So when a platform says "train your chatbot on your website", read it as "index your website". Everything below is about building a good index and checking that the bot uses it well.

Step 1: Decide what the bot should be able to answer

Before you upload anything, write down the ten questions your team answers most often. Pull them from your inbox, your live chat transcripts, or just ask the people who answer them. Typical lists look like:

  • How do I reset my password / change my plan / cancel?
  • Where is my order, and how do returns work?
  • Do you integrate with X?
  • What does the Pro plan include and how much is it?
  • Do you offer onboarding calls, and how do I book one?

This list does two jobs. It tells you which content to prioritise: if "where is my order" is a third of your volume, the shipping and returns pages go in first. And it becomes your test set in Step 5, so you can measure whether the bot actually improved anything.

A good rule: the bot should own the questions that have a written answer somewhere. Questions that need judgement, account access, or a refund decision should go to a human, and the bot's job there is to collect the details and hand off cleanly. We cover the handoff rules in Step 6.

Step 2: Prepare your content

The single biggest predictor of answer quality is whether the answer exists, in writing, in a form the indexer can read. Spend your time here rather than on prompt tweaks.

A tall, messy stack of paper folders and handwritten notes, the kind of unstructured documentation teams usually start with
Most teams start with this: scattered documents, some current, some not. The bot is only as good as what you feed it.

Supported file types

PepoChat accepts the formats support teams actually have lying around:

FormatNotes
PDFText is extracted; scanned PDFs are read with vision, so image-only pages still work
Word (.docx)Headings and lists are preserved, which helps chunking
Markdown (.md)Ideal for docs exported from GitHub, Notion or a docs site
HTML (.html, .htm)Navigation, scripts and styles are stripped before indexing
Plain text (.txt)Fine for FAQs and policies
CSVGood for price lists, SKU tables and compatibility matrices
JSONUseful for exported FAQ data
Images (JPG, PNG, WebP, GIF)Screenshots, diagrams and photographed documents are described and indexed

Each file becomes one knowledge source. On the free plan you have 10 sources and Pro removes the limit; see the pricing page for what else changes.

Content checklist

Go through each document with these questions:

  1. Is it current? Outdated PDFs are the most common cause of wrong answers. If a price list changed in March, the bot will confidently quote the old one until you replace the file.
  2. Does it contain the answer, or just point at it? A page that says "contact support for return instructions" teaches the bot to say "contact support". Write the instructions.
  3. Is it self-contained? Retrieval works on chunks of a few hundred words. A chunk that reads "as described in section 4 above" is useless on its own. Put the key fact in the same paragraph as the question it answers.
  4. Is it public-safe? Everything you upload can be quoted to a visitor. Internal notes, pricing floors, and staff-only workarounds do not belong in a customer-facing knowledge base. PepoChat isolates every workspace's knowledge base, but isolation between customers is not the same as isolation from customers.
  5. Are there duplicates? Two versions of the same policy make the bot hedge or mix them. Keep one.

A useful habit is a simple FAQ document with the question as a heading and a complete answer beneath it. It is the single most retrieval-friendly format there is, because the chunk boundaries fall exactly where the questions do.

Step 3: Add your website

For most businesses the website already holds most of the answers, so this is the highest-value step. PepoChat gives you four ways to add web content, and choosing the right one saves you sources.

Single URL

Paste one address. The page is fetched, cleaned of navigation and scripts, converted to text and indexed. Use it for a handful of important pages: pricing, shipping policy, a specific help article. Each URL is one source.

Paste up to 20 URLs at once. Same result as adding them one at a time, just faster. Each link still counts as a source, so this is for curated selections, not whole sites.

Sitemap import

Give it your sitemap (usually https://yoursite.com/sitemap.xml) and it imports every page listed, up to 50, following the sitemap protocol including sitemap indexes that point to child sitemaps. The whole import counts as one source, which is what makes it the right choice for docs sites and help centres.

Crawl

Give it a starting page and it follows links on the same site, breadth-first, up to 50 pages and three levels deep. You can add include and exclude path filters, so /docs goes in and /blog and /careers stay out. Like a sitemap import, one crawl is one source.

A few details worth knowing, because they explain most "why didn't it pick up page X" questions:

  • robots.txt is respected. If your site disallows a path for crawlers, PepoChat will not fetch it. Google has a clear explanation of how robots.txt rules work if you need to adjust yours.
  • Fetches are paced. There is a politeness delay between requests to the same site, so a 50-page crawl takes a few minutes rather than a few seconds. Your server will not notice.
  • JavaScript-rendered content is a problem for every crawler. If your help centre only shows text after a script runs, the fetched HTML may be nearly empty. Export the content as Markdown or upload the PDF instead.
  • Pages over 5 MB are skipped, which in practice only affects PDFs embedded as pages.
  • Private and internal addresses are refused, and any redirect that lands on one is refused too.

Once the import finishes, the Knowledge Base page shows each page with its status. A page that failed shows why: blocked by robots, not HTML, too large, or a fetch error you can retry.

Step 4: Upload your documents

Drag each file onto the upload area, or click to pick it. You can give it a display name and a category. Categories are optional but useful once you have twenty sources and want to filter the list.

Two things happen after an upload. First, the text is extracted, which for a scanned PDF or an image means a vision model reads it. Second, the text is chunked and embedded. Both steps run in the background, and the file shows as "processing" until they finish. Large PDFs take longer; a 200-page manual can take a couple of minutes.

If you upload a file with the same name again, it replaces the previous version rather than creating a duplicate. That is the right behaviour for policies and price lists, and it is why we recommend stable filenames like returns-policy.pdf rather than returns-policy-final-v3.pdf.

Step 5: Test with real questions

This is the step most people skip, and it is the one that separates a bot customers trust from one they learn to ignore.

A person at a home office desk reading a checklist on a laptop while drinking coffee, reviewing chatbot answers
Test with the questions your customers actually ask, not the ones the bot is likely to get right.

Take the list from Step 1 and ask every question in the widget, phrased the way a customer would. Then ask them again, badly: with typos, with half the context missing, in a different order. For each answer, check three things.

Is it correct? Compare it to the source. A grounded bot should never state something your content doesn't say. If it does, the usual cause is two documents that disagree, or a chunk that lost its context when it was split. Fix the source, not the bot.

Is it complete? A bot that answers "yes, we offer refunds" when your policy has a 30-day window and a restocking fee has technically answered correctly and practically failed. Usually this means the full answer is spread across two pages; put it in one paragraph.

Does it know when to stop? Ask something that is genuinely not in your content, like "do you ship to Antarctica" or "what's your CEO's phone number". The right answer is a clear "I don't have that information" and an offer to reach the team. If the bot invents an answer, the grounding is not working and you should raise it with the vendor; in PepoChat the agent searches the knowledge base for every reply and escalates when it finds nothing relevant.

Keep a simple sheet: question, expected answer, what the bot said, pass or fail. Ten questions, ten minutes. Repeat it whenever you add a big batch of content.

Step 6: Set the guardrails

Content makes the bot accurate. Settings make it safe to put in front of customers.

Greeting and suggested questions

The first message and the suggested-question buttons shape what people ask. Use the greeting to say what the assistant can help with, and use the suggestions for the three questions from your top-ten list that the bot answers best. This does more to steer conversations than any prompt engineering.

Human handoff

Decide what should always go to a person. In PepoChat the agent escalates automatically when it cannot answer from the knowledge base, when a visitor asks for a human, or when it recognises a request it must not handle. Escalated conversations land in the team inbox with the full transcript, so nobody asks the customer to repeat themselves. The rule of thumb: anything involving money, account access or a judgement call goes to a person, and the bot's job is to gather the details first.

Reply limits and plan

On the free plan the bot sends up to 500 AI replies a month. When a workspace reaches the cap, new conversations are handed to the team inbox with a friendly message instead of failing silently. If you are testing a busy site, keep an eye on the usage meter on the billing page.

Identity and actions

If you plan to connect the bot to order lookups, subscription changes or meeting memory, require email verification first. PepoChat sends a one-time code and only unlocks personal data or actions once the address is confirmed. Anonymous chat is fine for questions; it is not fine for "cancel my subscription". The use cases page shows how ecommerce and SaaS teams set this up.

Step 7: Keep it current

A knowledge base rots quietly. Prices change, features ship, a policy gets a new clause, and the bot keeps quoting the old text because nobody told it otherwise. Three habits prevent that.

Let URL sources refresh themselves. PepoChat re-fetches every URL source weekly and re-indexes only pages whose content changed, so your website stays in sync without anyone remembering to do it. Unchanged pages cost nothing; changed pages are re-processed automatically. You can also re-add a URL at any moment to refresh it on the spot.

Own the documents. Files can't refresh themselves. Put a quarterly reminder in the calendar to re-upload anything with a date or a price in it.

Publish help articles once. If you run a help centre in PepoChat, published articles are mirrored into the knowledge base automatically and removed when you unpublish them. That gives you one place to edit and two places the answer shows up: the article and the chat.

Common mistakes and how to avoid them

Uploading everything. More content is not better content. A 300-page manual full of legal boilerplate drowns the ten pages that answer real questions. Start with the top-ten list, measure, then expand.

Trusting the demo question. Every bot answers "what are your opening hours" well. Test with the awkward, multi-part, badly spelled questions that fill your inbox.

Leaving internal material in. Once it is indexed, it can be quoted. Review PDFs for staff notes and tracked changes before uploading.

Ignoring the failure states. A crawl that imported 12 of 50 pages, a PDF stuck on "processing", a page blocked by robots.txt: each shows in the dashboard. Look before you launch.

Not telling customers it's a bot. A clear greeting ("I'm the PepoChat assistant, I can answer questions from our help centre and get you to a person if I can't") sets the right expectation and reduces frustration when it does hand off.

How this looks in PepoChat

To be concrete about the tool we used for the examples: PepoChat's Knowledge Base page has an Add New button with two tabs, Upload file and Website. The website tab offers the crawl, sitemap and links modes described above with include/exclude filters. Every source shows its status, category and size, and can be deleted with one click. The agent that answers in the widget searches this knowledge base on every reply, streams the answer, and escalates to the team inbox when it can't find anything relevant.

Every feature is included on the free plan, with monthly limits of 500 AI replies and 10 knowledge sources; a crawl or sitemap import counts as one. That is enough to run the whole process in this article end to end on a real site before deciding anything. If you'd rather talk it through first, contact the team.

The next step after the knowledge base is putting the widget on your site, which is a single script tag. That is covered in how to add an AI chat widget to any website.

Frequently asked questions

Do I need to write code to train a chatbot on my website?
No. Modern support platforms such as PepoChat use retrieval: you paste a URL or upload files, the platform reads and indexes the content, and the chatbot answers from it. There is no model training step and no code involved.
What file types can I use to train an AI chatbot?
PepoChat accepts PDF, Word (.docx), Markdown, HTML, plain text, CSV, JSON and images (JPG, PNG, WebP, GIF). Website content can be added as a single URL, a list of URLs, a sitemap import, or a crawl that follows links from a starting page.
How long does it take to train a chatbot on a website?
A single page is usually ready in under a minute. A crawl of up to 50 pages typically finishes in a few minutes because pages are fetched with a polite delay between requests. You can start testing as soon as the first pages show as ready.
Will the chatbot make up answers that are not in my content?
A grounded chatbot answers only from retrieved passages and says it does not know otherwise. In PepoChat the agent searches your knowledge base for every reply, cites what it found, and escalates to a human when it cannot answer.
Does the chatbot update when my website changes?
Yes. PepoChat re-fetches every URL source weekly and re-indexes only pages whose content changed. You can also re-add a URL at any time to refresh it immediately.
How much does it cost to train a chatbot on my documents?
PepoChat's free plan includes every feature with 10 knowledge sources and 500 AI replies per month. A whole website crawl counts as one source. The Pro plan removes the limits.

Try this on your own site in ten minutes

PepoChat includes every feature on the free plan — 500 AI replies and 10 knowledge sources a month, no credit card.