Store Notion's Pages as Vector Documents into Supabase with OpenAI

Go to Workflow
6,262 views
Built by Dataki Dataki
Created on June 05, 2026

Description

Workflow updated on 17/06/2024:**
Added 'Summarize' node to avoid creating a row for each Notion content block in the Supabase table.*

Store Notion's Pages as Vector Documents into Supabase

This workflow assumes you have a Supabase project with a table that has a vector column. If you don't have it, follow the instructions here: Supabase Langchain Guide

Workflow Description

This workflow automates the process of storing Notion pages as vector documents in a Supabase database with a vector column. The steps are as follows:

Notion Page Added Trigger:
Monitors a specified Notion database for newly added pages. You can create a specific Notion database where you copy the pages you want to store in Supabase.
Node: Page Added in Notion Database

Retrieve Page Content:
Fetches all block content from the newly added Notion page.
Node: Get Blocks Content

Filter Non-Text Content:
Excludes blocks of type "image" and "video" to focus on textual content.
Node: Filter - Exclude Media Content

Summarize Content:
Concatenates the Notion blocks content to create a single text for embedding.
Node: Summarize - Concatenate Notion's blocks content

Store in Supabase:
Stores the processed documents and their embeddings into a Supabase table with a vector column.
Node: Store Documents in Supabase

Generate Embeddings:
Utilizes OpenAI's API to generate embeddings for the textual content.
Node: Generate Text Embeddings


Create Metadata and Load Content:
Loads the block content and creates associated metadata, such as page ID and block ID.
Node: Load Block Content & Create Metadata

Split Content into Chunks:
Divides the text into smaller chunks for easier processing and embedding generation.
Node: Token Splitter

Nodes Used (5)

Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Notion
n8n-nodes-base.notion
Supabase Vector Store
@n8n/n8n-nodes-langchain.vectorStoreSupabase
Token Splitter
@n8n/n8n-nodes-langchain.textSplitterTokenSplitter