π― Automated invoice payment tracking with OCR, Claude AI, Slack & Notion DB
β‘ 301 views Β· π― AI Summarization & Classification
Description
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
- Notion DB
- 4 Slack Channel (Invoice Input, Notification, Manual Review, Duplicate Alert (Optional))
- AI Model (We use Claude 3.5 Haiku, Feel free to use Latest Model)
- OCR Parsing (We Used ocr.space, Feel Free to Change into any OCR Parsing you have)
- Create Notion DBs:
- Invoice DB: Title
Invoice No; NumberPaid Amount(editable); SelectStatus; 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).
- Invoice DB: Title
- 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
Invoicerelation + receipt fields. - Test: Run with a sample invoice/receipt β click a Slack button β verify Invoice/Receipt updates in Notion β try Archive from Manual Review.
π Nodes Used
HTTP Request, Slack, Notion, Stop and Error, Basic LLM Chain, Anthropic Chat Model
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File