n8nflow.net logo

Automated Invoice Payment Tracking with OCR, Claude AI, Slack & Notion DB

by HanUpdated: Last update a month agoSource: n8n.io
Loading workflow viewer...

Getting Started

How it Works

This workflow automates Invoice & Payment Tracking (with Approvals) across Notion and Slack.

  • Ingest — You drop invoices/receipts (PDF/IMG/JSON) into the flow.

  • Extract — OCR + parsing pulls out key fields (invoice no, vendor, currency, totals, receipt paid amount/date).

  • De-dup & Match — We canonicalize vendor + invoice_no and search Notion:

    • Primary match: Invoice No (+ optional Currency / Vendor (Canon)).
    • Fallback: uses document Amount Total and dates.
  • Decide the action

    • create_unpaid — new invoice (no payment).
    • create_paid — new invoice fully paid (unverified).
    • create_partial — new invoice with a first partial payment.
    • update_partial — add a partial to an existing invoice.
    • update_mark_paid — mark existing invoice paid in full.
    • manual_review — currency mismatch / overpayment / ambiguous.
    • archive — push to archive logs (from manual review).
  • Slack approvals (one-click) — A message shows previous paid, this receipt, new total, and Approve buttons (links to a Wait for Webhook resumeUrl). Reviewer picks: Approve Partial / Mark Paid / Manual Review / Archive.

  • Notion updates

    • We only write editable fields: Paid Amount (number), Status (select), Last Payment Date (date).
    • Formulas (e.g., Amount Total, Amount Due) recompute automatically.
    • Receipts are saved in a Receipts DB and related back to the invoice.
  • Notifications & duplicates — If duplicates are detected, Slack posts a simple list with clickable invoice names.

  • Archiving — From Manual Review, Archive goes straight to Archived Invoice DB (and optional Archived Source File DB) as a log entry—no pre-checks needed.

Set up Steps

Prerequisites

  1. Notion DB
  2. 4 Slack Channel (Invoice Input , Notification , Manual Review , Duplicate Alert (Optional))
  3. AI Model (We use Claude 3.5 Haiku , Feel free to use Latest Model)
  4. OCR Parsing (We Used ocr.space , Feel Free to Change into any OCR Parsing you have)

  • Create Notion DBs:
    • Invoice DB : Title Invoice No; Number Paid Amount (editable); Select Status; Dates (Issue/Due/Last Payment Date); Formulas:
      • Amount Total = round(Subtotal - Discount Amount + Tax Total, 2)
      • Amount Due = max(0, round(Amount Total - Paid Amount, 2))
    • Receipts DB : Invoice No, Vendor, Paid Amount (number), Currency (select), Paid Date (date), Receipt No, Source URL; Relation → Invoice.
    • Archived Invoice DB : Invoice No, Vendor, Reason, Source URL, Original Page ID, Archived At (date).
    • (Optional) Source File / Archived Source File DBs.
    • Share all DBs with your Notion integration (Add connections).
  • Add credentials in n8n: Notion (integration token) and Slack (bot token). Invite the bot to your channel.
  • Import the workflow/template: Set each Notion node’s Database ID and each Slack node’s Channel/Credential.
  • Map updates: In the Invoice Update Page node, map Paid Amount , Status , Last Payment Date. In Create Receipt , map Invoice relation + receipt fields.
  • Test: Run with a sample invoice/receipt → click a Slack button → verify Invoice/Receipt updates in Notion → try Archive from Manual Review.