← Guides
Integration How-Tos·10 min read

How to automate Xero payment reminders with n8n

Xero has built-in payment reminders. For most businesses they're enough. When they're not — because you need different messaging by customer type, follow-up via WhatsApp, escalation logic, or CRM integration — n8n can build the workflow that Xero's native feature can't.

What Xero's built-in reminders do

Xero's payment reminder feature sends automated emails to customers with overdue invoices. You configure:

  • How many days overdue before each reminder fires
  • Up to three reminder stages (e.g. 7, 14, and 30 days overdue)
  • Email subject and body per stage
  • Whether to include a PDF copy of the invoice

Xero applies the rule globally — the same reminder schedule applies to all customers unless you manually exclude specific contacts.

You enable it at Settings > Invoice Reminders. Once on, it runs automatically as long as the invoice is approved and unpaid.

Where Xero's built-in reminders fall short

No segmentation by customer. Every customer gets the same reminder unless you manually mark them as excluded. You can't apply a different tone to a long-term client vs. a new customer, or skip reminders for customers on a payment plan.

Email only. No WhatsApp, no SMS, no Slack notification to your team when an invoice hits 30 days.

No escalation logic. Xero won't alert your team or trigger a different process when an invoice crosses a threshold — say, 45 days overdue or over R50,000.

No CRM or pipeline integration. A reminder going out doesn't update a deal stage, log a follow-up task, or create a HubSpot activity.

No conditional logic. "If the customer has previously paid within terms, use a softer message" isn't something Xero's reminders can express.

If any of these matter to your business, n8n is the right layer to add.

How the n8n workflow works

The core pattern: n8n polls the Xero API on a schedule, retrieves overdue invoices, applies your logic, and sends reminders through whichever channel fits.

What you need before building

  • A Xero developer app (created at developer.xero.com) to get your OAuth 2.0 credentials
  • n8n installed — self-hosted on your own server, or n8n Cloud
  • Access to whatever channel you're sending through (email provider, WhatsApp Business API, Slack, etc.)

Step 1: Connect Xero to n8n

In n8n, create a new Xero credential using OAuth 2.0. You'll need the Client ID and Client Secret from your Xero developer app. n8n has a native Xero node — the credential setup walks you through the OAuth flow and stores the token.

Once connected, n8n can read from and write to your Xero organisation.

Step 2: Schedule the trigger

Use the Schedule Trigger node to run the workflow on your chosen interval. Daily at 8am is a common choice — you get reminders sent early in the business day.

Schedule: Every day at 08:00
Timezone: Africa/Johannesburg

Step 3: Retrieve overdue invoices from Xero

Use the Xero node with the "Get Many Invoices" operation. Filter by:

Status: AUTHORISED
DueDateTo: [today's date]

This returns all approved, unpaid invoices with a due date in the past. You'll get the full invoice object including contact details, amounts, and due dates.

Step 4: Calculate days overdue

Use a Code node (JavaScript) or a Set node with expressions to calculate how many days overdue each invoice is.

const today = new Date();
const due = new Date(items[0].json.DueDate);
const msPerDay = 1000 * 60 * 60 * 24;
const daysOverdue = Math.floor((today - due) / msPerDay);
return [{ json: { ...items[0].json, daysOverdue } }];

Step 5: Apply your reminder logic

Use an IF node or a Switch node to route each invoice based on days overdue and any other conditions you want to apply.

Example stages:

Days overdueAction
1–7Gentle first reminder
8–14Firmer second reminder
15–30Third reminder + internal Slack alert
30+Flag for manual follow-up, notify team

You can add conditions here for customer tags, invoice amounts, or anything else in the Xero contact record.

Step 6: Send the reminder

For email, the Send Email node (or Gmail / Outlook nodes) composes and sends the message. Pull invoice reference, amount, and due date from the Xero data to personalise each email.

For WhatsApp, use the WhatsApp Business API via an HTTP Request node — or a service like Wati or MessageBird that n8n connects to natively. This adds a meaningful channel for customers who respond faster on WhatsApp than email.

For internal Slack alerts, use the Slack node to post to a collections channel when an invoice hits a threshold.

Step 7: Log what was sent

Write the reminder event back to a log — a Supabase table, a Google Sheet, or a note against the contact in Xero using the Xero node's "Create Note" operation. This gives you a record of what was sent and when, without relying on email open tracking.

Handling already-reminded invoices

To avoid sending duplicate reminders, check your log before sending. Pull the invoice ID and the last-reminded date from your log, compare against the current invoice data, and skip any invoice that was reminded in the last N days.

This is the step that separates a production-grade workflow from a prototype.

A note on Xero's rate limits

The Xero API has a rate limit: 60 calls per minute per app, and a daily limit of 5,000 calls. For most small businesses with manageable invoice volumes, this is irrelevant. If you have hundreds of invoices, consider batching your API calls and adding a short wait between batches.

When Xero's built-in reminders are enough

Xero's reminders are sufficient if:

  • You're happy with the same email sequence for all customers
  • Email is the only channel you need
  • No CRM or internal escalation is required
  • Your overdue invoice volume is low enough to handle exceptions manually

For most businesses under 50 active invoices, Xero's native reminders plus an occasional manual follow-up is perfectly adequate.

When to build with n8n

Build a custom n8n workflow when:

  • You need different messaging by customer segment or relationship type
  • WhatsApp or SMS follow-up would improve your collection rate
  • Your team needs Slack alerts for high-value or long-overdue invoices
  • Reminders should trigger activity logging in a CRM
  • You want to pause reminders automatically for customers in a negotiation

The workflow described above can be built and running in a day. Once it's running, it's maintenance-free unless your requirements change.

If you'd like this built for your business — including the Xero connection, reminder logic, and whichever channels make sense for your customer base — the process automation service covers this end to end.


Some links in this guide are affiliate links. If you sign up through them, Gainly may earn a commission — at no cost to you. We only recommend tools we'd recommend regardless.

Want this built for your business?

Describe what you're working with and I'll come back with something specific — not a sales call.

Tell me what you're dealing with