> ## Documentation Index
> Fetch the complete documentation index at: https://boundbot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Knowledge base

> Train your BoundBot AI agent with FAQs, files, website content, products, and MCP tools.

export const BrowserWrapper = ({src, alt, title, description, height = '280px', caption, imgStyle = {}, children, imagePadding = '0px'}) => {
  const legacyDocsImagePrefix = '/images/';
  const productionDocsImagePrefix = '/docs/images';
  const rawSrc = typeof src === 'string' ? src : src && (src.src || src.default) || '';
  const imageSrc = rawSrc.startsWith(legacyDocsImagePrefix) ? `${productionDocsImagePrefix}/${rawSrc.slice(legacyDocsImagePrefix.length)}` : rawSrc;
  return <Frame caption={caption || alt || title} width="100%">
      <div style={{
    border: '1px solid #e2e8f0',
    borderRadius: '12px',
    overflow: 'hidden',
    boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
    width: '100%'
  }}>
        <div style={{
    backgroundColor: '#f8fafc',
    padding: '10px 15px',
    borderBottom: '1px solid #e2e8f0',
    display: 'flex',
    gap: '6px'
  }}>
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ff5f56'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#ffbd2e'
  }} />
          <div style={{
    width: '10px',
    height: '10px',
    borderRadius: '50%',
    backgroundColor: '#27c93f'
  }} />
        </div>
        <div style={{
    overflow: 'hidden',
    background: '#ffffff',
    width: '100%',
    padding: imagePadding
  }}>
          {src ? <img src={imageSrc} alt={alt || ''} data-docs-screenshot style={{
    ...imgStyle,
    width: '100%',
    minWidth: '100%',
    height: 'auto',
    display: 'block',
    borderRadius: '0px'
  }} /> : children ? children : null}
        </div>
      </div>
    </Frame>;
};

BoundBot answers best when your knowledge is structured and current. The platform supports several knowledge sources in the <a href="https://www.boundbot.com/dashboard/knowledge/knowledge-base" target="_blank" rel="noopener noreferrer">Knowledge</a> area so you can combine direct answers, long-form content, live websites, products, and external tool servers.

<BrowserWrapper imagePadding="10px" src="../images/knoweldge-website.png" alt="Knowledge area showing the website source interface in BoundBot." />

## Knowledge source types

* **FAQs**: short, trusted answers for policies, common questions, and support content
* <a href="/guides/files"><b>Files</b></a> (<a href="https://www.boundbot.com/dashboard/knowledge/files" target="_blank" rel="noopener noreferrer">open in app</a>): uploaded PDF, TXT, CSV, Markdown, or DOCX documents
* <a href="/guides/websites"><b>Websites</b></a> (<a href="https://www.boundbot.com/dashboard/knowledge/websites" target="_blank" rel="noopener noreferrer">open in app</a>): crawled or imported web pages
* <a href="/guides/products"><b>Products</b></a> (<a href="https://www.boundbot.com/dashboard/knowledge/products" target="_blank" rel="noopener noreferrer">open in app</a>): catalog entries the bot can reference in recommendations and commerce flows
* <a href="/guides/connected-mcps"><b>Connected MCPs</b></a> (<a href="https://www.boundbot.com/dashboard/knowledge/connected-mcps" target="_blank" rel="noopener noreferrer">open in app</a>): external tool servers that extend what the bot can do

## When to use each source

<Tabs sync={false} borderBottom>
  <Tab title="FAQs" icon="circle-help">
    Use FAQs when the answer should stay short, exact, and easy to maintain.

    **Best for:**

    * Refund and return policies
    * Contact information and escalation paths
    * Opening hours and location details
    * Pricing clarifications and plan limits
    * Common support questions with a single correct answer

    **Example:** “What is your return window?” → “We accept returns within 30 days of delivery. Items must be unused and in original packaging.”

    <Tip>
      Phrase FAQ questions the way customers ask them. Add 2–3 phrasings per answer if your dashboard supports it, so the bot matches more variations.
    </Tip>
  </Tab>

  <Tab title="Files" icon="files">
    Use files when the source of truth already exists in documents such as manuals, menus, exported guides, or internal reference sheets.

    **Best for:**

    * Product manuals and technical documentation
    * Internal playbooks or process guides
    * Menus, catalogs, or spec sheets exported as PDF/DOCX
    * Policy documents and compliance text
    * Long-form reference content that rarely changes

    **Example:** A 20-page PDF employee handbook or a Markdown file with your API documentation. The bot can surface specific sections when users ask.

    <Tip>
      Use clear headings (H1, H2) in your documents so BoundBot can chunk and retrieve the right sections. Avoid one giant block of unformatted text.
    </Tip>
  </Tab>

  <Tab title="Websites" icon="globe">
    Use website sources when the content changes on your public site and you want the bot to follow those updates without rewriting everything manually.

    **Best for:**

    * Public help centers and docs sites
    * Landing pages and feature descriptions
    * Blog posts or articles that stay on your domain
    * Pricing pages and terms that update occasionally
    * Any URL or sitemap you want the bot to cite

    **Example:** Your help site at `docs.yourcompany.com`. Add it as a website source and BoundBot starts the first background crawl automatically, so the bot can answer from the latest published articles as soon as indexing finishes.

    <Tip>
      Start with a narrow path or sitemap subset (e.g. `/help` only) and use **Exclude path prefix** to skip admin or login pages. This keeps answers relevant and reduces crawl cost.
    </Tip>
  </Tab>

  <Tab title="Products" icon="shopping-bag">
    Use products when you need structured catalog data such as price, stock, category, tags, or variants.

    **Best for:**

    * E‑commerce catalogs with SKUs, prices, and descriptions
    * Product recommendations and “what’s in stock” queries
    * Category and filter-style questions
    * Lead and order capture tied to specific items
    * Any data that fits rows (name, price, image, link, etc.)

    **Example:** A spreadsheet or Google Sheets import with columns for product name, price, description, category, and URL. The bot can recommend products and link to the right page.

    <Tip>
      Keep product names and descriptions consistent with how customers search. Strong titles and clear categories improve how well the bot matches queries to the right items.
    </Tip>
  </Tab>

  <Tab title="Connected MCPs" icon="cable">
    Use Connected MCPs when the bot needs live tools, external actions, or data lookups that go beyond static reference content.

    **Best for:**

    * Live availability (e.g. calendar or inventory checks)
    * Executing actions in external systems (create ticket, send email)
    * Real-time data (weather, rates, CRM lookups)
    * Custom APIs and internal tools
    * Workflows that need to call out to another service and use the result

    **Example:** A Calendly-style MCP that checks availability and returns time slots. The bot can say “I have Tuesday at 2 p.m. free” instead of only reading static text.

    <Tip>
      Use MCPs for data that must be current or for actions the bot should perform. For static reference (policies, docs, FAQs), stick to FAQs, Files, or Websites to avoid unnecessary API calls.
    </Tip>
  </Tab>
</Tabs>

## Add an FAQ manually

FAQs give the bot short, exact answers for policies, hours, pricing, and common support questions. Add them one at a time from the dashboard.

<Steps>
  <Step title="Open the Knowledge area">
    Go to <a href="https://www.boundbot.com/dashboard/knowledge/knowledge-base" target="_blank" rel="noopener noreferrer"><b>Knowledge</b></a> in the sidebar and open the <b>FAQs</b> section (or the main knowledge base page where FAQs are listed).
  </Step>

  <Step title="Create a new FAQ">
    Click <b>Add FAQ</b>, <b>New FAQ</b>, or the equivalent action on the FAQs list.
  </Step>

  <Step title="Enter question and answer">
    Type the **question** as customers would ask it, and the **answer** exactly as you want the bot to use it. Keep the answer concise so retrieval and responses stay accurate.
  </Step>

  <Step title="Save">
    Save the FAQ. It is indexed and available to the bot immediately for all channels that use this team’s knowledge base.
  </Step>
</Steps>

<Note>
  Only owners and members with access to the Knowledge area can add or edit FAQs. If you do not see the option, check your team role and that you are in the correct team.
</Note>

## Knowledge refresh

When source content changes, you need to refresh or re-sync so the bot uses the latest data.

### Website sources

<Steps>
  <Step title="Open Website sources">
    Go to <a href="https://www.boundbot.com/dashboard/knowledge/knowledge-base" target="_blank" rel="noopener noreferrer"><b>Knowledge</b></a> → <a href="https://www.boundbot.com/dashboard/knowledge/websites" target="_blank" rel="noopener noreferrer"><b>Websites</b></a>.
  </Step>

  <Step title="Start or refresh the crawl">
    When you add a new source, BoundBot starts discovering and scraping links automatically in the background. For an existing source, open the detail page and use <b>Fetch & Crawl</b> to rediscover links and crawl pending pages again.
  </Step>

  <Step title="Use targeted actions when needed">
    Use <b>Crawl Pending</b> if the URL list is already correct and you only want to scrape pending pages. Use <b>Retry Failed</b> for pages that failed, or <b>Retrain Agent</b> to mark every discovered page for a full recrawl.
  </Step>
</Steps>

The current app also lets you start the same discovery-and-crawl pass from the source card with <b>Fetch Links</b>. You can enable <b>Auto Recrawl</b> when adding a website source if you want BoundBot to refresh it on a schedule.

### File sources

Files are indexed at upload time. To refresh file content after you change the document:

<Steps>
  <Step title="Open the Files page">
    Go to <a href="https://www.boundbot.com/dashboard/knowledge/knowledge-base" target="_blank" rel="noopener noreferrer"><b>Knowledge</b></a> → <a href="https://www.boundbot.com/dashboard/knowledge/files" target="_blank" rel="noopener noreferrer"><b>Files</b></a>.
  </Step>

  <Step title="Replace or re-upload">
    Delete the existing file entry and upload the updated file, or use the replace/re-upload action if the dashboard offers it. BoundBot re-indexes the new version and the bot will use the updated content.
  </Step>
</Steps>

<Note>
  Re-crawling websites and re-uploading files count toward your plan’s crawl and storage limits. Use refresh when content has actually changed to avoid unnecessary usage.
</Note>

## Best practices

### Structuring your data

How you structure content directly affects how well the bot finds and uses it.

<Check>
  **Use clear headings in documents.** In PDFs, DOCX, and Markdown files, use a logical heading hierarchy (e.g. H1 for title, H2 for sections). BoundBot uses structure to chunk and retrieve content; good headings improve answer accuracy.
</Check>

<Check>
  **Keep FAQ answers concise.** One clear paragraph or a short list works better than long blocks of text. The bot can then return the full answer or a tight summary without losing the main point.
</Check>

<Check>
  **Use consistent wording.** Phrase FAQ questions the way customers ask them. Align product names, policy terms, and key phrases across FAQs and file content so retrieval matches user intent.
</Check>

<Check>
  **Prefer one topic per FAQ.** One question and one focused answer per FAQ item makes it easier to maintain and reduces conflicting or overlapping answers in responses.
</Check>

## Test your knowledge base

Before going live, verify that the bot finds the right answers from your FAQs, files, websites, and products.

Use the <a href="https://www.boundbot.com/dashboard/playground" target="_blank" rel="noopener noreferrer"><b>Playground</b></a> as your test environment. Playground runs the same pipeline as the live WebChat widget, so you see exactly how the bot will respond to customers.

<Steps>
  <Step title="Open Playground">
    Go to <a href="https://www.boundbot.com/dashboard/playground" target="_blank" rel="noopener noreferrer"><b>Playground</b></a> in the dashboard and select the bot that uses your knowledge base.
  </Step>

  <Step title="Ask knowledge-based questions">
    Send messages that should be answered from your FAQs, file content, website snippets, or product data. Try variations and synonyms to see how retrieval behaves.
  </Step>

  <Step title="Check answers and sources">
    Confirm that the bot returns the correct information and, when applicable, cites the right source. If an answer is wrong or missing, update the knowledge source and test again in Playground.
  </Step>
</Steps>

<Tip>
  Run through a short list of real customer questions in Playground after every knowledge change. See <a href="/guides/playground">Playground</a> for more on testing prompts, actions, and workflows.
</Tip>

## Storage and limits

The sidebar shows both credit usage and knowledge storage usage for the current team. File upload, MCP connections, product catalog size, and crawler limits depend on your plan.

## Recommended setup order

1. Add core **FAQs** first.
2. Upload your most important documents.
3. Add website sources for pages that change often.
4. Import products if you sell catalog items.
5. Add MCP connections only when you need tool execution.

## Go deeper

<CardGroup cols={2}>
  <Card title="Files" icon="file-text" href="/guides/files">
    Upload documents and turn them into searchable knowledge.
  </Card>

  <Card title="Website sources" icon="globe" href="/guides/websites">
    Crawl web pages, sitemaps, and individual URLs.
  </Card>

  <Card title="Products" icon="shopping-bag" href="/guides/products">
    Build a structured product catalog with manual entries or imports.
  </Card>

  <Card title="Connected MCPs" icon="cable" href="/guides/connected-mcps">
    Connect external tool servers for live actions and data access.
  </Card>

  <Card title="Integrations" icon="plug" href="/developers/integrations">
    Connect Google Sheets, Calendly, WordPress, and MCP servers.
  </Card>

  <Card title="Plans and limits" icon="badge-dollar-sign" href="/reference/plans-and-limits">
    Check file, product, crawler, and MCP availability by tier.
  </Card>
</CardGroup>
