Skip to content
Explore Templates
Workflow recipes

n8n Invoice Reminder Workflow: Follow Up Without Sending Duplicate Emails

Design invoice reminders in n8n with due-date checks, payment-state verification, customer preferences, idempotency, and escalation rules.

Illustration: Invoice Reminders workflow guide

Editorial status: Documentation-based implementation guide. No independently tested workflow or downloadable JSON is claimed.

Invoice reminders are valuable only when they are accurate. Sending a payment reminder after an invoice has already been settled damages trust, while sending the same message twice makes an automation look unreliable. The safe approach is to check live invoice status immediately before sending and record every reminder attempt.

Recommended workflow design

Schedule Trigger → retrieve open invoices → calculate reminder eligibility → check latest payment state → check reminder log → send email → record outcome. Your accounting platform’s API, payment terms, and customer communication rules determine the exact nodes and fields.

Step 1: Define a reminder policy

Choose explicit stages such as three days before due, one day after due, and seven days after due. These are examples, not a universal collections policy. Exclude disputed invoices, accounts with payment plans, and customers who have opted for a different contact method.

Step 2: Retrieve invoices

Use the native accounting integration when it supports the necessary operations, or use an HTTP Request node with the provider’s API. Retrieve the invoice ID, customer ID, amount, currency, due date, status, and billing contact. Use pagination if the API returns multiple pages; do not silently process only the first page.

Step 3: Determine eligibility

Calculate due dates using the customer’s billing timezone or your agreed business timezone. Check that the invoice remains unpaid and that the reminder stage is appropriate. Avoid floating-point assumptions for currency arithmetic; use the accounting provider’s exact amounts and currency fields.

Step 4: Make sending idempotent

Create a reminder key such as invoice_id + reminder_stage in a durable log. Before sending, check whether that stage was already completed. If your system supports atomic unique constraints, use them; a spreadsheet-only lookup may fail under concurrent runs. Consider recording a pending state and resolving it carefully after ambiguous email API timeouts.

Step 5: Recheck payment and send

Immediately before the send action, query the latest invoice status again. Compose a clear message with the invoice number, amount, due date, and an official payment link supplied by the billing platform. Never invent a payment URL or put banking credentials in the message.

Step 6: Record outcomes and escalate

Log timestamp, reminder stage, provider message ID, and result. Route delivery failures for manual review. For later-stage collections, consider human approval rather than automatic escalation, particularly for high-value or disputed accounts.

Testing scenarios

  1. Unpaid eligible invoice sends once.
  2. Paid invoice sends nothing.
  3. Repeated scheduled run does not duplicate a stage.
  4. Invoice in a different timezone is evaluated correctly.
  5. Email provider timeout does not blindly trigger multiple sends.

Privacy and compliance

Protect billing details, honor applicable email and privacy rules, and retain only the information required for reconciliation. Test against sandbox invoices or synthetic records before using customer data.

References

Documentation reviewed: October 2026. Verify integration options and permissions for your own software versions.

Related TemplateFlows guides

Find a workflow to start from

Browse templates by use case and check what each one needs.

Explore Templates