Flowcask · 5 Jul 2026 · 6 min read

How to stop chasing clients for documents — and automate it properly

The “just following up” email is the one nobody went into accounting to write. Here is a durable way to hand it to a machine — without losing track of who has already been chased.

Ask anyone who runs an accounting or bookkeeping practice what quietly steals the most time, and “getting documents out of clients” comes up almost every time. It is rarely one big blocking task. It is fifty tiny ones: the bank statement that never arrived, the signed engagement letter still sitting in someone's drafts, the payroll file that was “coming tomorrow” three weeks ago. None of them are hard. Together they eat your mornings and pile up at exactly the moment you can least afford it — quarter-end and filing season.

The reflex is to write another polite email. “Hi Jane, just following up on the Q2 bank statements when you get a chance.” You send it, you feel briefly productive, and then it falls out of your head. Three days later you cannot remember whether you chased Jane or only meant to. So you either double-send and look disorganised, or you let it slide and the document lands late. Multiply that by every open request across every client, and you have a job that no amount of willpower fixes.

Why the manual version quietly breaks

Chasing by hand fails for reasons that have nothing to do with how conscientious you are. It fails because the system is built out of memory and goodwill, and both run out.

  • There is no single source of truth. The list of what you are waiting on lives half in your inbox, half in your head, and half in a colleague's inbox. Nobody can answer “what is still outstanding right now?” without a manual dig.
  • Follow-up depends on you remembering to follow up. The first email is easy. The second and third are the ones that actually collect the document, and they are exactly the ones that get forgotten when you are busy.
  • Tone does not escalate. A gentle nudge and a firm reminder should read differently. By hand, every chase sounds the same because you are copying the last one you sent.
  • Nobody records what happened. Without a log, you cannot prove you chased, you cannot see who is chronically late, and you cannot hand the task to a colleague cleanly.

The instinct at this point is to buy a big “client portal” or practice-management suite. Sometimes that is the right call. Often it is a sledgehammer for a nut: you introduce another login, another place for data to live, and another migration project — to solve what is really a small, well-defined scheduling problem.

Think of it as a state machine, not an inbox

The clean way to think about document chasing is to stop treating it as correspondence and start treating it as a set of records, each in a known state. A request is either pending (you are waiting) or it is received (it arrived). Everything the automation does is decided by that state and a couple of dates. Once you frame it that way, four design rules fall out naturally.

1. Keep the state in the sheet, not in your memory

You do not need a database. A single spreadsheet with two tabs does the job for most firms: a Clients tab (one row per client: an ID, a name, an email, a first-name for the greeting) and a Document Requests tab (one row per thing you are waiting on). The requests tab is where the state lives:

  • a unique requestId that never changes — the key the automation uses to find the right row again;
  • the clientId it belongs to, and the documentName you are waiting on;
  • an optional dueDate;
  • a status (pending or received);
  • a reminderCount that starts at 0, and a lastRemindedAt timestamp.

You fill in the first few columns. The automation owns the last few. Because the state is written back to the sheet after every action, anyone can open it and see the truth at a glance — and the automation can pick up exactly where it left off, even if a run is skipped.

2. Gate everything on status

The most important rule is the simplest: only chase rows whose status is pending. The moment a document arrives and the status flips to received, that row drops out of the chase automatically. No “oops, we kept emailing a client who already sent it three times” — the single most damaging way this task fails by hand. A status gate is one comparison, and it removes an entire category of embarrassing mistakes.

It also gives you a free pause button. Need to stop chasing something without deleting it? Set its status to anything other than pending. Want to re-open it? Set the status back and reset the count. The state model does the work.

3. Escalate the tone, on business days, and send each stage once

A good chase is not one message repeated. It is a short sequence that gets firmer:

  1. Gentle — a friendly first nudge.
  2. Firm — a clearer reminder a few business days later.
  3. Final — a direct note that this is now holding up the work.

Two details make this reliable. First, count the gaps in business days, so a Friday nudge does not turn into a Saturday and Sunday of silence and then a jarring Monday escalation. Second, use the reminderCount and lastRemindedAt fields to make each stage idempotent — a fancy word for “running it again does not re-send.” If the workflow runs every weekday morning, it should look at each pending row, work out whether enough business days have passed for the next stage, send only if they have, and then record that it did. Run it twice by accident and nothing double-fires, because the record already says stage two went out today.

The whole reliability of the system comes down to this: decide what to do from the recorded state, act, then write the new state back. Never act on “what I think I did.”

4. When a file arrives, close the loop — and never lose an unmatched one

The other half of chasing is noticing when the document actually turns up. If clients upload to a shared Drive folder, a watcher can mark the matching request received the moment a file lands, stamp when it arrived, and stop the chase. The tempting shortcut is to guess which request a file belongs to and move on. Do not guess silently. If the match is not confident, the right behaviour is to email a human to review it — not to drop the file into a void. “Nothing is ever silently lost” is worth more than “everything is automatically sorted,” because a lost document is the failure that costs you a client's trust.

What you end up with

Put those four rules together and the daily reality changes. Each morning, a scheduled job reads the sheet, works out which pending requests are due for their next nudge, sends the right tone to the right client, and writes back what it did. When a file arrives, the matching row closes itself. Once a day you can get a one-line digest: what is still outstanding, what got chased today, what came in. You have gone from “did I remember to chase Jane?” to “the list is handled, and I can see exactly what happened.”

None of this requires AI, and it should not require a new platform. It is a spreadsheet, a scheduler, and four rules applied consistently. If you already run n8n — or you are happy to — this is an afternoon's build, and a genuinely durable one, because there is nothing clever to rot: just state, dates, and email.

Want the built version instead of building it?

This is exactly the design behind Flowcask's Client Document Chaser. There is a free, complete Lite edition that runs the two-tone chase (gentle → firm) on the same two-tab sheet, so you can try the whole idea in your own n8n before paying for anything — and the paid edition adds the third reminder, automatic receipt detection, and a daily digest without changing your sheet.

Get the free Lite edition

Flowcask writes about accounting-firm automation and sells small-batch workflow packs for n8n. Nothing here is tax or legal advice; verify your own filing dates and obligations.

← All articles