1. Deadline document collection across every client (map-reduce)
At each GST / income-tax / TDS deadline a firm chases dozens of clients for the same missing papers by hand — one WhatsApp at a time — and only finds out who's still short when it's nearly too late to file.
Trigger: Webhook (scheduled, N days before a filing deadline)
How the workflow runs
- Trigger
Deadline run kicks off. A scheduled Webhook trigger fires a set number of days before a GST/ITR/TDS deadline with the list of clients due.
- Loop
Iterate every client due. A Loop node fans a collector agent across each client on the deadline list — one focused pass per client, isolated context.
- Agent
Check what's missing, draft the chase. A cheap collector agent compares the documents already received against that client's required checklist and drafts a request for ONLY the missing items.
- Output
Nudge the client. An Output node sends the missing-document list on WhatsApp/Email with a secure upload link, in the client's language.
- Agent
Roll up a filing-readiness board. After the map completes, a reducer agent aggregates the per-client statuses into one ready/blocked readiness board for the practice.
- Approval
Accountant reviews before anything is filed. An Approval node puts the readiness board with a qualified accountant — the agents only collect and chase; a human reviews and files.
Channels & connectors
- Webhook
- Tool (MCP → practice-mgmt)
- Approval / HITL
Outcome
Every client due at the deadline gets a precise, timely chase for exactly the papers they're missing, and the accountant sees one readiness board instead of reconstructing it from a dozen inboxes.
Why it helps
Consistent, per-client chasing is what gets the documents in on time; the value is that no client silently falls through the cracks before a deadline — the filing itself stays with a qualified human.
Build spec
2 agents — 1 collector (runs once per client via the Loop node) + 1 readiness reducer (runs once). Loop/Output/Approval are workflow nodes. · Pattern: Map-reduce: Loop (map, per client) → readiness reducer (reduce, once)
System prompt (paste-ready)
You are a document-collection assistant for an accounting practice, handling ONE client per run. Compare the documents already received against {{client}}'s required checklist for this {{filing_type}} (GST / ITR / TDS). Return strict JSON {client_id, filing_type, status: READY|WAITING, received[], missing[], chase_message?}. If anything is missing, draft a short, polite chase in the client's language listing ONLY the missing items with a secure upload link. Never give tax, GST or filing advice, never compute a tax liability, and never state or imply anything has been filed — you only collect documents; a qualified accountant reviews and files.Agent roles & model tiers
Collector / checker (per client) — Economy tier — fast, cheap; runs once per client so its model choice dominates total cost
For ONE client, compare received documents vs the required checklist for the filing type; draft a chase for the missing items only; return {status, received[], missing[], chase_message?}. No tax advice, no computed liabilities, no filing.Readiness reducer (once) — Standard tier — runs once per deadline
Aggregate the per-client results into a filing-readiness board {ready[], waiting[{client, missing[]}], counts}. Use only the provided statuses — never mark a client ready that reported missing documents, never estimate. This board is for an accountant to action; it files nothing.
MCP connectors
- Practice-management / accounting software (Zoho Books, Tally, QuickBooks) — via a Tool (MCP) node
- WhatsApp / Email — chase channel
- Client checklist + deadline list — inbound via the scheduled Webhook trigger
Built-in tools
- knowledge_search (per-filing-type document checklist)
- http_request (fetch received-document status)
Guardrails
- No tax advice, no computed liabilities, no filing — the agents only collect documents; a qualified accountant reviews the readiness board and files at the Approval node
- A client is marked READY only when every checklist item is received — the completeness gate never lets a partial set through as fileable
- Chasing is idempotent (keyed by client + deadline) so nobody is double-messaged in one run, and missing-item lists come from the checklist, never invented
Cost strategy
The collector runs once per client — across a whole practice at a filing deadline that repetition is the dominant cost, so it sits on the economy tier (bulk, routine document-checking is exactly the cheap-model case). The readiness reducer runs once per deadline on a standard tier. Cost scales linearly with client count under a per-client tool/token cap, and no premium model is ever spent on routine chasing.
Output & delivery
The Loop runs the economy collector per client → each drafts a missing-items chase sent on WhatsApp/Email with a secure upload link → the completeness gate marks READY/WAITING → the reducer rolls one readiness board → the accountant reviews it at the Approval node before any client is filed; every client's status is logged.