Payments wait on paperwork, and lien waivers are the paperwork nobody wants to chase. This workflow asks each vendor for a signed waiver as soon as their invoice is ready, checks the AI email before it goes out, reminds vendors before the due date, only clears payment when the receipt matches a real tracker row, and escalates whatever is still outstanding to finance.
Last updated: November 2026.
Quick Overview
Invoices arrive on a webhook with vendor, invoice number, amount, project and waiver type. Incomplete requests are rejected by email. The workflow then reads the Waivers tab and skips an invoice that is already tracked for the same vendor. A GPT-6.1-sol agent drafts the vendor request, and a fact check makes sure the email names the invoice number, the amount and the due date at a sensible length. If not, a plain template is used instead. The request is logged, sent with retries, and the send time and Gmail id go back on the row. A failed send marks the row send_failed and alerts finance. A second webhook records signed waivers only when the invoice exists and is still open. Every morning vendors get up to three reminders near the due date, finance gets the overdue escalation, and Monday brings a weekly summary.
How it works
- When Payment Is Ready receives the invoice, Normalize Invoice sets defaults and Validate Waiver Request sends incomplete requests to Alert on Missing Details.
- Read Existing Waivers and Check Duplicate Invoice look for the same invoice and vendor email. Already Tracked? sends repeats to Email Duplicate Notice.
- Draft Waiver Request writes the email and Prepare Email and Tracker Row parses it.
- Check Draft Facts confirms the invoice number, amount and due date are in the text and the length is 80 to 240 words. Otherwise it swaps in a safe template and records draft_source.
- Append Waiver Request to Tracker logs the row as requested. Email Waiver Request to Vendor retries three times. Record Request Sent stores sent_at and gmail_id, and Mark Request Send Failed plus Alert Finance Send Failed handle a dead send.
- When Waiver Comes Back receives the receipt. Find Waiver Row and Check Receipt Match make sure the invoice exists and is not already received or void. Receipt Matches? leads to Mark Waiver Received and Email Payment Clearance Note, or to Alert Unmatched Receipt.
- Daily Overdue Check reads open rows. Flag Overdue Waivers, Draft Escalation Email and Email Overdue Alert to Finance report overdue waivers and the amount at risk.
- In the same run Pick Vendor Reminders finds waivers due within two days or overdue, Send Vendor Reminder emails the vendor and Bump Reminder Count stores the count, at most three, with three days between reminders.
- Weekly Waiver Summary reads all rows, Collate Tracker Data totals open waivers and Draft Weekly Summary emails finance on Monday.
Setup
- Create a Waivers tab with request_id, vendor_name, vendor_email, invoice_number, invoice_amount, project_name, due_date, status, requested_at, received_at, finance_email, reminder_count, draft_source, sent_at, gmail_id and last_reminder_at.
- Connect Google Sheets and Gmail on all their nodes.
- Add an OpenAI credential on the three model nodes, set to gpt-4o-mini.
- Set the finance address in Normalize Invoice and Normalize Receipt, [email protected] by default.
- Connect the lien-waiver-intake and lien-waiver-received webhooks to your billing and document tools.
Quick Answers
What if the AI email leaves out the amount?
Check Draft Facts replaces it with a template that always names the invoice, amount and due date.
Can the same invoice be requested twice?
No. An invoice already tracked for that vendor is skipped and finance is told.
What if a receipt does not match?
Nothing changes in the tracker and finance gets an email with the reason.
How often are vendors reminded?
From two days before the due date, up to three times, three days apart.
Additional info
Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/