Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail
Ready for 3.0What this workflow does
This workflow has 20 nodes and runs when an HTTP POST request hits its webhook URL (plus 1 other trigger). Along the way it connects Google Sheets, Slack and Gmail.
How it runs
Trigger: When an HTTP POST request hits its webhook URL (plus 1 other trigger).
- OCR — Extract Invoice Fields (HTTP Request): calls an HTTP API (POST)
- Merge: merges the data from its input branches
- Parse Invoice Payload (Code): runs custom JavaScript code
- Is Valid Invoice (If): checks a condition and branches into true / false
- Lookup Existing Invoice (Google Sheets): lookup
- Flag Duplicate Status (Edit Fields (Set)): sets 3 fields: isDuplicate, matchedPaidDate, matchedPaymentRef
- Duplicate Found (If): checks a condition and branches into true / false
- Slack: uses Slack
- Teams — Duplicate Alert (HTTP Request): calls an HTTP API (POST)
- Prepare Approval (Edit Fields (Set)): sets 3 fields: approvalStatus, paymentDueISO, riskFlag
…plus 8 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (10)
- Webhook
n8n-nodes-base.webhook - HTTP Request
n8n-nodes-base.httpRequest - Merge
n8n-nodes-base.merge - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - Google Sheets
n8n-nodes-base.googleSheets - Edit Fields (Set)
n8n-nodes-base.set - Slack
n8n-nodes-base.slack - Respond to Webhook
n8n-nodes-base.respondToWebhook - Gmail
n8n-nodes-base.gmail
From the author
Quick Overview This workflow receives vendor invoices via a webhook, normalizes key fields into a fingerprint, checks Google Sheets for prior payments to block duplicates, and then logs results, notifies Slack, and emails a Gmail approver for high-value…