How to Automate Your Personal Budget with n8n and Google Sheets
Stop manually copying bank data into spreadsheets. This guide shows you how to set up an automatic weekly budget summary — no coding required.
Every Sunday evening, do you find yourself copying numbers from your banking app into a spreadsheet, calculating totals, and wondering where your money actually went? If so, you’re not alone — and you can automate this completely.
In this article, we’ll show you how to build an automatic weekly budget summary using n8n (a free, open-source automation tool) and Google Sheets. By the end, you’ll receive a neat summary in Telegram or email every Monday morning without lifting a finger.
What you’ll get
- A Google Sheet that automatically logs your income and expenses
- A weekly summary message (Telegram or email) with:
- Total income
- Total expenses by category
- Current balance
- Top 3 spending categories
What you need
- A Google account (for Sheets)
- A Telegram account (or any email address)
- Access to n8n (free self-hosted or n8n.cloud trial)
- Your bank’s transaction export in CSV format (most banks support this)
You do not need to know how to code.
Step 1: Set up your Google Sheet
Create a new spreadsheet with the following columns:
| Date | Category | Description | Amount | Type |
|---|---|---|---|---|
| 2026-03-01 | Food | Grocery store | -85.50 | expense |
| 2026-03-01 | Salary | Monthly salary | +3200 | income |
The key columns are:
- Date — when the transaction happened
- Category — what type of expense (Food, Transport, Utilities, etc.)
- Amount — positive for income, negative for expenses
- Type — “income” or “expense”
You can fill this manually at first, or import it from your bank’s CSV export.
Step 2: The automation logic
Here’s what the n8n workflow will do every Monday at 8:00 AM:
- Trigger: Schedule trigger (every Monday at 8:00)
- Read data: Pull last 7 days from your Google Sheet
- Calculate: Sum income, sum expenses by category, compute balance
- Format: Build a readable message
- Send: Post to Telegram or email
Schedule → Google Sheets (read) → Code (calculate) → Telegram (send)
Step 3: Build the workflow
Node 1 — Schedule Trigger
Set it to run every Monday at 8:00 AM.
Node 2 — Google Sheets
Use the Google Sheets node with “Read Rows” action. Connect your spreadsheet. Filter rows where the Date column is within the last 7 days.
Node 3 — Code (calculate totals)
Add a Code node with this JavaScript:
const rows = $input.all();
let income = 0;
let expenses = 0;
const byCategory = {};
for (const row of rows) {
const amount = parseFloat(row.json.Amount) || 0;
if (amount > 0) {
income += amount;
} else {
expenses += Math.abs(amount);
const cat = row.json.Category || "Other";
byCategory[cat] = (byCategory[cat] || 0) + Math.abs(amount);
}
}
// Top 3 categories
const top3 = Object.entries(byCategory)
.sort((a, b) => b[1] - a[1])
.slice(0, 3);
return [{
json: {
income: income.toFixed(2),
expenses: expenses.toFixed(2),
balance: (income - expenses).toFixed(2),
top3
}
}];
Node 4 — Telegram
Add a Telegram node. In the message field:
📊 Weekly Budget Summary
💰 Income: ${{ $json.income }}
💸 Expenses: ${{ $json.expenses }}
🏦 Balance: ${{ $json.balance }}
Top spending:
{{ $json.top3.map(([cat, amount]) => `• ${cat}: $${amount.toFixed(2)}`).join('\n') }}
Step 4: Connect your bank (optional)
If your bank supports automatic CSV export or has an API, you can skip manual entry entirely. Some options:
- Plaid — connects to most US banks and returns transaction data via API
- Open Banking APIs — available in the EU under PSD2 regulations
- Bank email notifications → parse with n8n’s email trigger
For most people, a quick 5-minute manual import on Sundays is the simplest approach to start with.
What you end up with
Every Monday morning, you get a message like this:
📊 Weekly Budget Summary
💰 Income: $3,200.00
💸 Expenses: $847.30
🏦 Balance: $2,352.70
Top spending:
• Food: $245.00
• Transport: $120.00
• Utilities: $98.50
No manual work. No guessing. Clear picture of your week.
Want us to set this up for you?
This workflow takes about 2–3 hours to build from scratch, test, and connect to your specific setup. If you’d prefer to skip the technical parts and just start using it, we can build and configure this for you.
Price: from $150 — includes setup, testing, and a written guide on how to maintain it.
Going further
Once the basic budget automation is running, you can extend it:
- Daily balance update instead of weekly
- Track savings goals (add a target column and show % achieved)
- Get an alert if weekly expenses exceed a set threshold
- Monthly report sent on the 1st of each month
- Add a “no-spend day” tracker to build better habits
The foundation is the same — you just add more nodes to the workflow.
This is part of our automation examples series. Browse more use cases in the blog or jump straight to ordering your custom automation.