Skip to content

Support answers your customers can actually trust

RagChatbot turns your documents and website into an AI agent that answers only from your knowledge — citing every source, and handing off to a human the moment it isn't sure.

  • No credit card required
  • Live in under 10 minutes
  • Self-host or cloud
support.northwind.com
Northwind SupportOnline · answers from your knowledge base

How long do refunds take on an annual plan?

Annual plan refunds are processed within 5–7 business days of approval, and are returned to the original payment method. Requests made in the first 30 days are refunded in full.

Sources

refund-policy.pdf · p.4northwind.com/billing

Verified against 2 sources · 0 assumptions

Ask anything about your account…

Trusted by support teams answering 40,000+ questions a month

NorthwindArcadiaLumen LabsVertex HealthKite & CoOnyx BankHalcyonMeridian
Capabilities

Everything a support bot needsand nothing it should invent

Most chatbots are a language model with your logo on it. This one is a retrieval system that happens to speak — a difference your customers feel on the very first answer.

Grounded, or it doesn't answer

Every question is matched against your content before the model is ever called. Nothing clears the similarity threshold? It doesn't guess — it says so. The answer you get is assembled from retrieved passages alone, with the exact chunks attached as clickable citations.

A human handoff that actually happens

When confidence runs out, the chat pivots: it collects name, email and question, opens a support ticket with the full transcript, and tells the customer a person is coming. No dead ends, no loops.

Documents in, page numbers kept

PDF, DOCX, TXT, Markdown. Extracted, chunked and embedded — citations point at the exact page.

Crawl your whole site

Give it a URL. It follows the sitemap, respects robots.txt, stays on-domain and strips the chrome.

Web, widget & WhatsApp

One knowledge base, every channel — the same sourced answer wherever the customer asks.

Bring your own model

Gemini and OpenAI ship built-in and swap with one env var. Adding Claude is a single file.

Your data stays yours

Vectors in your Postgres, files in your bucket, all under Docker. Nobody trains on your content.

Ingestion that keeps up

Uploads and crawls run on background workers — a 400-page docs site is searchable the same afternoon.

Outcomes

Your team stops repeating itself. Your customers stop waiting.

The answers already exist — in a PDF nobody opens and a help centre nobody finds. This puts them one question away, at 3am, in the channel the customer is already in.

  • Kill the queue of questions nobody should be answering

    Password resets, refund windows, opening hours, shipping rules. They're already written down — let the writing answer them, and give your team back the work that needs a person.

  • Say things you'd be happy to defend

    Every reply carries the passage it came from. If a customer quotes the bot back at you in a dispute, you can open the exact page it read — because it couldn't have read anything else.

  • See what your customers actually ask

    Every conversation, its sources, and every unanswered question lands in the console — a live map of the gaps in your documentation, written by the people using it.

First 30 days

Northwind, 12-person support team

Live
Tier-1 tickets resolved without a human
71%
Questions answered with a citation
100%
Median time to first answer
1.4s

≈ 340 agent-hours returned in the first month — the equivalent of two full-time hires you didn't make.

How it works

From a folder of PDFs to a live agent — today

No training runs, no prompt engineering, no data team. Four steps, and the longest one is the coffee you make while it indexes.

  1. 01

    Point it at what you already have

    Upload the handbook, the policy PDFs, the price list. Or just paste your website URL and let the crawler walk it.

  2. 02

    It builds the knowledge base

    Background workers extract the text, split it into overlapping chunks, embed them, and store the vectors — page numbers and source URLs intact.

  3. 03

    Drop one line into your site

    A single script tag puts the widget on every page. Colors, greeting and tone are set in the console, with a live preview.

    <script src="/widget.js" defer></script>
  4. 04

    Watch it, and close the gaps

    Every conversation, source and handoff lands in the console. The questions it couldn't answer are your documentation backlog, ranked.

Why RagChatbot

The difference isn't the model. It's what happens before it.

Anyone can wire a chat box to an LLM. The hard part is making sure it only ever speaks from your knowledge — and knows when to stop talking.

Retrieval is a gate, not a hint

Below the similarity threshold, the model is never called. Most bots pass the question through anyway and hope.

Runs inside your perimeter

Postgres, S3 and the workers all run under your Docker compose. No content leaves your infrastructure to be trained on.

No model lock-in

Gemini and OpenAI today, Claude or a local model tomorrow — the provider is a two-method interface and one env var.

RagChatbot compared with a generic AI chatbot and a static FAQ page
CapabilityRagChatbotGeneric AI botStatic FAQ page
Answers in your customer's own wordsYesYesNo
Cites the exact source of every claimYesNoPartial
Physically cannot invent a policyYesNoYes
Refuses, then opens a ticket, when unsureYesNoNo
Stays current with your website automaticallyYesNoNo
Works on web, widget and WhatsAppYesPartialNo
Self-hostable — your data never leavesYesNoYes

Measured across production deployments

0%

Tickets deflected

Answered without a human touching them

0.0s

Median response

From question to sourced answer

0

Hallucinated answers

Nothing is said without a citation

0k

Conversations / mo

Handled across web and WhatsApp

Channels

One brain. Everywhere they ask.

Index your knowledge once. The same grounded, cited answer shows up on your site, in WhatsApp, and in the console your team works out of.

Ask us anything

Hi! I can answer from our docs and cite the source. What do you need?

Do you ship to Norway?

Yes — 3–5 business days, tracked. shipping.pdf · p.2

One script tag. The launcher, the colors, the greeting and the tone all come from your console — and every answer still shows its sources.

Customers

They'd already been burned by a chatbot

Every one of these teams had tried something else first. The thing that changed their mind was the same thing every time: the citation under the answer.

71% fewer tier-1 tickets
We'd trialled three support bots and killed all three — they invented policies we don't have. RagChatbot only speaks from our handbook, and every answer shows the page it came from. That was the unlock.
PRPriya RamanHead of Support, Northwind
Live in 4 days
The crawler ingested our 400-page docs site in an afternoon. By Friday it was answering billing questions better than our onboarding hires.
MFMarcus FeldCOO, Arcadia
CSAT 4.8 / 5
The handoff is the part I didn't know I needed. When it isn't confident it stops, takes their details, and files a ticket. No guessing, no angry follow-ups.
SLSofia LindqvistDirector of CX, Lumen Labs
FAQ

The questions you're about to ask

Mostly about hallucination, data, and how long this really takes. Fair questions — here are straight answers.

Still deciding?

Ask the bot itself — it's trained on this exact page and will cite it back to you.

Open the live demo

Retrieval is a hard gate, not a suggestion. Every question is embedded and matched against your content; if nothing clears the similarity threshold, the model is never asked to answer. When it does answer, it is given only the retrieved passages and instructed to work from them alone — and the exact chunks it used are attached to the reply as citations you can click.

PDF, DOCX, TXT and Markdown uploads, plus any public website — point it at a URL and the crawler follows the sitemap (or the link graph), respects robots.txt, stays on-domain, skips login/checkout paths, and strips the boilerplate before indexing. Page numbers and source URLs are preserved so citations land in the right place.

It says so — and then does something useful. The chat switches to a handoff form, collects the customer's name, email and question, and opens a support ticket that lands in your admin console with the full transcript attached. Silence and invention are both failure modes; this is neither.

Paste a script tag on your site and upload a document — that's the whole install. Ingestion runs on a background worker, so a typical knowledge base is searchable in minutes. Colors, greeting, and tone are configured from the admin console with a live preview.

Nobody trains on it. Content is chunked, embedded and stored as vectors in your own Postgres (pgvector); files sit in your own S3-compatible bucket. The whole stack runs under Docker, so you can host it in your VPC and keep every byte inside your perimeter.

Gemini and OpenAI ship built-in and are swapped with one environment variable; the provider layer is a two-method interface, so adding Claude or a self-hosted model is a single file. You are never locked to one vendor's pricing or roadmap.

Free to try · No card

Your knowledge is already written.Put it to work tonight.

Upload one document, ask it one question, and watch it cite the page it came from. That's the whole evaluation — it takes about five minutes.

  • No credit card required
  • Live in under 10 minutes
  • Self-host or cloud