Notion QA logo

Notion QA

Free

Notion Question-Answering Bot ![GitHub Repo stars](https://img.shields.io/github/stars/hwchase17/notion-qa?style=social)

FreeFree tier
Inputs: textOutputs: text
Type
Open Source

About Notion QA

Notion QA is an open-source Python tool that enables natural language question-answering over Notion databases. Built with LangChain, it allows users to export their Notion data (in Markdown/CSV format), ingest it locally, and then query the database using a conversational CLI or a StreamLit web app. The repository includes example data from the Blendle Employee Handbook and provides step-by-step instructions for setting up and ingesting custom Notion exports. Users need an OpenAI API key to run the underlying language model. The project is licensed under MIT and has over 2,200 GitHub stars.

Key Features

Natural language Q&A over Notion databases
Built with LangChain for embeddings and LLM integration
Command-line interface for asking questions (qa.py)
StreamLit app for a web-based chat interface (main.py)
Supports ingesting any Notion database exported as Markdown/CSV
Includes example data (Blendle Employee Handbook)
Easy ingestion pipeline with ingest.py script

Pros & Cons

Pros
  • Free and open-source (MIT license)
  • Simple setup: export from Notion, unzip, run ingest.py
  • Offers both CLI and web (StreamLit) interfaces
  • Leverages powerful language models via OpenAI API
  • Community support (2.2k stars, 361 forks)
  • Clear documentation with step-by-step instructions
Cons
  • Requires an OpenAI API key (cost involved)
  • Not real-time; relies on manual export and ingestion of Notion data
  • Only supports text/content from Notion pages (no images or rich media)
  • Limited to the exported data snapshot; no live sync with Notion
  • No built-in authentication or multi-user support

Best For

Query employee handbooks or internal documentation stored in NotionNatural language search across Notion databasesBuilding a conversational interface for Notion-based knowledge bases

FAQ

How do I use Notion QA with my own Notion database?
Export your Notion page as Markdown/CSV (three dots > Export), move the .zip file into the repository, unzip it into Notion_DB folder, and run 'python ingest.py'. Then you can ask questions using 'python qa.py "your question"'.
Does Notion QA require an API key?
Yes, you need to set the OPENAI_API_KEY environment variable with a valid OpenAI API key to run the language model.
Can I deploy Notion QA as a web app?
Yes, the repository includes a StreamLit app (main.py) that can be deployed. You need to set OPENAI_API_KEY as a secret environment variable in StreamLit.
What format does the Notion export need to be in?
The export must be in Markdown & CSV format (select 'Markdown CSV' when exporting from Notion).