Finance & Back Office · n8n

Subscription Audit: a monthly report of every SaaS charge — and which ones you forgot you pay for

An n8n workflow that scans your bank/card notification emails all month for recurring charges, and on the 1st has Claude reconcile them into a subscription report: what you pay, what changed price, what charged twice, and what nobody has logged into since — sent to your inbox.

difficulty Intermediatesetup 40 minresult The average small team finds $100–400/mo of zombie subscriptions in the first report
  1. 1

    Label and collect all month

    Create a Gmail filter that labels bank/card charge notifications charges. A Gmail Trigger on that label feeds each email to Claude for a tiny extraction — {vendor, amount, currency, date, card_hint} — appended to this month's sheet tab. Runs silently all month.

  2. 2

    Reconcile on the 1st

    A Schedule Trigger (1st, 08:00) reads the month's charges plus your known_subscriptions tab (vendor, expected amount, owner, last-confirmed-used). A Code node does the joins: matched, new, price-changed, duplicated, stale-owner.

  3. 3

    Claude writes the audit

    Claude receives the reconciliation and writes the report: total recurring spend, month-over-month delta, and a flag section with one recommended action each ('Figma went $15→$20/seat — check the plan email', 'two Dropbox charges — likely personal + team'). Plain prose, ranked by money.

  4. 4

    Deliver and reset

    A Gmail node sends the report to you (and your accountant if you like), the month tab archives, and a fresh one is created. Fifteen minutes with the first report usually pays for a year of n8n cloud.

Frequently asked questions

How does it see my charges without bank API access?

It reads the charge-notification emails your bank and card already send (enable them in your banking app if off — usually one toggle). A Gmail filter labels them, the workflow reads that label. No bank credentials, no third-party financial aggregator, nothing sensitive stored beyond vendor + amount + date in your own sheet.

What counts as a 'zombie' subscription?

The report flags: charges with no matching entry in your known-subscriptions list, price increases vs last month, duplicate charges from the same vendor, and anything on your list marked with an owner who hasn't confirmed usage in 90 days (a simple column you tick). The flag is a question, not an accusation — but most flags turn into cancellations.

We pay from three different cards. Does that work?

Yes — label the notification emails from all cards into the same Gmail label and the merge happens naturally. The report groups by vendor regardless of which card paid, which is exactly how duplicate tools across teams get caught ('why do we have two Canva Pros?').

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.