, ,

AI support chatbot

A support chatbot that answers from a site’s own articles — a content crawler, RAG, and a lightweight embedded widget.

A food-industry news platform needed a support assistant that could handle the recurring questions — how to become a member, pricing, services, where to get in touch — without someone answering the same thing all day. I built a chatbot that answers from the site’s own content, not a generic model guessing.

How it works

A Python crawler walks the whole site and pulls out the real content — articles, PDFs, image alt text, link text — across languages, and turns it into a structured, search-ready knowledge base. When a visitor asks something, the bot retrieves the relevant passages and answers from those. So the answers come from the platform’s own material, and stay current as the crawler re-runs.

The conversation logic runs as an n8n workflow rather than a hard-coded backend, which means the behaviour can be tuned without redeploying anything.

Light on the page

  • A 43 KB drop-in widget — vanilla JavaScript, no heavy framework, so it doesn’t drag down page speed or Core Web Vitals.
  • Multilingual — it detects the page language (NL/FR/EN) and answers in kind, with the right prompts and contact details per language.
  • UX from real support use — quick-prompt buttons that hide once you start typing, markdown answers, file icons for PDFs and docs, and scrolling that keeps your question in view while the answer arrives.

The stack

  • Content ingestion — Python crawler (BeautifulSoup, pdfminer) producing a vector-ready knowledge base.
  • Retrieval & logic — retrieval-augmented generation orchestrated in an n8n workflow.
  • Front end — a lightweight vanilla-JS widget, embedded straight into the site.

It quietly deflects the repetitive questions, in three languages, from content the site already had.