Mindket

Notion pages stored in Pinecone with Gemini embeddings

Newversion 1 · updated

Overview

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.

At a glance

Runs in
  • n8n Cloud: import the file and publish it
  • Your own n8n server: the same file and steps
  • Notion: a database that holds the pages, shared with your Notion integration
  • Pinecone: an index with the right number of dimensions

Platform

Connects 3 apps

How it works

Trigger

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 id, title and creation time
  • All the blocks on the page

Actions

  1. Reads the blocks of the new page and skips images and videos
  2. Joins the text of the blocks into one piece
  3. Cuts the text into chunks of 256 tokens
  4. Turns the chunks into vectors with a Gemini embedding model and stores them in Pinecone

Result

The page’s text stored in your Pinecone index as vectors, with the page id, title and creation time as metadata

Integrations

What you need before you start.

Notion

Page source

Watches a database for new pages and reads their blocks.

NeedsA Notion integration token and a database shared with it

Google Gemini

Embedding model

Turns each chunk of text into a vector.

NeedsA Google Gemini API key

Pinecone

Vector store

Stores the vectors for later search.

NeedsA Pinecone API key and an index of 3072 dimensions

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
5 steps, starting on a Notion event
AI
1 step calls an AI model: Store in Pinecone
Sign-ins
Signs in to: Notion, Pinecone and Google Gemini
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 5 of its step types

Read from the workflow’s file, not from a run.

About

What it is

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.

Who it suits

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.

Who uses it, and how
IndustryWho uses itHow they use itExample
Knowledge workTeamsIndex meeting notes so a chatbot can find themA team adds each note as a page and later asks a bot about it.
SupportHelp desksKeep answers in Notion and search them by meaningAn agent looks up how a past case was solved.
ResearchAnalystsBuild a searchable library of reading notesAn analyst files one page for each paper and searches by idea.
EducationCourse teamsMake lesson pages easy to find from a questionA 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.

Where to use it

Any n8n that can reach Notion, Google’s Gemini service and Pinecone will run it.

  • n8n Cloud: import the file and publish it
  • Your own n8n server: the same file and steps
  • Notion: a database that holds the pages, shared with your Notion integration
  • Pinecone: an index with the right number of dimensions

Setup

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.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
NotionAn integration token, as a Notion credential in n8n, and a database that is shared with that integration
Google GeminiAn API key, added in n8n as a Google Gemini credential
PineconeAn API key and an index of 3072 dimensions, which is the default size of gemini-embedding-001
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Notion credential and select it in 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.
  3. Make a Pinecone index with 3072 dimensions. In Store in Pinecone, add a Pinecone credential and replace <YOUR_PINECONE_INDEX> with the index name.
  4. Add a Google Gemini credential and select it in Gemini Embeddings.
  5. Publish the workflow, then add a test page to the database and wait a minute.

How to use it

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.

What to change for a different result
To changeWhere
The databasePage Added in Notion
Which blocks are skippedThe conditions in Filter Non-Text Content
The chunk size and the overlapToken Splitter
The metadata stored with each chunkLoad Page and Add Metadata
The embedding modelGemini Embeddings, and the size of the index
The index or the namespaceStore in Pinecone

Example

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.

For newcomers and experts

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.

Where to look closer
NodeWhat it doesWhat to know
Page Added in NotionPolls the database for new pagesSimplify is off, so it returns the raw page with all its properties
Get Page BlocksReads the blocks of the pageOnly the blocks directly on the page, not nested ones
Filter Non-Text ContentDrops image and video blocksEverything else stays
Join Blocks Into One TextJoins the text of the blocks with a line breakOne item for each page
Load Page and Add MetadataWraps the text as a documentThe title comes from the page’s title property, whatever its name
Token SplitterCuts the text into chunks256 tokens with an overlap of 30
Store in PineconeInserts the chunksEach run adds new vectors and never removes old ones

Good to know

This workflow only fills the index. Reading from it is a separate job.

  • Fixes: Google shut down 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 placeholders
  • Index size: n8n’s Gemini embeddings step does not ask for a smaller size. Check the index size against the length of the first vector, and pick the distance measure that Google recommends for the model. Mindket did not check that recommendation
  • New pages only: a page that you edit or delete later stays as it was in the index, and a page that is run twice is stored twice
  • Nested blocks: only the blocks directly on the page are read. Toggles and nested lists do not add their inner text
  • Data: the page text goes to Google’s embedding service and to Pinecone
  • Not run: Mindket did not run it against Notion, Gemini or Pinecone. The model name, the vector size and the input limit follow Google’s published notes as read by Mindket on 12 November 2026
  • Credentials: the JSON holds none

README and files

README

Notion pages stored in Pinecone with Gemini embeddings

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

What is inside

  • workflow.json: the workflow as n8n exports it, nine nodes. One is a sticky note. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The original used the Gemini model models/text-embedding-004, which Google shut down on 14 January 2026. The step now uses
    models/gemini-embedding-001, the default of n8n's Gemini embeddings node.
  • That model makes vectors of 3072 numbers, not the 768 in the original name. The Pinecone index must have that size.
  • The Notion database and the Pinecone index were private. They are now the placeholders <YOUR_NOTION_DATABASE_ID> and
    <YOUR_PINECONE_INDEX>.
  • The page title was read from a property called Name. It is now read from whichever property holds the title, so it works
    when your database calls it something else.
  • Several nodes were renamed to say what they do, and the names no longer hold spaced hyphens. The wiring is unchanged.
  • A sticky note was added in plain words.

Before you start

  • A Notion integration token and a database that is shared with that integration.
  • A Google Gemini API key.
  • A Pinecone account, an API key and an index with 3072 dimensions.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add a Notion credential and select it in 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.
  3. Make a Pinecone index with 3072 dimensions. In Store in Pinecone, add a Pinecone credential and replace
    <YOUR_PINECONE_INDEX> with the index name.
  4. Add a Google Gemini credential and select it in Gemini Embeddings.
  5. Publish the workflow, then add a test page to the database and wait a minute.

How a run goes

  1. Page Added in Notion finds a new page. Simplify is off, so the item holds the raw page with its properties.
  2. Get Page Blocks reads the blocks that sit directly on the page.
  3. Filter Non-Text Content drops blocks of the type image or video.
  4. Join Blocks Into One Text joins the text of the remaining blocks, one block to a line, into the field
    concatenated_content.
  5. 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.
  6. Gemini Embeddings turns each chunk into a vector, and Store in Pinecone inserts the vectors into your index.

Change the result

  • 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: Load Page and Add Metadata.
  • The embedding model: Gemini Embeddings. Change the size of the index with it.
  • The index or the namespace: Store in Pinecone.

Good to know

  • This workflow only fills the index. Searching it is a separate workflow.
  • n8n's Gemini embeddings step does not ask for a smaller vector size. Check the index size against the length of the first
    vector. Mindket did not check which distance measure Google recommends for the model.
  • Only new pages are handled. A page that you edit or delete later stays as it was in the index, and a page that is run twice
    is stored twice.
  • Only the blocks directly on the page are read. A toggle or a nested list does not add its inner text.
  • The page text goes to Google's embedding service and to Pinecone.
  • Mindket did not run this workflow against Notion, Gemini or Pinecone. The model name, the vector size and the input limit
    follow Google's published notes, as read by Mindket on 12 November 2026.
Files
NOTICE.md  606 B
README.md  4 KB
workflow.json  7 KB

3 files, 12 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

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…

New

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…

New

ACE-Step 1.5 XL SFT

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…

New

Similar in Developer

See all in Developer

Claude Code Skills & Plugins

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…

New29.8k

buzz

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…

New37.3k

plannotator

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.

New10.5k