Support deflection for B2B SaaS

Answers grounded in your docs.

Upload your documentation and get an assistant that answers customers on your own site, cites the exact section it used, and tells you what your docs are missing.

Free plan, no card. One script tag to install.

Grounded Docslive

Hi — I am Grounded, running on Grounded's own documentation. Ask how it works, what it costs, or how to install it.

Answers come from Grounded Docs’s documentation, with the section cited.

This chat is Grounded, running on our own docs. Ask it anything.

Live from this instance

These numbers come from the bot above and move as people ask it questions.

4
Documents indexed
8
Sections indexed
16
Questions answered
2.1 s
Median answer time
71%
Rated helpful, of 7 rated
  • Markdown
  • Plain text
  • PDF
  • Word (DOCX)
  • Any public URL
  • Plain HTML
  • Next.js
  • WordPress
  • Webflow
  • Claude Desktop
  • Claude Code
  • Cursor
  • Any MCP client

Formats it reads, sites it installs on, clients it connects to. Not customer logos.

How it works

From a folder of docs to a cited answer.

A document is split into sections, every section is indexed, and a question is answered from the top passages with a citation to the section used.01 Read02 Split03 Index04 Answer
  1. 01

    Read

    Feed it what you already have

    Upload files, paste text or point at a page. Markdown, plain text, PDF and DOCX are parsed on our servers; a URL is fetched and stripped of its navigation.

  2. 02

    Split

    Split along its own headings

    Each document becomes sections of a few hundred words, cut at the headings the author wrote. A citation points at one of these, so the split is what makes a citation precise.

  3. 03

    Index

    Two indexes, not one

    Every section gets a vector embedding for meaning and a full-text index for exact terms. Support docs are full of error codes and setting names that a purely semantic search blurs.

  4. 04

    Answer

    Answer from the passages, and only those

    A question runs against both indexes, the results are fused, and the top passages reach the model. It writes from those, cites them, and says so when they do not contain the answer.

The loop

What it could not answer becomes what it can.

Every other step is yours to approve. Nothing reaches your visitors that you have not read.

  1. 01

    Admit

    It says when it does not know

    A confidence signal on every answer, a visitor’s Helpful or Not helpful under it, and a handoff link to a person when the docs run out. Two rates on your overview: what the model claimed, and what visitors confirmed.

  2. 02

    Gap

    The question lands in Content Gaps

    Unanswered questions and answers visitors rejected are grouped by meaning and counted, with the pages they were asked on. A to-do list for your docs, written by your customers.

  3. 03

    Draft

    A draft from what your docs already say

    One click drafts the missing section from the nearest passages. Anything it cannot find is a placeholder you fill in, and publishing is blocked until you do. You read it; then the bot cites it.

  4. 04

    Test

    Prove it before anyone asks

    A test set of questions with the facts a correct answer must mention — and some the bot must refuse. Run it on demand, on this model or another, and read the regressions first.

What you get

Focused on the one job: answering from your docs.

Five formats, one pipeline

Markdown, plain text, PDF, DOCX and public URLs go through the same parse, split and embed steps. Each file shows its own state while it indexes, and a failure says why and offers a retry.

  • api-reference.pdfReady
  • getting-started.mdReading
  • pricing.docxQueued

Every answer cites its section

Citations are first-class. A chip under the answer opens the exact passage the answer was built from. Not the document, not a search result, the text.

Choose Add URL in the bot’s Documents tab and enter a public page. Grounded fetches it on its own servers, strips the navigation and indexes the article text.

  • Getting started → Add a document by URL
  • Getting started → Document limits

Content Gaps

Every question the bot could not answer — and every answer a visitor rated not helpful — is grouped with its siblings and counted. Draft the fix, mark it addressed, export the rest as CSV.

  • How do I rotate an API key?×3Addressed
  • Is there an on-premise option?×2Open
  • How do I install the widget?Not helpfulOpen

Gap drafts you approve

One click drafts the missing section from your own documentation. What it cannot find becomes a placeholder, and Publish stays off until you fill it in. Nothing is applied on its own.

Is there an on-premise option?

Grounded runs on one server from a Docker image next to its database. Self-hosting is documented under Plans, limits and your data. [fill in: whether a support contract covers it]

1 placeholder to fillPublish

A test set for your docs

Questions with the facts a correct answer must mention, and some the bot must refuse. Run them on demand, compare two models on your own docs, and see regressions first.

  • How long do refunds take?Pass
  • Which file types can I upload?Pass
  • What is the weather like today?must refusePass
  • Where is my data stored?Fail

One script tag

The launcher lives in a closed shadow root and the chat in an iframe from our origin, so nothing of ours runs in your page. Under 5 KB, and it fetches nothing until the first click.

<script
  src="https://app.grounded.dev/widget.js"
  data-bot="pk_your_bot"
  async
></script>

Your docs inside Claude and Cursor

The same knowledge base is exposed over the Model Context Protocol. Any MCP client can search it and gets the same cited answers.

tool search_knowledge("rate limits")

→ passages, each with its section and source

Where it fits

Four places the same bot earns its keep.

  • Docs assistant

    A search box that answers instead of listing pages.

    Put the widget on your documentation site. Visitors ask in their own words and get the section, not ten links.

  • Support deflection

    The ticket that was already answered on page 14.

    Embed it on your help page. Questions the docs cover never reach the queue; the ones they do not become Content Gaps.

  • In-product help

    Open the chat from your own Help button.

    Two lines of JavaScript open the widget with a question pre-filled, from any screen in your app.

  • Internal knowledge base

    Runbooks, policies and onboarding, searchable by meaning.

    Point a bot at your internal docs and let the team ask from Claude Desktop or Cursor over MCP.

Pricing

Three plans, billed monthly.

Every limit here is the one the product enforces. The same table drives the gates in the app.

Free

$0per month

1
Bots
25
Documents
100
Messages / mo
  • Gemini 3 Flash
  • “Powered by Grounded” removed (not included)
  • Content Gaps and gap drafts (not included)
  • Email escalation (not included)
  • MCP server (not included)
  • Reranking (not included)
Recommended

Pro

$39per month

3
Bots
500
Documents
2,000
Messages / mo
  • 3 curated, or any OpenRouter model
  • “Powered by Grounded” removed
  • Content Gaps and gap drafts
  • Email escalation
  • MCP server
  • Reranking (not included)
Start free

Sign up free, upgrade from Billing.

Business

$129per month

10
Bots
5,000
Documents
10,000
Messages / mo
  • 3 curated, or any OpenRouter model
  • “Powered by Grounded” removed
  • Content Gaps and gap drafts
  • Email escalation
  • MCP server
  • Reranking
Start free

Sign up free, upgrade from Billing.

Questions

The ones people ask before they sign up.

Put your documentation to work.

Create a bot, upload the docs you already have, and ask it the question your support queue got this morning.