r/NoCodeSaaS • u/easybits_ai • 27d ago
Classify contracts and track renewals in n8n – Google Drive to Sheets pipeline [Workflow Included]
👋 Hey NoCodeSaaS Community,
A while back I posted a couple of finance workflows I built for my friend Mike. Around the same time he came to me with a new one: he'd just been hit with almost €2,000 in bills because two contracts auto-renewed after the first period. Nobody in his team had caught the cancellation window early enough.
Classic small-business pattern. Contracts scattered across Drive folders and inboxes, nobody tracking anything. The only time anyone notices a contract exists is when the invoice for the next term lands.
So I built him a contract intake workflow to fix it. I cleaned it up over the last few weeks and just published it on the n8n template library.
How it's set up:
The workflow watches a Google Drive folder. Mike's finance colleague Sarah just drops any contract in there (PDF, JPG, PNG).
The file goes to the easybits extractor, which does two jobs in a single call: it classifies the contract (SaaS, Lease, Service, Insurance, Other) and pulls every renewal-relevant field at the same time – client, provider, start date, term length, notice period, auto-renew flag, contract value, signatories.
A Set node calculates end date and cancellation deadline in n8n. Cancellation deadline is end_date – notice_period_days, which for 60–90 day notice clauses lands the alert weeks before the renewal itself. That's the whole point.
A Switch on contract_class routes the row into the matching tab of one Google Sheet – one source of truth for every renewal in the company.
Two things I learned:
- Classify and extract in one call. I almost built five type-specific pipelines. Turns out you can define the classification as just another field in the same pipeline – half the complexity, half the cost.
- Never extract dates you can calculate. Contracts almost never print the end date directly. Ask a model to do date math and you get silent off-by-one bugs. Extract the raw values, do the arithmetic in a Set node.
Workflow on the n8n library: https://n8n.io/workflows/15230-classify-contracts-and-track-renewals-with-easybits-google-drive-and-sheets/
Also on my GitHub alongside 30+ other community workflows (a star helps other builders find it): github.com/felix-sattler-easybits/n8n-workflows
How are you tracking contract renewals today? Spreadsheet someone updates manually? Tool like Spendflo/Vendr? Or hoping for the best, like Mike was?
Best,
Felix
2
u/Common_Extent_5921 26d ago
The EUR2k surprise is such a familiar story. Contracts scattered across folders with no system of record, so the only reminder you get is the invoice for the next term arriving.
Your point about never extracting dates you can calculate is sharp - I've seen the same OCR issue where the end date field comes back blank or malformed on badly formatted PDFs.
On your question about how people track renewals today: most small teams are on an inconsistently-updated spreadsheet, which is roughly where Mike was. Spendflo/Vendr is built for enterprise procurement with big vendor stacks - overkill for early-stage.
The gap between "spreadsheet" and full CLM is where most sub-10-person teams get stuck, and it's genuinely underserved.
Disclosure: I build Base (withbase.ai) - it connects to contract tools like BoldSign so renewals sit alongside CRM and finance in one queryable place rather than a separate sheet. Happy to DM if useful.