> ## 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.

# Files

> Upload documents and turn them into searchable knowledge for your bot.

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>;
};

The <a href="https://www.boundbot.com/dashboard/knowledge/files" target="_blank" rel="noopener noreferrer">Files</a> page lets you upload existing documents and turn them into knowledge that BoundBot can use during AI replies.

## Supported uploads

In the current UI, the upload dialog accepts:

* `PDF`
* `TXT`
* `CSV`
* `MD`
* `DOCX`

The current file size limit in the upload form is `10 MB` per file.

<Note>
  File uploads are plan-gated. If your current tier does not include them, the app opens the upgrade flow instead of the upload dialog.
</Note>

## Upload a file

<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="Choose the document">
    Click **Upload File**, then drag a file into the dialog or browse from your device.
  </Step>

  <Step title="Review the selection">
    The dialog shows the file name, detected type, and file size before upload.
  </Step>

  <Step title="Upload and index">
    Click **Upload & Index**. BoundBot stores the file, extracts its content, and adds it to your AI knowledge flow.
  </Step>
</Steps>

<BrowserWrapper src="../images/files-dasboard.png" alt="Files dashboard overview." maxWidth="800px" />

## Manage uploaded files

The table supports:

* search by file name or file type
* file size display
* upload date display
* delete from the row action menu

Deleting a file removes both the file entry and its indexed content from your knowledge base.

<Warning>
  Deletion is **permanent**. The bot will no longer use that content in replies. If you need the content again, you must re-upload the file.
</Warning>

## File processing states

After you upload a file, it moves through processing until it is available to the bot. The Files table shows the current state for each file.

| State        | Meaning                                                                                                                                                                              |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Pending**  | Upload completed; the file is queued for processing.                                                                                                                                 |
| **Indexing** | Content is being extracted and indexed. The file is not yet used in answers.                                                                                                         |
| **Ready**    | Processing finished successfully. The file is indexed and available to the bot.                                                                                                      |
| **Error**    | Processing failed (e.g. unsupported content, corrupt file, or extraction error). The file is not used. Check the file format and try re-uploading or contact support if it persists. |

If a file stays in **Pending** or **Indexing** for a long time, refresh the page. If it remains in **Error**, see [Troubleshooting](#troubleshooting) below.

## Troubleshooting

**File size exceeds 10 MB**

The upload form rejects files larger than `10 MB` per file. Compress the document, split it into smaller files (e.g. by chapter or section), or export a summarized version. You can upload multiple files separately to cover the same content.

**Unsupported format**

Only `PDF`, `TXT`, `CSV`, `MD`, and `DOCX` are accepted. If your document is in another format (e.g. `.pages`, `.odt`, or an image), export or convert it to one of the supported types before uploading.

**File stuck in Error state**

Re-upload the file after confirming it opens correctly on your device and is not password-protected. If the problem continues, try saving a fresh copy (e.g. “Save As” in the original app) and upload that. Image-only PDFs will not index as text; use a version with selectable text or run OCR first.

## When files are the right tool

Use files when your source of truth already exists in documents, manuals, menus, policies, or exported reports.

For short answers that need exact wording, prefer **FAQs**. For live site pages, prefer **Websites**.

## Related pages

<CardGroup cols={2}>
  <Card title="Knowledge base" icon="book-open-text" href="/guides/knowledge-base">
    See how files fit with FAQs, websites, products, and MCPs.
  </Card>

  <Card title="Website sources" icon="globe" href="/guides/websites">
    Crawl web pages when the content already lives on your site.
  </Card>

  <Card title="Plans and limits" icon="badge-dollar-sign" href="/reference/plans-and-limits">
    Check whether file uploads are available on your tier.
  </Card>

  <Card title="Bots" icon="bot" href="/guides/bots">
    Improve how your bot uses the knowledge you upload.
  </Card>
</CardGroup>
