From sitemap crawling to vector storage: Creating an efficient workflow for RAG
Ready for 3.0What this workflow does
This AI workflow has 35 nodes and runs manually, when you click “Execute workflow”. Along the way it connects Embeddings OpenAI, Supabase, Postgres and Supabase Vector Store. It also calls kiekens.com and crawl4ai-app-nrcsv.ondigitalocean.app over HTTP.
How it runs
Trigger: Manually, when you click “Execute workflow”.
- HTTP Request: calls kiekens.com
- XML: converts between XML and JSON
- Split Out: splits a list into separate items
- Loop Over Items (Loop Over Items (Split in Batches)): loops over the items in batches
- Split Out: splits a list into separate items
- Format the URL (Edit Fields (Set)): sets 1 field: loc
- Loop Over Items (Loop Over Items (Split in Batches)): loops over the items in batches
- Check if the URL is in the Supabase Table (Supabase): get many
- Get a row - scrape_queue Table (Supabase): get
- Format the Output from the Supabase node (Code): runs custom JavaScript code
…plus 21 more steps. See the full node list below.
Services it uses
HTTP calls to: kiekens.com, crawl4ai-app-nrcsv.ondigitalocean.app
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (15)
- Manual Trigger
n8n-nodes-base.manualTrigger - HTTP Request
n8n-nodes-base.httpRequest - XML
n8n-nodes-base.xml - Split Out
n8n-nodes-base.splitOut - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - Wait
n8n-nodes-base.wait - If
n8n-nodes-base.if - Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader - Character Text Splitter
@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter - Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi - Edit Fields (Set)
n8n-nodes-base.set - Supabase
n8n-nodes-base.supabase - Code
n8n-nodes-base.code - Postgres
n8n-nodes-base.postgres - Supabase Vector Store
@n8n/n8n-nodes-langchain.vectorStoreSupabase
From the author
This template crawls a website from its sitemap, deduplicates URLs in Supabase, scrapes pages with Crawl4AI, cleans and validates the text, then stores content + metadata in a Supabase vector store using OpenAI embeddings. It’s a reliable, repeatable pipeline…