
Automated Financial Transaction Pipeline
A zero-cost, self-hosted financial automation system that parses bank transaction emails from Chase, Amex, and Discover into structured Google Sheets datasets with real-time Discord alerts. Runs 24/7 on self-owned Oracle Cloud infrastructure — no SaaS subscriptions, full data ownership.
Problem
Every personal finance SaaS charges a monthly fee, requires linking bank credentials to a third party, and gives you no control over how your data is stored or processed. The underlying data — bank transaction emails — is already in your inbox. It just needs a reliable pipeline to structure it.
Solution
Self-hosted n8n on Oracle Cloud (Docker Compose) with a DuckDNS domain. Gmail API webhook triggers fire on new bank emails, custom JavaScript parsing logic extracts transaction fields per bank format, Redis handles deduplication, Switch node conditional routing directs each bank's emails through its own parsing branch, and structured rows land in Google Sheets with a Discord webhook alert.
Architecture
Gmail API webhook fires on incoming emails from Chase, Amex, and Discover. n8n receives the webhook and routes to the correct parsing branch.
Custom JavaScript nodes extract merchant, amount, date, and category from each bank's distinct email format. Each bank has its own Switch branch to handle format differences.
Redis stores transaction fingerprints (hash of date + merchant + amount). Duplicate emails — re-sends, forwarded copies — are dropped before writing.
Google Sheets API appends structured rows to a master transaction log. Discord webhook fires a formatted alert for every new transaction in real time.
Oracle Cloud Free Tier VM running Docker Compose. DuckDNS provides a persistent domain. Cron scheduling handles token refresh and nightly health checks.
Highlights
- Parses Chase, Amex, and Discover email formats — each with custom JavaScript logic.
- Redis deduplication prevents double-entries from re-sent or forwarded emails.
- Switch node conditional routing — clean separation of bank-specific parsing branches.
- Real-time Discord alerts for every transaction, with structured formatting.
- Full Docker lifecycle on Oracle Cloud Free Tier — zero recurring infrastructure cost.
- DuckDNS domain with automated token refresh and nightly cron health checks.