Skip to content

Accounts receivable, for owner-operators

Invoices chased, politely.

Dunnit plans a reminder schedule for every overdue invoice, writes each message in your voice, and waits for your OK before anything goes out. When the customer replies, it reads the reply, so a promise to pay or a dispute changes what happens next.

Free for up to 10 active invoices. No card needed.

Approval queue

3 waiting

Invoice #1042 · Harbor Lane Studio

$2,350.00

Step 2 of 4 · Firm

Due Sep 30 · 7 days overdue · sends Wed Oct 7, 09:00

Subject: Invoice #1042, a quick follow-up

Hi Priya,

Invoice #1042 for $2,350.00 was due on September 30 and is now a week overdue. Could you let me know when we can expect payment? If something on the invoice looks wrong, reply here and I’ll sort it out.

Thanks,
Sam, Ortiz & Reyes Design

Confidence 0.86

Why: No reply to the friendly reminder on Oct 1. Harbor Lane usually pays within 12 days, so the tone stays firm but warm and asks for a date.

ApproveAEditERejectR
  • #1047Kettle & Co.$780.000.91
  • #1051Northwind Joinery$4,120.000.72
Fig. 1. A drafted reminder waiting in the approval queue. Synthetic data.

Late payment, in three numbers

  • 59%

    of small businesses carry invoices 30+ days overdue.

    Source: QuickBooks Late Payments Report, 2026

  • $17.7K

    owed to them on average.

    Source: QuickBooks Late Payments Report, 2026

  • 29%

    of owners delayed paying themselves because a customer paid late.

    Source: Bluevine survey, Feb 2026

How it works

Four steps. You decide how many need you.

The schedule is plain rules you can read. The model only writes the words and reads the replies, and both are logged.

  1. Step 1: Import invoices

    Upload a CSV, add invoices by hand, or sync open invoices from Stripe on Pro.

    • CSV
    • Manual
    • StripePro

    invoices-sept.csv · 14 rows

    First three imported invoices
    No.CustomerAmount
    #1042Harbor Lane Studio$2,350.00
    #1047Kettle & Co.$780.00
    #1051Northwind Joinery$4,120.00

    14 imported · 0 skipped

  2. Step 2: Cadence planned

    Each invoice gets four steps, friendly to firm to formal to final, timed from its due date and adjusted for the customer’s history.

    Cadence for #1042

    Due Wed Sep 30

    1. Day +1Friendly · Thu Oct 1Sent
    2. Day +7Firm · Wed Oct 7Awaiting you
    3. Day +14Formal · Wed Oct 14Planned
    4. Day +30Final · Fri Oct 30Planned
  3. Step 3: You approve, or trust it on step one

    Every draft waits in your queue with its reasoning. On Pro, step-one reminders can go out on their own when the agent is confident.

    Settings · Autonomy

    Pro

    Auto-send step-one reminders

    Only when confidence is 0.80 or higher, inside your send window.

    On
    Steps 2 to 4
    Wait for approval
    Send window
    Weekdays 08:00–18:00
  4. Step 4: Replies read

    When a customer writes back, Dunnit labels the reply and changes the schedule to match, so a promise pauses the chase.

    Reply to #1042

    priya@harborlane.example

    Hi Sam, sorry this slipped through. We’ll pay on the 15th. Priya
    Promise to pay · Oct 15confidence 0.93

    Cadence paused until Oct 16, then a gentle check-in if still unpaid.

Outcomes

Reported in dollars and days.

The dashboard counts money that arrived after a reminder went out, how often promises were kept, and how long invoices take to clear. Not tokens, and not emails sent.

Recovered after agent touch
$12,480
11 invoices paid after a reminder
Promise kept
78%
18 of 23 promises
Median days to pay
9
counted from the due date
Queue
3
drafts waiting for you
Fig. 2. The dashboard tile row for a demo workspace, last 90 days. Synthetic data.

Trust

Everything it does is written down.

An audit trail you can read

Every model call and every human decision is logged to an append-only record: which model, which prompt version, what went in, what came out, who approved it and when. Nothing in it is edited after the fact.

Guardrails before anything is saved

  • Never threatens, and never makes legal claims.
  • Never contacts a customer marked do-not-contact.
  • Sends only inside your window, weekdays 08:00 to 18:00, and no more than once in five days.
  • Every draft must name the invoice number and amount, with no placeholders left in.

Your voice, not a template

Set your business name, your signature and a few notes on tone, such as “first names, short sentences, no legalese”. Drafts follow them, and you can edit any draft before it goes.

Pricing

Two plans. One of them is free.

Start on Free with demo data. Move to Pro when you want it sending the easy ones for you.

  • Free

    $0

    For a handful of overdue invoices and a careful first look.

    • Up to 10 active invoices
    • Manual approval of every message
    • CSV import
    • Demo data to try it on
  • Pro

    Test mode

    $29/month

    For when the approval queue is the slowest part of your week.

    • Unlimited invoices
    • Auto-send step-one reminders at 0.80 confidence or higher
    • Stripe invoice sync
    • Weekly digest email

Test mode. Checkout runs on Stripe’s sandbox; no card is charged.

Questions

Answered plainly.

Does it send without asking?

Not on the Free plan. Every message waits in your approval queue until you approve it, edit it, or reject it.

On Pro you can let step-one reminders go out on their own when the draft’s confidence is 0.80 or higher. Firmer steps still wait for you unless you change the autonomy setting yourself. A draft that fails a guardrail check drops to zero confidence and always waits.

What does it never do?

  • Threaten, or make legal claims. Those phrases are blocked before a draft is saved.
  • Contact a customer marked do-not-contact, or one who asked to unsubscribe.
  • Send outside your send window: weekdays, 08:00 to 18:00 in your timezone.
  • Touch the same invoice more than once in five days.
  • Keep chasing once an invoice is paid, or while a reply is waiting to be handled.

Where do replies come from in the demo?

From the Demo Inbox. Paste a reply yourself, or press “Simulate reply” and a model writes a plausible customer response, clearly labelled as simulated. Outgoing email lands in an in-app outbox by default, so nothing reaches a real customer while you try it.

Which models does it use?

Groq-hosted gpt-oss writes the drafts and classifies replies. Gemini Flash-Lite is the fallback when Groq is unavailable. Every call is logged with the model, prompt version, token counts and latency.

Is my data used for training?

Dunnit does not train models. The public demo uses synthetic data only, and the free Gemini tier is never given real customer data. Please don’t enter real customer details into the demo.

Get paid without writing the awkward email.

Load the demo data and approve a first draft. No card needed.