Find and audit recurring subscriptions with Gemini, Gmail and Google Sheets
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (10)
- n8n Form Trigger
n8n-nodes-base.formTrigger - Extract from File
n8n-nodes-base.extractFromFile - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Gmail
n8n-nodes-base.gmail - Split Out
n8n-nodes-base.splitOut - Google Sheets
n8n-nodes-base.googleSheets
What it does
Quick Overview This workflow collects a CSV bank statement via an n8n form, detects stable recurring charges, and uses Google Gemini to classify subscriptions and recommend keep/review/cancel. It emails the results via Gmail and saves each subscription to Google Sheets for ongoing tracking. How it works 1. Receives a form submission with the user’s email address and a CSV statement upload. 2. Extracts transactions from the CSV and groups similar descriptions to detect recurring charges that appear at least twice with a stable amount. 3. If no recurring charges are found, sends a Gmail message asking the user to upload a longer statement period. 4. If recurring charges are found, sends the summarized list to Google Gemini to identify each service, estimate monthly/annual costs, and recommend keep/review/cancel, then parses the structured results. 5. Emails the user a subscription audit summary, including total annual cost, potential savings, and which subscriptions to keep versus cancel or review. 6. Splits the subscription list into individual items and appends or updates rows in a Google Sheets “Subscriptions” tab so repeated audits update existing entries. Setup 1. Create and connect credentials for Google Gemini (PaLM) API, Gmail OAuth2, and Google Sheets OAuth2. 2. Select the target Google Sheets spreadsheet and set the sheet/tab name to “Subscriptions” in the Google Sheets node. 3. Share the n8n form URL and ensure users upload 3–12 months of statements as a CSV with Date, Description (or similar), and Amount (or similar) columns.