Skip to main content

Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail

Workflow preview

Workflow preview
100%
Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail preview
Open on n8n.io

1. Workflow Overview

Quick Overview This workflow receives vendor invoices via a webhook, normalizes them into a fingerprint, checks Google Sheets for previously paid matches, and then blocks duplicates with Slack aler...

Best for

  • Invoice Processing automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.code, n8n-nodes-base.if, n8n-nodes-base.googlesheets, n8n-nodes-base.set, n8n-nodes-base.slack, n8n-nodes-base.gmail, n8n-nodes-base.respondtowebhook

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Avkash Kakdiya.

Original n8n.io source

1.1 Workflow description

Title
Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail
Workflow name
Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail

Quick Overview

This workflow receives vendor invoices via a webhook, normalizes them into a fingerprint, checks Google Sheets for previously paid matches, and then blocks duplicates with Slack alerts and an audit log while registering unique invoices and optionally requesting manager approval via Gmail.

How it works

  1. Receives invoice data from a POST webhook endpoint.
  2. Parses and normalizes vendor, invoice number, and amount into a consistent fingerprint and drops incomplete invoices.
  3. Looks up the fingerprint in a Google Sheets register of paid invoices to detect whether a matching invoice already exists.
  4. If a duplicate is found, posts a blocked-payment alert to Slack and appends the incident to a Google Sheets “DuplicateLog” tab.
  5. If no duplicate is found, calculates an approval status based on the invoice amount and registers the invoice in the Google Sheets “PaidInvoices” tab.
  6. If the invoice exceeds the threshold, emails the approver via Gmail; otherwise it posts a cleared notice to Slack.
  7. Responds to the webhook caller with a JSON result indicating the invoice number and whether it was treated as a duplicate.

Setup

  1. Create a Google Sheets spreadsheet with “PaidInvoices” and “DuplicateLog” tabs and include a fingerprint column (and optional paid_date and payment_ref fields for match details).
  2. Add Google Sheets credentials in n8n and replace YOUR_GOOGLE_SHEET_ID in the lookup and append actions.
  3. Add Slack credentials and set YOUR_SLACK_CHANNEL_ID for both the duplicate alert and cleared notice messages.
  4. Add Gmail credentials, set YOUR_APPROVER_EMAIL, and confirm the amount threshold (currently 5000) used to require manager approval.
  5. Copy the webhook URL for /ap/invoice-intake and configure your AP system/OCR or intake form to POST invoice payloads to it.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Invoice Intake Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 2 - Parse Invoice Payload

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 3 - Is Valid Invoice

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 4 - Lookup Existing Invoice

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 5 - Flag Duplicate Status

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 6 - Duplicate Found

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 7 - Slack Duplicate Alert

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.2

Block 8 - Log Duplicate

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 9 - Prepare Approval

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 10 - Register Unique Invoice

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 11 - Needs Approval

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 12 - Email Approver

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 13 - Slack Cleared Notice

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.2

Block 14 - Respond to Caller

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 15 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail
Complexity advanced
Nodes 18
Categories Invoice Processing
Author Avkash Kakdiya
Published 11 Jun 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/16267/16267.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Block duplicate vendor invoice payments with Google Sheets, Slack, and Gmail do?

Quick Overview This workflow receives vendor invoices via a webhook, normalizes them into a fingerprint, checks Google Sheets for previously paid matches, and then blocks duplicates with Slack aler...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Invoice Processing use case.