RAG Development

Notion AI Knowledge Base

Notion is pleasant to write in and awkward to find things in, because everything is nested and the structure lives in someone's head. An assistant that answers across the workspace with citations is the natural fix.

Discuss your project

Pages and databases are different problems

Notion content comes in two shapes and they need handling differently. Pages are documents, and they are indexed like any other prose — chunked by heading, with the block structure preserved so a toggle or a callout does not lose its context.

Databases are tables, and retrieving from them as if they were prose works badly. A question like "which clients are on the enterprise plan" is a query, not a search, and answering it by finding the three most semantically similar rows gives a confidently incomplete answer. So for database content we generate and run a filter against the database rather than retrieving passages, and show the filter alongside the result. The distinction matters because getting it wrong produces answers that look right and are missing half the rows.

Notion's own structure is also worth reading as signal: a page's position in the hierarchy, its parent, and the database properties on it all help retrieval find the right content, so we keep them as metadata rather than flattening everything into text.

What it does

Answers from pages with citations

Linked to the specific page and block, so a user opens the source in Notion and checks.

Queries databases properly

Filters generated and run against the database, with the filter shown, rather than approximating a query with semantic search.

Lives in Slack

Where most Notion-using teams actually ask each other questions. Usually more valuable than a separate interface.

Keeps in sync

Incremental sync as pages change, so answers reflect the current page rather than the version indexed at launch.

Respects sharing

Indexing only what the integration has been granted, and filtering per user where your workspace has pages restricted to particular people.

Flags staleness

Each answer shows when its sources were last edited, which in a workspace that grows organically is genuinely important context.

Notion-specific practicalities

Things worth knowing before scoping, because they shape the build.

  • Notion's API is granted page by page: an integration sees only what has been explicitly shared with it. That is good for control and means setup involves connecting the integration to the right top-level pages.
  • API rate limits are modest, so the initial index of a large workspace is a paced background job rather than a single pass. Incremental syncs afterwards are light.
  • Content comes back as blocks rather than as a document, so reassembling a readable page — with nesting, toggles, tables and callouts intact — is real work and is where cheap implementations cut corners.
  • Synced blocks and linked database views can produce the same content in several places; we deduplicate so an answer does not cite the same text three times.
  • Comments can be indexed where decisions were made in them, which in some workspaces is where the real reasoning lives.
  • Permissions in Notion are often loose in practice. If your workspace is effectively open to all staff, say so — it simplifies the build, and it is better acknowledged than assumed.

Common questions

Tell us what you need

Describe the problem and we will come back with scope, timeline, and a rate. No obligation to proceed.

Get in touch