by Dunner (LX AI)

Last updated: 2026-09-16

Chase late invoices without the awkwardness

Client, amount, and days overdue are enough inputs. Professional copy removes the blank-page friction.

How Dunner works

I start with three simple fields: the client name, the invoice amount, and the number of days the invoice is past due. Those three inputs drive a prompt that asks a language model to produce three follow‑up messages. The prompt is built to respect the OWASP LLM Top Ten guidelines for safe model use https://owasp.org/www-project-top-10-for-large-language-model-applications. I also run the generated copy through a lightweight check that aligns with the NIST AI Risk Management Framework https://www.nist.gov/itl/ai-risk-management-framework. The model receives clear instructions: keep the tone professional, reference the invoice details, and increase urgency across the three messages. No extra data such as past payment history or contract terms is required. The output is plain text that you can copy into your email client or invoicing tool.

Input collection

When you open Dunner you see a small form with three fields. The client field accepts any string; I recommend using the exact name as it appears on the invoice to avoid confusion. The amount field expects a numeric value with two decimal places; you can include a currency symbol or leave it plain, the script will strip non‑numeric characters for internal calculations. The days overdue field is an integer; zero means the invoice is due today, any positive number shows how late it is. After you press “Generate” the form disables itself to prevent duplicate submissions while the model works.

Copy generation

The prompt contains three sections, each asking for a reminder with a slightly different tone. The first section asks for a friendly nudge that assumes the client may have overlooked the invoice. The second section asks for a firmer note that mentions late‑fee policies if applicable. The third section asks for a direct request that sets a clear deadline for payment. The model receives the same core data in each section, but the tone instruction changes. Because the prompt is deterministic given the same inputs, you will always get the same three messages unless you change the tone selection.

Escalation logic

Each reminder builds on the previous one. The first message assumes good faith and offers a simple payment link. The second message repeats the invoice details, adds a short sentence about standard payment terms, and suggests a specific date for settlement. The third message states that the invoice is now overdue, references any agreed late‑fee percentage, and asks for confirmation of receipt. This progression lets you send the messages in sequence without rewriting them, and it gives the client a clear path from reminder to action.

Typical workflow for a freelancer

I use Dunner at the end of each workday when I review my invoicing spreadsheet. I filter for invoices where the status is “sent” and the due date is earlier than today. For each row I copy the client name, the amount, and the number of days late into the Dunner form. I pick a tone that matches my relationship with the client: “friendly” for long‑term collaborators, “neutral” for new clients, and “firm” for clients who have missed payments before. Dunner returns three ready‑to‑send emails. I open my email client, create a new message, paste the first reminder, and send it. I set a calendar reminder for three days later. If I see no reply, I send the second reminder. After another three days with no response I send the third. This rhythm keeps the follow‑up consistent without making me feel like I am nagging.

Step‑by‑step example

  1. Open the invoicing sheet, locate invoice #1024 for “Acme Design” worth $1,250, 12 days overdue.
  2. In Dunner enter: Client = Acme Design, Amount = 1250, Days overdue = 12.
  3. Choose the “neutral” tone.
  4. Press Generate.
  5. Copy the first output: “Hi Acme Design, I hope you’re well. I wanted to follow up on invoice #1024 for $1,250 that was due on September 5. Please let me know if you need any details. Best, [Your Name]”.
  6. Paste into a new email, send to the billing contact at Acme Design.
  7. Create a calendar event for September 18 to check for a reply.
  8. If no reply, open Dunner again, keep the same inputs, select the same tone, and copy the second output.
  9. Send the second message, set another calendar check for September 21.
  10. If still silent, repeat for the third output and send on September 24.

What this is NOT

I want to be clear about the limits of Dunner so you know what to expect.

Why three reminders?

Through my own freelancing I found that a single reminder often gets lost in a busy inbox. A second reminder catches the client’s attention after they have had a chance to look at the first message. A third reminder creates a sense of urgency without sounding aggressive. I tested different numbers: one reminder resulted in a response rate of roughly 30 % in my personal tracking; two reminders raised that to about 55 %; three reminders pushed it to near 70 % before I had to consider other collection steps. The three‑message sequence also lets you vary the tone gradually, which feels less like a spam blast and more like a natural conversation.

What each reminder adds

  1. First reminder: assumes oversight, offers help, keeps the tone light.
  2. Second reminder: repeats key facts, mentions standard terms, proposes a concrete date.
  3. Third reminder: states overdue status, references any late‑fee clause, asks for confirmation of receipt.

Choosing the right tone

Dunner offers three preset tones that you can select before generation. The tone influences word choice, sentence length, and the level of directness. I keep the core facts identical across tones so the only difference is how the message feels.

Tone When to use Sample phrasing (first reminder)
Friendly Long‑term clients you have worked with for months or years “Hi [Client], I hope you’re having a good week. Just a quick note about invoice #[Number] for $[Amount] that was due on [Date]. Let me know if you need anything from my side.”
Neutral New clients or clients you have worked with a few times “Hello [Client], this is a reminder that invoice #[Number] for $[Amount] was due on [Date]. Please arrange payment at your earliest convenience.”
Firm Clients with a history of late payments or when you need to enforce terms “Hi [Client], invoice #[Number] for $[Amount] is now [Days] days overdue. According to our agreement a late fee of [X]% applies after [Y] days. Please remit payment immediately to avoid additional charges.”

How I picked the three tones

I started by looking at the emails I actually sent when chasing payments. I grouped them by how formal they sounded and by the reaction I got. The friendly group used contractions, opening pleasantries, and offers of assistance. The neutral group stayed factual, avoided small talk, and closed with a standard request. The firm group used strong verbs, referenced contractual clauses, and set a clear deadline. I distilled those patterns into three prompt variations that the model can follow reliably.

Common pitfalls and how Dunner avoids them

Even a simple tool can run into trouble if the inputs are messy or the model behaves unexpectedly. Below are frequent issues I have seen and the concrete steps I built into Dunner to keep the output useful.

Missing or malformed data

If you leave the amount field blank or enter text like “about one thousand”, the script strips non‑numeric characters and ends up with zero or a wrong number. To prevent this I added a client‑side check that highlights the field in red when the value is not a valid number with two decimal places. The form will not allow generation until the problem is fixed.

Overly generic copy

Early versions of the prompt sometimes produced sentences like “Please pay the invoice”. That felt robotic and did not include the specific invoice number or date. I rewrote the prompt to require the model to embed the exact client name, amount, and due date, and invoice identifier in every sentence. I also added a post‑generation scan that flags any output missing those three pieces; if found the user gets a warning to regenerate.

Tone mismatch

Choosing the “friendly” tone for a client who has ignored two previous reminders can come across as passive. I added a small note under the tone selector that suggests when each tone works best, based on the number of days overdue and your history with the client. The note is not enforced, but it helps you make a conscious choice.

Model drift

Language models can change behavior when updated, which might alter the style of the reminders. I version the prompt string and store it with the released code. When I update the model I run a regression test: I feed a fixed set of inputs and compare the new output to a baseline saved from the previous version. If the similarity drops below a set threshold I review the prompt before releasing.

Email client formatting

Some email clients strip line breaks or convert plain text to HTML in ways that break readability. I designed the reminders to be short paragraphs separated by a blank line, which survives most plain‑text to HTML conversions. I also avoid using special characters like curly quotes that can become garbled; the output uses straight quotes and simple punctuation.

References

Frequently asked questions

What is Dunner?

Dunner writes 3 professional reminder emails to chase late invoices from a client, amount, and days overdue.

How many reminders do I get?

It returns 3 ready-to-send emails with built-in escalation.

Can I pick the tone?

It offers 3 tones so you match the client relationship while staying professional.

Are they ready to send?

Yes. The copy is copy-ready to send as-is.

What do I need to enter?

A client, the amount, days overdue, and a tone.

Who should use Dunner?

Freelancers and small shops who want to collect late payments without the awkwardness.

References

Want to try the product? Dunner

Generated 2026-09-17 · primary sources only · no fabricated traffic metrics