Automating quarterly document collection.
A technical breakdown of the workflow we build for accounting firms that chase 50–300 clients every quarter for tax documents — and how to keep it from feeling like a robot.
The problem nobody quantifies
Every accounting firm we've audited spends 4–6 hours per employee per week chasing clients for documents. Across a 12-person firm, that is roughly 50–70 hours of partner-and-staff time per week, every week, permanently. The line item doesn't exist on any P&L because it's embedded in salaried headcount. Most firms have made peace with it.
The pattern is the same everywhere: send the first reminder, send a firmer one a week later, escalate to phone, eventually the partner gets on the line and gets it done. The work isn't hard; it's repetitive, thankless, and impossible to delegate to a junior because tone and client context matter. Which is exactly the kind of work modern AI does well.
The seven-node skeleton
Every quarterly-collection workflow we deploy has the same seven-node backbone, no matter how complex the firm's processes get on top:
- Schedule trigger — cron, fires on the first weekday of the quarter at 06:00 local time
- Read mandate sheet — pulls every active client from the master Google Sheet (one row per mandate)
- Filter open mandates — drops anything already delivered for this period
- Loop per client — each row now flows independently through the rest of the pipeline
- Calculate tier — pure JavaScript: days-until- deadline + last-contact delta → tier hint (skip / gentle / firm / escalate)
- AI compose — Gemini receives the tier hint, the client's history, and the firm's tone-of-voice document; emits a ready-to-send email body
- Send + log — threaded Gmail reply, then append to the communication log + stamp last-contact-at on the mandate row
Everything else — switch nodes for the four tiers, sub-flows for partner notifications, magic-link generation for portal-free uploads — is bolted onto this skeleton. The skeleton itself takes about two days to deploy.
The hard part is tone, not technology
The technical pipeline above is solved. The hard problem is making every email sound like the firm wrote it, in the right register, in the right language, at the right level of urgency for that specific client. This is where most "AI document chase" tools fall apart: they produce competent English text that reads like a SaaS onboarding email and immediately erodes client trust.
The shortest path to client trust is matching the tone they already receive from your partner. The shortest path to client distrust is a ChatGPT-default email signed with the partner's name.
We solve this with three things. First, every firm provides a tone-of-voice document at kick-off — typically a one-pager with five examples of "how we write to clients" pulled from real sent mail. Second, the AI prompt includes the last three messages exchanged with that specific client, so the new message lands in the same conversational register. Third, every reminder is reviewed by the partner during the first week of deployment; their edits become training data for the next iteration. By week three, edits drop to near-zero.
The four tiers
Most firms naturally operate four escalation tiers, even if they've never written them down:
- Skip. Client is on-track or has just submitted. No contact. Logged silently for the audit trail.
- Gentle. Soft reminder, conversational, "just-checking-in" register. Sent 14 days before the deadline.
- Firm. Explicitly references the deadline date. Sent 7 days out. Same email thread as the gentle reminder so the client sees the build-up.
- Escalate. Final-warning email, partner CC'd, and a Slack ping to the responsible partner. Sent 2 days out and on the deadline itself.
The Calculate Tier node decides which one to fire. The AI Compose node writes the appropriate email for that tier. The Send node uses threaded-reply mode so the entire escalation appears as a single conversation in the client's inbox.
The numbers we measure
Three metrics, all measured automatically by the workflow itself:
- Hours saved per FTE per week. Baseline measured by diary study during the audit; ongoing by counting the messages the workflow sends versus the messages staff would have sent manually.
- Document return rate. Percentage of mandates that deliver complete documentation by the deadline. Baseline pulled from the previous quarter's records; re-measured every 30 days.
- Time to first reminder. Days between deadline publication and first AI-fired reminder. Target is ≤24 hours; in practice it's typically minutes.
What we don't automate
Three things stay manual on purpose: (1) the partner's first call when a client misses a deadline despite the escalation — relationship repair is human work; (2) any communication touching a regulated filing where the firm's partner needs to sign off in person; (3) the annual mandate review meeting, where AI summaries help but the relationship work happens face-to-face. Automation amplifies your best people; it doesn't replace them.
Want to see the full workflow?
We render the full 17-node version of this workflow on our examples page, where you can hover any node to see what it does. The version we'd build for your firm would be personalised to your tier rules, your tone, your filing system, your language — but the skeleton above is the foundation we deploy every time.
If you'd like a free 30-minute audit of your current quarterly chase, email info@swissflow.org. We look at one of your processes, tell you what's automatable, and send you a one-page summary either way.
Published April 2026.