A Botpress knowledge base is the set of sources an agent searches before it answers: documents up to 50 MB each, websites, rich text, live web search, tables and synced content from tools such as Notion, Google Drive and Google Sheets. Every new agent starts with one empty knowledge base, and the default Autonomous Node already searches it. The limit most builders hit is not the documents. It is the tables. Rows are capped at 1K on Free, 100K on Plus and 500K on Team, and 20 columns per table is a ceiling no plan raises. Our verdict: prose goes into the knowledge base, row-shaped facts go into a table, and the node type is chosen before anything is loaded.
Step 1: Choose what the agent reads
Botpress Studio accepts six kinds of source in one knowledge base: websites, documents, tables, web search, rich text and content pulled from compatible integrations such as Notion and Google Drive. Documents can be .pdf, .html, .txt, .doc, .docx or .md, and each file may run up to 50 MB[1]. You can add more knowledge bases and assign each one separately, which keeps a returns policy apart from a product catalog. Uploaded documents lose their styling and images and are converted to markdown. A chart inside a PDF is invisible to the agent, so restate its numbers as text.
Websites work in two ways. Point Botpress at a root domain and pick from the subpaths it discovers, or list specific pages. Pages are indexed once by default. That catches people out. If your prices or opening hours change, set a recrawl schedule such as daily, or resync the source by hand. For sites the built-in crawler handles poorly, the Hub lists an Advanced Website Crawler built on Apify, which crawls more thoroughly and needs your own Apify account.
Synced source providers were added in spring 2026. Dropbox sync landed in March 2026, and Linear, GitHub, Confluence[p1], Google Drive and Notion became source providers in April 2026. Teams already on Zendesk can sync Help Center articles into the knowledge base, a common starting point for support teams moving to AI deflection. Anything else can be pushed through the Files API, on a scheduled job or from a webhook processed in an Execute Code card, which is how the docs suggest keeping fast-changing documents current.
Web Search is the live option. It queries the internet in real time and can be limited to chosen sites, exclude sites, or keep only pages discovered in the last 24 hours, 7 days or 30 days. Use it narrowly. A whole-web search answers from pages you never chose, so restrict it to your own domain and a few trusted sites, and let indexed sources carry the answers you must control, such as prices and policies.
Without a valid sitemap, the Search the Web source relies on Bing and runs a web search every time a user asks.
Step 2: Put row-shaped facts in a table
A knowledge base reads prose well. Prices per product, store locations or lead records belong in a Botpress table instead. Fields are typed (String, Number, Boolean, Date, Object, Array or a custom schema), and String, Object, Array and custom fields can be marked Searchable so the agent can query them in plain language. Tables support semantic search, MongoDB-style filters and filters the AI writes from a plain-language request. You read and write them from the Studio interface, from cards, from code or through the Tables API.
Two limits shape the design. Twenty columns per table is a hard limit that Botpress will not raise, even on request[2]. Wide spreadsheets must be split. Each table also has a row factor: the default of 1 allows up to 4 KB of data per row, while a factor of 3 allows 12 KB but counts every record as three rows toward your plan's limit. Long text cells therefore spend the row allowance faster than the visible row count suggests.
Row allowances come from the pricing page, not from older docs: 1K rows on Free, 100K on Plus and 500K on Team, with Enterprise custom[3]. Import works from a CSV file, with column names and types detected automatically, and any table exports back to CSV. Computed columns fill themselves from an AI prompt or from code, with a two-minute timeout for code and an Auto-compute option that keeps values current. To let the agent answer from a table, connect it as a knowledge source and exclude the columns it should not see, such as internal notes.
Step 3: Connect a Google Sheet without rebuilding it
Botpress offers two routes for a spreadsheet. The first is a CSV import into a table, which gives you typed columns, filters and computed fields, but the copy stops following the sheet. The second is the Google Sheets Public Sync integration, which keeps the sheet as the master copy. It needs the sheet shared as anyone with the link, at Viewer level, and it writes each row into the knowledge base as a separate JSON file. Each sync replaces the existing data rather than merging changes.
Pick by who edits the data. If a teammate updates a price list in Sheets every week and nobody touches it inside Botpress, the sync is less work: edit the sheet, run the sync, and the agent reads the new rows. If the agent itself writes records, such as captured leads, use a table, since the synced copy is rebuilt from the sheet at every sync. Mind the sharing condition. A sheet open to anyone with the link should hold nothing you would not publish.
Google Sheets Public Sync rewrites the synced rows at every sync and needs the sheet shared as anyone with the link, so keep private data out of that sheet.
Step 4: Wire retrieval into the right node
Where you search matters as much as what you load. The default Autonomous Node carries a Search Knowledge card that searches every knowledge base, so a new agent can answer from your sources immediately. Standard Nodes do not consult knowledge at all by default. They need a Capture Information card or a Query Knowledge Bases card, and both require the Knowledge Agent to be enabled. The Query card also searches all bases unless you narrow it, and it stores the answer and its citations in variables you can show or log.
Searching every base at once costs more tokens and adds latency compared with choosing the relevant one from context. Split by topic. Then point each node at the base it needs. The Knowledge Agent lets you pick the models it uses and the number of chunks retrieved; more chunks usually mean more accurate answers, but longer generation and higher token cost. When nothing matches, an Autonomous Node writes a reply on its own, while a Transition card can route the user to a custom reply instead. Our guide to how Botpress agents decide what to do covers the node logic in depth.
The other two builders handle knowledge their own way. In Botpress Viber, sources are Website, FAQs, Files and Web Search; new agents start with Web Search on for the whole web, and you can limit it or turn it off. Preview reads your working set, while live channels read the published one. In the ADK, knowledge bases index websites through a sitemap, a crawl, llms.txt or specific URLs, and a direct search returns 1 to 50 passages, 20 by default, with citations.
Step 5: Budget storage and AI spend
Knowledge content counts twice, toward vector storage and toward file storage. Searchable table columns also count toward vector storage, and so do every website page and document you index. Files that end users upload in conversations, system files and API uploads draw on the same file storage quota as your knowledge files. The plan allowances on the pricing page are these.
| Storage | Free | Plus | Team |
|---|---|---|---|
| Table rows | 1K | 100K | 500K |
| Vector storage | 100MB | 1GB | 5GB |
| File storage | 100MB | 10GB | 50GB |
Free is hard-capped, with no add-ons. On Plus and Team, a storage add-on of $40 a month adds 100,000 table rows, 1GB of vector storage and 10GB of file storage; by our arithmetic that is $480 a year per add-on. Add-ons apply only to the workspace where they were bought. A Free agent that outgrows 1K rows or 100MB of vectors has nowhere to grow, so load a slice of your data first and watch the Usage menu before importing a full catalog.
Storage is the visible cost; AI spend is the one knowledge bases drive most. The docs call knowledge bases usually the biggest AI cost driver in a Botpress project, since every lookup sends retrieved chunks to a model. Trim what you index, choose bases per node and keep chunk counts modest. An After Turn End hook can log the AI spend of each knowledge query into a table, reported in nanodollars. Test runs count too. Botpress's pricing FAQ counts emulator conversations toward your conversation quota, and their AI operations draw on your AI usage.
The Botpress docs suggest a Find Records card on a table for known FAQs instead of a knowledge base search, since knowledge bases are usually the biggest AI cost driver.
Frequently asked questions
Does Botpress train AI models on my knowledge base?+
Botpress says content uploaded to a bot, including prompts, knowledge bases, documents and websites, is used only to provide the service and not for training.
How do I see whether a file was indexed?+
The Files tab lists files uploaded by the builder and by end users, with source, size, upload date and an indexing status showing whether each file is used in the knowledge base.
Can I reuse a knowledge base in another bot?+
Copy to bot syncs tables and knowledge base files to another bot, but it also copies workflows, variables and hooks and overwrites any with the same names in the target bot. Importing and exporting AI agents between workspaces is listed on the pricing page for Enterprise only.
Can an agent tell when its sources have no answer?+
In the ADK, the zai.answer helper answers from documents with citations, or returns missing knowledge, out of topic, ambiguous or invalid question when the documents do not support an answer.
Reading list versus records: where each fact belongs
Treat the knowledge base as the agent's reading list and tables as its records. Manuals, help articles and web pages go into the base, under 50 MB a file and on a recrawl schedule when they change; anything that lives in rows goes into a table, kept under 20 columns and sized against your plan's row allowance, with a Google Sheet synced only when people, not the agent, own the data. Then point each node at the bases it needs. For the workflow that surrounds all this, start with our Botpress Studio walkthrough.
- [1] Botpress documentation: Add sources to Knowledge Base (2026-11) https://botpress.com/docs/studio/concepts/knowledge-base/add-sources
- [2] Botpress documentation: Studio tables (2026-11) https://botpress.com/docs/studio/concepts/tables
- [3] Botpress pricing (2026-11) https://botpress.com/pricing
- [4] G2: Botpress reviews https://ai.g2.com/product/botpress
All 7 sources we used for this article
- 1. Botpress documentation: Add sources to Knowledge Base (2026-11) https://botpress.com/docs/studio/concepts/knowledge-base/add-sources
- 2. Botpress documentation: Studio tables (2026-11) https://botpress.com/docs/studio/concepts/tables
- 3. Botpress pricing (2026-11) https://botpress.com/pricing
- 4. AI Customer Support Platform with Google Sheets Public Sync Integration (2026-11) https://botpress.com/integrations/plus-google-sheets
- 5. Botpress Refund Policy https://botpress.com/legal/refund-policy
- 6. Botpress documentation: Changelog https://botpress.com/docs/changelog
- 7. G2: Botpress reviews https://ai.g2.com/product/botpress
- [p1] Confluence