I Got Tired of Manually Logging Invoices, So I Wired Webhooks Straight to a Google Sheet
Description and use
An n8n workflow that receives invoice webhooks, verifies HMAC signatures, drops duplicates via idempotency, and appends rows to Google Sheets, eliminating manual logging and data loss.
Problem
Repeatedly rebuilding invoice‑logging automations for each payment provider caused friction due to varying payloads, failure modes, and duplicate handling.
Outcome
The workflow reliably records invoices, prevents duplicates, and surfaces errors, eliminating manual logging and reducing loss of data under load.
Workflow
- Webhook – entry point for all executions
- HMAC verify – checks signature before parsing
- Idempotency check – drops events with previously processed id
- Append to Sheets – writes normalized record as a row
- Error branch – collects failures and surfaces them
Evidence
I kept hitting the same friction: every time a payment provider fired an event, I rebuilt the same automation from scratch.
The order matters: verifying before parsing means a malformed or hostile body never reaches code that acts on it.
An error branch that only appends to a file is not an error branch; it has to end somewhere a human looks.
- Record date: 2026-11-01T20:58:46.764Z