anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
An n8n workflow that watches a Notion database for new pages. It reads each page, cuts the text into chunks, turns the chunks into vectors with a Gemini embedding model and stores them in a Pinecone index.
Notion pages stored in Pinecone with Gemini embeddings is an n8n workflow in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
A page is added in Notion
It starts when a new page appears in your Notion database, checked every minute. It brings:
The page’s text stored in your Pinecone index as vectors, with the page id, title and creation time as metadata
What you need before you start.
Page source
Watches a database for new pages and reads their blocks.
NeedsA Notion integration token and a database shared with it
Embedding model
Turns each chunk of text into a vector.
NeedsA Google Gemini API key
Vector store
Stores the vectors for later search.
NeedsA Pinecone API key and an index of 3072 dimensions
Checked by Mindket on 13 Nov 2026
This n8n workflow turns each new page in a Notion database into searchable vectors. Every minute it looks for a page added to the database you choose. It reads the page’s blocks, skips images and videos and joins the text into one piece. A token splitter cuts the text into chunks of 256 tokens with a small overlap. A Gemini embedding model turns each chunk into a vector. Pinecone stores the vectors, with the page id, the title and the creation time as metadata. Eight nodes run it, beside one sticky note.
People who want to search or chat over their Notion pages with a vector index of their own. Skip it if Notion’s own search is enough. It only handles new pages, so later edits never reach the index. It fills the index and does not read from it.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Knowledge work | Teams | Index meeting notes so a chatbot can find them | A team adds each note as a page and later asks a bot about it. |
| Support | Help desks | Keep answers in Notion and search them by meaning | An agent looks up how a past case was solved. |
| Research | Analysts | Build a searchable library of reading notes | An analyst files one page for each paper and searches by idea. |
| Education | Course teams | Make lesson pages easy to find from a question | A tutor looks up the page that explains a topic. |
You need to know n8n’s settings: import a file, add three credentials and make an index in Pinecone.
Any n8n that can reach Notion, Google’s Gemini service and Pinecone will run it.
Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Setup is three credentials, a database id and an index name.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Notion | An integration token, as a Notion credential in n8n, and a database that is shared with that integration |
| Google Gemini | An API key, added in n8n as a Google Gemini credential |
| Pinecone | An API key and an index of 3072 dimensions, which is the default size of gemini-embedding-001 |
workflow.json.Page Added in Notion and Get Page Blocks. In Page Added in Notion, replace <YOUR_NOTION_DATABASE_ID> with the id of your database, the 32 characters in its link.Store in Pinecone, add a Pinecone credential and replace <YOUR_PINECONE_INDEX> with the index name.Gemini Embeddings.Leave the workflow published and add pages to the database. Each new page is split, embedded and stored within a few minutes. Search the index from another workflow or tool.
| To change | Where |
|---|---|
| The database | Page Added in Notion |
| Which blocks are skipped | The conditions in Filter Non-Text Content |
| The chunk size and the overlap | Token Splitter |
| The metadata stored with each chunk | Load Page and Add Metadata |
| The embedding model | Gemini Embeddings, and the size of the index |
| The index or the namespace | Store in Pinecone |
You add a page called Onboarding guide with three paragraphs to the database.
pageId: 0a1b2c3d4e5f60718293a4b5c6d7e8f9, createdTime: 2026-11-12T09:30:00.000Z, pageTitle: Onboarding guide
Each stored chunk of that page carries those three values as metadata, so a search result can point back to the page.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one copies your Notion pages into a special database that finds text by meaning. Test it with a short page first.
For experts. The text reaches the document loader as one field called concatenated_content.
| Node | What it does | What to know |
|---|---|---|
Page Added in Notion | Polls the database for new pages | Simplify is off, so it returns the raw page with all its properties |
Get Page Blocks | Reads the blocks of the page | Only the blocks directly on the page, not nested ones |
Filter Non-Text Content | Drops image and video blocks | Everything else stays |
Join Blocks Into One Text | Joins the text of the blocks with a line break | One item for each page |
Load Page and Add Metadata | Wraps the text as a document | The title comes from the page’s title property, whatever its name |
Token Splitter | Cuts the text into chunks | 256 tokens with an overlap of 30 |
Store in Pinecone | Inserts the chunks | Each run adds new vectors and never removes old ones |
This workflow only fills the index. Reading from it is a separate job.
text-embedding-004 on 14 January 2026, so the Gemini step uses models/gemini-embedding-001. It makes vectors of 3072 numbers, not the 768 of the original, so the Pinecone index needs that size. The title is read from whichever property holds it, and the database and the index are placeholdersAn n8n workflow that watches a Notion database for new pages. It reads each page, joins the text, cuts it into chunks and
turns the chunks into vectors with a Gemini embedding model. Pinecone stores the vectors, with the page id, the title and
the creation time as metadata.
workflow.json: the workflow as n8n exports it, nine nodes. One is a sticky note. It holds no credential.README.md: these notes.models/text-embedding-004, which Google shut down on 14 January 2026. The step now usesmodels/gemini-embedding-001, the default of n8n's Gemini embeddings node.<YOUR_NOTION_DATABASE_ID> and<YOUR_PINECONE_INDEX>.Name. It is now read from whichever property holds the title, so it worksworkflow.json.Page Added in Notion and Get Page Blocks. In Page Added in Notion, replace<YOUR_NOTION_DATABASE_ID> with the id of your database, the 32 characters in its link.Store in Pinecone, add a Pinecone credential and replace<YOUR_PINECONE_INDEX> with the index name.Gemini Embeddings.Page Added in Notion finds a new page. Simplify is off, so the item holds the raw page with its properties.Get Page Blocks reads the blocks that sit directly on the page.Filter Non-Text Content drops blocks of the type image or video.Join Blocks Into One Text joins the text of the remaining blocks, one block to a line, into the fieldconcatenated_content.Load Page and Add Metadata wraps that text as a document with the page id, the creation time and the page title.Token Splitter cuts it into chunks of 256 tokens with an overlap of 30.Gemini Embeddings turns each chunk into a vector, and Store in Pinecone inserts the vectors into your index.Page Added in Notion.Filter Non-Text Content.Token Splitter.Load Page and Add Metadata.Gemini Embeddings. Change the size of the index with it.Store in Pinecone.NOTICE.md 606 B README.md 4 KB workflow.json 7 KB
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
block · Kit
Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…
backnotprop · Kit
Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.