See llms.txt for all machine-readable content.
This workflow turns a simple chat interface into a powerful personal expense tracker. Just describe your spending in plain language โ the AI understands it, categorizes it, and saves it to Google Sheets automatically.
Example inputs the AI understands:
spent 500 on lunchuber 150paid 1200 electricity billlunch in feb 25 cost 500 โ handles past dates toonetflix 499$50 hotel booking โ detects currencyNo rigid formats. No dropdowns. Just type naturally.
SUMMARY or summary february for any month| What you type | What happens |
|---|---|
spent 500 on lunch |
โ Saved: ๐ Food & Dining โ Lunch ยท โน500 |
uber 150 |
โ Saved: ๐ Transport โ Uber ยท โน150 |
1200 electricity bill |
โ Saved: ๐ก Bills & Utilities ยท โน1200 |
lunch in feb 25 cost 500 |
โ Saved to February 2025 correctly |
SUMMARY |
๐ Current month report with breakdown |
summary february |
๐ February report (current year) |
summary february 2025 |
๐ February 2025 specific report |
HELP |
๐ Shows all commands and categories |
Create a new Google Sheet with these exact headers in Row 1:
| Col | Header |
|---|---|
| A | Date |
| B | Amount |
| C | Category |
| D | Description |
| E | Currency |
| F | Month |
| G | Raw Message |
| H | Total |
| Credential | Used for | Free? |
|---|---|---|
| Anthropic API | Claude Haiku AI parsing | Paid (very low cost) |
| Google Sheets OAuth2 | Read & write expenses | Free |
Claude Haiku nodeYou type: "spent 500 on car wash"
โ
Detect Intent โ classified as: expense
โ
Read All Expenses โ loads sheet (works even if empty)
โ
Prepare Data โ calculates existing month total
โ
AI Parse Expense (Claude Haiku)
โ amount: 500
โ category: Transport
โ description: Car wash
โ date: today
โ currency: INR
โ
Parse & Total
โ derives Month from parsed date
โ computes new running total
โ
Is Valid? (amount > 0 and is_expense = true)
โ
YES โ Save to Sheet โ Reply with confirmation
โ NO โ Ask user to include an amount
Summary flow:
You type: "summary february"
โ
Detect Intent โ classified as: summary
โ
Read for Summary โ loads all rows
โ
Build Summary
โ detects "february" in message
โ filters rows by February (current year)
โ calculates total, breakdown by category, daily avg
โ
Returns formatted report
๐ March 2026 Report
๐ณ Total: โน8,450
๐ Entries: 12
๐ Daily avg: โน470
๐ Top: ๐ Food & Dining
Breakdown:
๐ Food & Dining: โน3,200 (38%)
๐ Transport: โน1,800 (21%)
๐ก Bills & Utilities: โน1,200 (14%)
๐๏ธ Shopping: โน1,050 (12%)
๐ฌ Entertainment: โน800 (9%)
๐ฅ Health: โน400 (5%)
| Emoji | Category | Example keywords |
|---|---|---|
| ๐ | Food & Dining | lunch, dinner, restaurant, zomato, swiggy, grocery |
| ๐ | Transport | uber, ola, petrol, metro, flight, car wash, parking |
| ๐๏ธ | Shopping | amazon, flipkart, clothes, electronics, shoes |
| ๐ก | Bills & Utilities | electricity, wifi, rent, recharge, emi, gas |
| ๐ฌ | Entertainment | netflix, movie, spotify, concert, gaming |
| ๐ฅ | Health | medicine, doctor, gym, pharmacy, hospital |
| ๐ผ | Business | office, software, domain, hosting, tools |
| ๐ | Education | course, books, tuition, udemy, fees |
| ๐ฐ | Other | anything that doesn't match above |
| Node | Type | Purpose |
|---|---|---|
| When chat message received | Chat Trigger | Entry point |
| Detect Intent | Code | Classify: expense / summary / help |
| Intent Switch | Switch | Route to correct path |
| Read All Expenses | Google Sheets | Load rows (alwaysOutputData: true) |
| Prepare Data | Code | Compute month total, handle empty sheet |
| AI Parse Expense | LLM Chain | Extract fields using Claude Haiku |
| Claude Haiku | Anthropic Model | AI model for parsing |
| Parse & Total | Code | Validate, derive month, compute total |
| Is Valid Expense? | IF | Check amount > 0 |
| Save Expense to Sheet | Google Sheets | Append new row |
| Reply Saved | Code | Format confirmation message |
| Reply Invalid | Code | Request amount from user |
| Read for Summary | Google Sheets | Load all rows for report |
| Build Summary | Code | Filter by month, compute breakdown |
| Send Help | Code | Return command reference |
Read All Expenses node has Always Output Data enabled โ this is required so the flow works on an empty sheetTotal column stores the running month total at the time of each entry โ it does not update retroactively if you delete rowsBuilt with n8n ยท Claude Haiku ยท Google Sheets By Nirav Gajera