DeskFerry Logo

Get paid without spending your evening asking

Every Monday it reads your receivables, drafts a reminder for each past-due invoice with the PDF already attached, and steps up the tone as the debt ages. Including the retainage nobody billed at closeout.

Receivables — Monday morning

9 open

Past due

$74,310

  • 2214

    Coldbrook Property Co

    $18,75063 days
  • 2231

    M. Reyes — basement

    $9,40041 days
  • RET-09

    Brennan job — retainage

    $21,600unbilled
  • 2248

    Halloway Ave duplex

    $12,30022 days
  • 2259

    J. Carrick — bath

    $4,4808 days

The retainage line has been sitting there since the job closed out in March.

Works with

  • QuickBooks
  • Xero
  • Gmail
  • Outlook
  • Google Sheets

It reads your receivables out of QuickBooks or Xero and pulls the invoice PDF straight from there, so what gets attached is the real document rather than something regenerated.

The chore

How this goes right now

  1. You know roughly who owes you. You could name the two worst ones without looking. What you couldn't tell me is the total, or which of them crossed sixty days last week, because that would mean opening QuickBooks on a Sunday night and you have done enough for one week.

  2. So the chasing happens in bursts, usually when something else forces it — a supplier wants paying, or payroll is Thursday and the numbers are tight. Then you fire off four apologetic emails in ten minutes, all in the same tone, none of them attached to the actual invoice, and you feel like the bad guy for asking to be paid for work you finished in March.

  3. And underneath all of it is the retainage. Five or ten per cent of a job you completed months ago, held back until closeout, which you never invoiced because closeout wasn't a day, it was a slow fade of punch list items. Nobody is refusing to pay it. Nobody has been asked.

The difference

Chasing in bursts versus chasing on a rhythm

Chasing when cash gets tight
Chasing on a Monday rhythm
No running total of what's actually owed
One aging summary every Monday, whether you look or not
Every reminder written from scratch, in the same apologetic tone
A drafted reminder per invoice, ready to read and send
Invoice not attached, so they ask you to resend it
The real PDF attached, pulled from your accounts package
Sixty and ninety day debts get the same email as a week-old one
Tone steps up with the age — polite at 14 days, firm at 60
Retainage never invoiced because closeout was never a single day
Retainage tracked from closeout and surfaced until it's billed

Try it

Walk through it yourself

This is the actual shape of the workflow — the same trigger, the same steps, the same draft waiting for your say-so. Click through it.

Chase unpaid invoices

Scheduled checkQuickBooks

Monday receivables check

Reads the aged receivables report. Nine open invoices, four of them past due, and one retainage line still unbilled since March.

What it does

  1. Pull the aged receivables and work out the buckets

    $74,310 past due across four invoices. Two have crossed 60 days. Nothing has been chased in 19 days.

    QuickBooks
  2. Check the retainage column against closed-out jobs

    Brennan job closed 14 March with $21,600 retainage held. No invoice was ever raised against it.

    Google Sheets
  3. Fetch the invoice PDFs to attach

    Four PDFs retrieved, so each reminder carries the original document rather than asking them to dig it out.

    QuickBooks
  4. Draft a reminder per invoice, pitched to its age

    Invoice 2259 gets a light nudge. Invoice 2214 at 63 days gets a firm one naming the contract payment terms.

    Gmail

Draft comparison — nothing has been sent

Aging summary — week of 4 May
InvoiceClientAmountAgeDraft
2214Coldbrook Property Co$18,75063 daysFirm — terms cited
RET-09Brennan job — retainage$21,600UnbilledRaise invoice
2231M. Reyes — basement$9,40041 daysFollow-up, second
2248Halloway Ave duplex$12,30022 daysPolite reminder
2259J. Carrick — bath$4,4808 daysNone — not yet due

The retainage line isn't a reminder — it's an invoice that was never raised. That one needs you to confirm the job is genuinely closed out before it goes anywhere.

Send the four reminders and raise the retainage invoice?

Open any reminder and change the wording or the tone. Drop one if you spoke to that client on site yesterday. The retainage invoice in particular is worth reading — it's the only one here creating a new document rather than chasing an existing one.

Once you approveGoogle Sheets

Reminders go out, and the chase gets recorded

Each reminder sends from your own inbox with the PDF attached. The tracker records what was chased and when, so next Monday it knows which of these is on a second ask and which has gone quiet twice.

That's the whole workflow.

It drafts, you approve, nothing sends on its own.

Start free

How it works

What it's actually doing

A weekly run against your accounts package. QuickBooks and Xero have no event triggers, so this is a scheduled check — not something that fires the instant an invoice tips over.

  1. 1
    • QuickBooks
    • Xero

    It reads the receivables, not a copy of them

    The aged receivables report comes straight out of QuickBooks or Xero on the schedule you set. What's paid is paid — if a cheque cleared on Friday, that invoice isn't in Monday's list.

  2. 2
    • Google Sheets
    • ExExcel

    It tracks retainage separately, because your books don't

    Retainage isn't a native field in most small-contractor QuickBooks files, so it lives in a column on your job tracker. It reads that column against jobs marked closed out and surfaces anything held back that was never invoiced.

  3. 3
    • Gmail
    • OuOutlook

    It escalates by age rather than sending one template

    A fortnight late gets a light nudge that assumes it's an oversight, because it usually is. Sixty days gets a firm note citing the payment terms in your contract. Ninety gets a shorter, colder one that mentions stopping work if the job is live.

  4. 4
    • QuickBooks
    • Gmail

    It attaches the actual invoice

    The PDF is pulled from your accounts package and attached to the reminder, which removes the most common stalling answer — that they can't find it.

You stay in control

It drafts the chase. You decide who gets chased.

Money is the most relationship-sensitive thing on this list. A firm email to a client you're mid-job with, or one who genuinely paid last week, does real damage. So nothing goes out without you reading it, and the escalation never runs on its own.

  1. Step one

    It drafts

  2. Step two — you

    You read it and approve

  3. Step three

    Only then does it send

Every reminder waits

Four past-due invoices means four drafts sitting together. Send them all, send two, or send none. The aging summary is still worth having even on a week you chase nobody.

You control the escalation

It suggests a tone based on age, but the step from polite to firm is a judgement call about a relationship it can't see. You can override any draft down or up, and it remembers the preference for that client.

It never threatens anything

No mention of legal action, lien rights, collections, or interest unless you write it yourself. Those carry deadlines and consequences that vary by state and by contract, and it is not qualified to raise them on your behalf.

Retainage needs your confirmation

Raising a retainage invoice creates a new document against a job you said was finished. It'll surface it and prepare it, but it won't issue one until you confirm the job is genuinely closed out.

Setup

What setting this up involves

  1. 1

    Connect

    • QuickBooks or Xero — whichever holds your receivables
    • Gmail or Outlook, to draft and send from
    • Your job tracker in Google Sheets or Excel, for the retainage column
  2. 2

    Tell it how you work

    • Your payment terms, so the firm reminders cite something real
    • What day you want the run — Monday morning is the common answer
    • How the tone should step up, and at what ages
    • Which clients are handled personally and should never be auto-drafted
  3. 3

    Then it runs

    About 40 minutes, once

    Longer than the others, because the retainage column usually needs setting up properly first. If you already track it, this is a twenty-minute job.

Edge cases

Where it's careful, and what it won't do

What it handles

  • Payment that crossed in the post

    It reads live receivables at the moment of the run, so anything settled since last week is already gone from the list. It also won't chase an invoice that's part-paid without saying what's outstanding rather than the original total.

  • Disputed invoices

    If a thread on that invoice contains a complaint or a query, it won't draft an escalating reminder over the top of an unanswered question. It flags it as disputed and leaves it for you.

  • Clients with several open invoices

    Three past-due invoices for the same client become one email listing all three, not three separate chases in the same hour. Nothing makes you look less organised than that.

  • Live jobs versus finished ones

    The tone is different when you're still on site. A firm reminder to somebody whose kitchen you're standing in tomorrow is a bad idea, and it treats those differently by default.

What it does not do

  • It doesn't advise you on liens

    Preliminary notices and mechanics lien deadlines are statutory, vary by state, and get missed by days. It can flag that an invoice is aging, but the lien question is for you and your attorney, and it will not tell you what to file or when.

  • It doesn't add interest or fees

    Even where your contract allows late fees, applying them is a decision with consequences for the relationship. It won't calculate or add them.

  • It doesn't take payment

    No payment links, no card capture, no portal. It chases what your accounts package says is owed, and payment happens the way it always has.

  • It doesn't call anyone

    The sixty-day conversation is usually a phone call, and it should be. This makes sure you know which call to make.

Time back

Five to eight hours a month, and considerably faster payment

Time back
Five to eight hours a month, and considerably faster payment
Spent on
The work that bills
What it costs
$49 / monthGrowthplan — see what’s included

How that’s worked out: Based on 15–30 open invoices with a handful past due at any time, at roughly 10 minutes each to look up, write and attach — plus the monthly hour of reconstructing who owes what. The hours are the smaller half. The larger half is retainage that gets billed at all, which for a lot of contractors is five figures a year they had written off in their heads.

Fair questions

The things contractors ask first

My clients would find automated chasing rude.

So would we, which is why nothing is automated at the point of sending. What arrives is an email from you, with the invoice attached, in a tone you chose. The rudeness contractors actually worry about comes from the opposite problem — chasing in a burst when cash is tight, which reads as panicky because it is.

We track retainage on paper, not in QuickBooks.

That's normal, and it's why this reads retainage from a column on your job tracker rather than from your books. QuickBooks doesn't model retainage usefully for most small contractors, so pretending to read it from there would be the wrong answer.

Won't it chase someone who's already paid?

It reads your live receivables at the moment of the run rather than a cached list, so a payment that landed on Friday means that invoice isn't in Monday's drafts. The gap is a payment received but not yet recorded in QuickBooks — that one it can't see, which is a reason to keep reading the drafts before you send.

FAQ

Questions worth answering properly

Does it chase invoices the day they go past due?

No, and any tool claiming that against QuickBooks is overselling it. QuickBooks and Xero don't publish event triggers, so this runs as a scheduled check — usually Monday morning. An invoice that tips over on Wednesday gets picked up in the next run.

How does the escalation actually work?

The tone is chosen by the age of the debt against thresholds you set. A common setup is a light nudge at 14 days, a firmer note citing your payment terms at 45, and a short direct one at 75. You can override any individual draft, and it remembers if a particular client should always be handled gently.

Can it find retainage that was never billed?

Yes, provided you track it. It compares the retainage column on your job tracker against jobs marked closed out, and surfaces anything held back with no invoice raised against it. It prepares that invoice but won't issue it until you confirm the job is genuinely closed.

Does the original invoice get attached?

Yes — the PDF is pulled from QuickBooks or Xero and attached to the reminder. That removes the most common delay, which is the client saying they can't find it and another week going by.

What happens if a client disputes an invoice?

It stops escalating that one. If the thread contains a query or a complaint, sending a firmer reminder over the top of an unanswered question makes things worse, so it flags the invoice as disputed and leaves it to you.

Will it tell me when to file a lien?

No. Lien and preliminary notice deadlines are statutory and differ by state, and getting them wrong has real consequences. It will show you that an invoice is aging badly. What you do about that is a conversation with your attorney.

Find out what you're actually owed

Connect QuickBooks or Xero and your job tracker. Monday morning you'll have an aging summary and a set of drafts waiting — including the retainage.

Start free