Package Information
Available Nodes
Documentation
š SheetBase - Google Sheets as Database & AI Memory for n8n
Transform Google Sheets into a powerful database with AI Agent memory - 100% Free, No API Quotas!
⨠Key Features
ā
100% Free Forever - No API costs, no quotas, no hidden fees
ā” Ultra Fast - 0-1ms response with intelligent caching
š§ AI Agent Memory - Persistent memory for chatbots
š Fuzzy Search - Advanced keyword matching
š„ Collaborative - Real-time multi-user editing
š Production Ready - Tested with 50,000+ rows
š¦ Installation
Via n8n Community Nodes
Settings ā Community Nodes ā Install ā n8n-nodes-sheetbase
Or manually
cd ~/.n8n
npm install n8n-nodes-sheetbase
pm2 restart n8n
text
šÆ 3 Powerful Nodes
1. SheetBase (Basic)
Read data via CSV URL - Perfect for static lookups
2. SheetBase Tool (LangChain)
AI Agent tool for database queries
3. SheetBase Memory (NEW! š§ )
AI Agent persistent memory with two modes:
- Simple Mode: Read-only CSV search
- Advanced Mode: Full CRUD with Apps Script
š Quick Start
Simple Mode (2 minutes)
- Create Google Sheet:
user_name | user_id | user_preference | user_small_history | user_timestamp - File ā Share ā Publish to web ā CSV
- Copy URL to SheetBase Memory node
Advanced Mode (10 minutes)
- Create Google Sheet
- Extensions ā Apps Script
- Paste this code:
function doGet(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
const headers = data;
const rows = data.slice(1);
const operation = e.parameter.operation || 'search';
const userId = e.parameter.user_id || '';
const keywords = e.parameter.keywords || '';
let results = rows.map((row, idx) => {
let obj = { __row: idx + 2 };
headers.forEach((h, i) => obj[h] = row[i]);
return obj;
}).filter(r => r.user_id === userId);
if (operation === 'search' && keywords) {
const keywordList = keywords.toLowerCase().split(/\s+|,/).filter(k => k.length > 0);
results = results.filter(r => {
const searchText = JSON.stringify(r).toLowerCase();
return keywordList.some(keyword => searchText.includes(keyword));
});
}
return ContentService.createTextOutput(JSON.stringify({
success: true,
data: results,
count: results.length
})).setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = JSON.parse(e.postData.contents);
if (data.operation === 'create') {
const v = data.values;
sheet.appendRow([v.user_name, v.user_id, v.user_preference, v.user_small_history, v.user_timestamp]);
return ContentService.createTextOutput(JSON.stringify({ success: true })).setMimeType(ContentService.MimeType.JSON);
}
if (data.operation === 'update') {
const u = data.updates;
sheet.getRange(data.rowNumber, 3).setValue(u.user_preference);
sheet.getRange(data.rowNumber, 4).setValue(u.user_small_history);
sheet.getRange(data.rowNumber, 5).setValue(u.user_timestamp);
return ContentService.createTextOutput(JSON.stringify({ success: true })).setMimeType(ContentService.MimeType.JSON);
}
if (data.operation === 'delete') {
sheet.deleteRow(data.rowNumber);
return ContentService.createTextOutput(JSON.stringify({ success: true })).setMimeType(ContentService.MimeType.JSON);
}
}
text
- Deploy ā New deployment ā Web app ā Anyone ā Deploy
- Copy URL to SheetBase Memory node
š” Use Cases
- š¤ AI Chatbots - Remember user preferences
- š¼ CRM - Customer database without costs
- š Content Management - Blog posts, documentation
- šļø E-commerce - Product catalogs
- š Data Collection - Forms, surveys, leads
- š IoT - Sensor data logging
ā” Performance
| Rows | Search Time | Status |
|---|---|---|
| 1,000 | <5ms | ā Excellent |
| 10,000 | ~15ms | ā Great |
| 50,000 | ~30ms | ā Good |
Real test: 50,000 rows searched in under 1 second!
š Support & Contact
Created by Charles Lepoittevin
- š§ Email: charleslepoittevin34@gmail.com
- š¼ LinkedIn: charles-lepoittevin
- š Facebook: Charles Lepoittevin
- š» GitHub: @CharlesMagicDev
Get Help
- š Bug Reports: Open GitHub issue
- š¬ Questions: Email or LinkedIn
- ā Like it? Star the repo!
š License
MIT License - Free for personal and commercial use
Made with ā¤ļø by Charles Lepoittevin
If SheetBase saves you time or money, consider ā starring the repo!