Holded logo Holded automation · runs weekly

Chase unpaid Holded invoices with a reminder

Every Monday someone opens the invoice list, works out which clients are late and writes to them one by one.

Cotlet does it in your own Holded account with list_invoices, get_contact and send_invoice, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Holded do this on its own?

Holded has built-in invoice reminders through a free Gem, with conditions and a schedule relative to the due date (checked 14 Oct 2026). Each message is sent once, and reminders are not sent for invoices with multiple due dates. Zapier has no action to list unpaid invoices, and Holded has no official MCP server.

How you do it in Holded today

  1. In Holded you open Sales > Invoices and scan the list for invoices that are pending or overdue.
  2. For each late invoice you open the contact to find the email address that should get a reminder.
  3. You open the invoice, click Submit, check the recipient, edit the message and click Send, or you set up reminders in the Sales menu.
  4. Holded's own reminders need the free Gem from the Holded store, then Sales > three-dot menu > Reminders > Create your first reminder.
  5. Reminders are set by conditions such as amount, tags and language, and each message goes out once.
  6. Anything that needs a personal tone, or a second reminder, is written by hand.

How to chase unpaid Holded invoices with a reminder

Prompt

Every Monday, list the Holded invoices that are overdue, group them by client and email each client one polite reminder that names the invoices. Skip clients I tagged as paying by transfer on the 30th.
  1. 01

    Read what is overdue

    list_invoices runs with status unpaid and due_before set to today, so only invoices past their due date are in the batch, oldest first.

  2. 02

    Group by client

    The agent groups invoices per contact, so a client with three late invoices gets one message, with a table of numbers, amounts and due dates, not three emails.

  3. 03

    Check who to leave alone

    get_contact gives the email and the tags. Clients you excluded in the prompt are skipped, and a client without an email address is listed for you.

  4. 04

    Check the invoice again before sending

    Right before sending, the agent reads the invoice and skips it if a payment was recorded in the meantime, so nobody gets a reminder for something just paid.

  5. 05

    Send one reminder per client

    send_invoice emails the oldest late invoice with your reminder text, which carries the link to the customer portal where the client sees the others. Each send asks for your OK by default.

What you get back

Example data

Overdue invoices: 6 from 4 clients
Reminders sent: 3
- Northwind Studio: 2 invoices, 1,210.00 total, oldest due 2026-09-30
- Lumen Dental: 1 invoice, 580.80, due 2026-10-05
Skipped: Riverside Cafe (tagged transfer on the 30th)
Needs you: Kappa Works has no email on the contact

Other ways to ask

  • Every Monday, send only the clients whose oldest invoice is more than 14 days overdue.
  • List overdue invoices by total amount and send nothing.
  • Send a firmer second reminder to clients I already emailed last week and who still have not paid.
  • Tell me which clients have invoices due in the next 7 days, without emailing anyone.

What Holded allows, and what to know first

  • Holded reminders need the free Gem from the Holded store before the Reminders option works.
  • Holded reminders go out once per message, and they are not sent for invoices with multiple due dates.
  • Holded reminders can be sent for invoices that are pending or overdue, and contacts set to get CC emails receive them too.
  • A Holded invoice email contains a link to the invoice on the customer portal, which you can copy and share another way.
  • Holded can send a document by email or by post, and the email uses the mailing template linked to the document unless you pick another.

send_invoice asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: Holded Help: How invoice reminders work · Holded Help: Send your invoices by email · Holded Help: Add payments to your invoices

Call send_invoice from a script

curl

curl -X POST https://cotlet.dev/api/v1/holded/invoices/inv_7d31 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"accounts@northwind.example","method":"email","message":"Hello, invoice INV-0045 for 968.00 was due on 2026-10-14. You can open it in the customer portal using the link below. Please let us know when it is paid."}'

Example response

{
  "invoice_id": "inv_7d31",
  "number": "INV-0045",
  "status": "sent",
  "method": "email",
  "to": "accounts@northwind.example",
  "sent_at": "2026-10-14T09:15:00+02:00"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is holded_write → send_invoice. Example data.

Schedule it in n8n, Make, Zapier or cron

Holded tools this automation uses

Cotlet Holded tools used to chase unpaid Holded invoices with a reminder
Tool Parameters
list_invoices status, contact_id, issued_since, due_before, limit, cursor
get_contact contact_id
send_invoice invoice_id, to, method, message
All 12 Holded tools with descriptions

Frequently asked questions

Is it safe to connect Holded to Cotlet?

Yes. You sign in to Holded yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Holded once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to Holded.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Holded.