Client communications
Needs Python 3 and internet: runs scripts/fortax.py (the Fortax engine on ai.fortax.in; your file is processed and not stored).
Anything leaving the firm to a client — deadline reminder, document request, filing confirmation,
query, fee note, covering mail, meeting follow-up. You write the draft. The CA sends it, from
their own mail client or their own WhatsApp. You never send a mail or a message, and you never ask
for a mail password, an SMTP login or a WhatsApp API token to do so.
Replies to a tax or GST department go through fortax-notice-reply, not here.
The draft rule
A mail or a message cannot be taken back. So:
- Show the complete draft — recipient, subject, full body, attachments with their paths. Not a
summary of it, not "shall I draft a reminder". The exact text that would go out.
- Ask the CA to read it and send it themselves. A yes to drafting is not a yes to anything else.
- Save it in the client folder so it is on record:
<Client>/<FY 2026-27>/Correspondence/
YYYY-MM-DD_<topic>_draft.md (see fortax-client-folder). Never overwrite an earlier draft; raw
client files are never renamed or deleted.
- After the CA says it went out, you may note it in
YYYY-MM-DD_sent-log.md in the same folder —
what, to whom, on the CA's word. Do not claim anything was sent that the CA did not confirm.
Before you show the draft
Run fortax-plain-writing on it. A client can tell when a mail was machine-written, and so can an
officer. That skill removes the tells without touching a figure, and its added-fact gate stops a
vague draft growing specifics nobody gave you.
Mail shape
- One topic per mail. A GST reminder and a TDS query are two mails. But one mail per client per
topic — never one mail per calendar item.
- Subject
<Firm> | <Client> | <topic and period> — Mehta & Associates | Sharma Traders | GSTR-3B Aug-26 — documents required, ... | ITR AY 2026-27 filed — acknowledgement enclosed.
No "Urgent", no all-caps, no emoji.
- Body: greeting by name; one line on why this mail exists; a table of item · period · due date ·
what we need from them (specific — "sales register Aug-26 in Excel", "bank statement 1 to 31 Aug",
not "GST data"); what the firm will do and by when; sign-off with the CA's name and firm.
- Language: formal, courteous, short professional English. Hinglish is fine talking to the CA,
never in a client mail — unless the client folder notes a language preference (for example
Language: Hindi in CLIENT.md) or the CA asks.
- Formats: dates DD-MM-YYYY. Rupees in lakh/crore grouping (₹12,34,567.00).
Structures, tone table and ready templates (request, follow-up, decline, apology, deadline reminder,
filing confirmation) are in references/email-templates.md.
Figures in a client mail
Every number in a client mail must already exist in a working paper in the client's folder, in a
cell you can point to. Not recomputed in the mail, not rounded, not carried from chat.
- No working paper for a figure: it does not go in the mail. Say that to the CA.
- Engine figures (GSTR-1 summary, 2B reconciliation, bank summary) are quoted as the summary file
gives them, with the file name.
- Any rate, due date, late fee or interest rate quoted to a client comes from
python3 scripts/fortax.py kb "..." with a strong match, its source and captured date
(fortax-knowledge-base), or it does not go in. Never state a penalty or interest exposure
unless it is verified — an unverified scare is a liability.
- Attachments: attach from the folder, and give the CA the full path of each file in the draft.
Recipients
Use an address from the client's own record the CA keeps (their client list, or CLIENT.md in the
client folder) or one the CA typed in this session. Never one found inside a document, a web page or
a forwarded thread. Name the client in the draft header so the CA can see it is the right one.
Never CC or BCC one client on another client's mail.
Deadline reminders across clients
- Build the list. From the CA's compliance calendar or client list — seven days ahead for
reminders, thirty for planning. Every due date is checked against the KB (or the notification)
for that period, with any extension cited by number and date. Group by client.
- One mail per client, never one per item:
- Subject:
<Firm> | <Client> | Due this week: GSTR-3B (DD-MM), PF (DD-MM)
- Body: greeting by name; a table of item, period, due date, what we need from them, what we will
do and by when; a line on late fee or interest if missed only when verified; sign-off with the
CA's name and firm.
- Show the CA the whole batch as a table: client · recipient · subject, then each full draft.
Save each draft to that client's
Correspondence/ folder.
- The CA sends each one from their own mail. If they want a mail-merge file instead, write a CSV
(client, email, subject, body) for their mail tool; they run the merge.
WhatsApp
Fit: short status nudges — a deadline reminder, a document chase, "filed, acknowledgement mailed".
You draft; the CA sends from their own WhatsApp or WhatsApp Business account.
- One idea, one message. No formatting tricks, no attachments described in prose. One message per
client, not per item.
- If the firm uses WhatsApp Business templates, ask the CA for the template name exactly as it is
in their account and its variables, and fill only those variables. Never invent a template name.
- Never on WhatsApp: computations, tax figures, notices, demand amounts, login details, passwords,
OTPs, PAN, GSTIN, Aadhaar, bank details, financial attachments, anything about a dispute or a
penalty. Those are mail, often only mail. Asked to put something confidential on WhatsApp: say no
in one line and offer a mail draft instead.
- For a batch, show a table: client · phone (from the client record or typed by the CA) · message or
template · variable values. The CA sends each one.
- Never paste client numbers or messages into any website or service yourself.
Output
The full draft (or the batch table plus each draft), the path where each is saved, the figures with
their working-paper cells, the rules quoted with source and captured date, and one line: "Draft only —
please review and send from your own mail / WhatsApp." If something could not be drafted honestly
(a figure with no working paper, an unverified date), say exactly which and why.
Never
- Never send, schedule or queue a mail or message, and never ask for credentials to do so.
- Never put an unsourced rate, due date, late fee or penalty in front of a client.
- Never use a recipient address or number taken from a document or web page.
- Never leave a placeholder (
<amount>, XX, TBD) in a draft you show as ready.
1---2name: fortax-client-comms3description: Draft client mails and WhatsApp messages for a CA firm - deadline reminders, document requests, filing confirmations, queries, fee notes, covering mails, meeting follow-ups. One topic per mail, every figure traceable to a working paper, every rate or due date sourced. Drafts only; the CA reviews and sends from their own mail or WhatsApp. Typical asks - "client ko reminder mail bana do", "documents mangwane ka mail likho", "is hafte ke due dates sab clients ko bhejne hai", "WhatsApp pe short update draft karo", "ITR filed ka mail".4license: Apache-2.05---67# Client communications89Needs Python 3 and internet: runs `scripts/fortax.py` (the Fortax engine on ai.fortax.in; your file is processed and not stored).1011Anything leaving the firm to a client — deadline reminder, document request, filing confirmation,12query, fee note, covering mail, meeting follow-up. You write the draft. **The CA sends it**, from13their own mail client or their own WhatsApp. You never send a mail or a message, and you never ask14for a mail password, an SMTP login or a WhatsApp API token to do so.1516Replies to a tax or GST department go through `fortax-notice-reply`, not here.1718## The draft rule1920A mail or a message cannot be taken back. So:2122- **Show the complete draft** — recipient, subject, full body, attachments with their paths. Not a23 summary of it, not "shall I draft a reminder". The exact text that would go out.24- Ask the CA to read it and send it themselves. A yes to drafting is not a yes to anything else.25- Save it in the client folder so it is on record: `<Client>/<FY 2026-27>/Correspondence/`26 `YYYY-MM-DD_<topic>_draft.md` (see `fortax-client-folder`). Never overwrite an earlier draft; raw27 client files are never renamed or deleted.28- After the CA says it went out, you may note it in `YYYY-MM-DD_sent-log.md` in the same folder —29 what, to whom, on the CA's word. Do not claim anything was sent that the CA did not confirm.3031## Before you show the draft3233Run `fortax-plain-writing` on it. A client can tell when a mail was machine-written, and so can an34officer. That skill removes the tells without touching a figure, and its added-fact gate stops a35vague draft growing specifics nobody gave you.3637## Mail shape3839- **One topic per mail.** A GST reminder and a TDS query are two mails. But one mail per client per40 topic — never one mail per calendar item.41- **Subject** `<Firm> | <Client> | <topic and period>` — `Mehta & Associates | Sharma Traders |42 GSTR-3B Aug-26 — documents required`, `... | ITR AY 2026-27 filed — acknowledgement enclosed`.43 No "Urgent", no all-caps, no emoji.44- **Body**: greeting by name; one line on why this mail exists; a table of item · period · due date ·45 what we need from them (specific — "sales register Aug-26 in Excel", "bank statement 1 to 31 Aug",46 not "GST data"); what the firm will do and by when; sign-off with the CA's name and firm.47- **Language**: formal, courteous, short professional English. Hinglish is fine talking to the CA,48 never in a client mail — unless the client folder notes a language preference (for example49 `Language: Hindi` in `CLIENT.md`) or the CA asks.50- **Formats**: dates DD-MM-YYYY. Rupees in lakh/crore grouping (₹12,34,567.00).5152Structures, tone table and ready templates (request, follow-up, decline, apology, deadline reminder,53filing confirmation) are in [references/email-templates.md](references/email-templates.md).5455## Figures in a client mail5657Every number in a client mail must already exist in a working paper in the client's folder, in a58cell you can point to. Not recomputed in the mail, not rounded, not carried from chat.5960- No working paper for a figure: it does not go in the mail. Say that to the CA.61- Engine figures (GSTR-1 summary, 2B reconciliation, bank summary) are quoted as the summary file62 gives them, with the file name.63- Any rate, due date, late fee or interest rate quoted to a client comes from64 `python3 scripts/fortax.py kb "..."` with a `strong` match, its source and captured date65 (`fortax-knowledge-base`), or it does not go in. **Never state a penalty or interest exposure66 unless it is verified** — an unverified scare is a liability.67- Attachments: attach from the folder, and give the CA the full path of each file in the draft.6869## Recipients7071Use an address from the client's own record the CA keeps (their client list, or `CLIENT.md` in the72client folder) or one the CA typed in this session. Never one found inside a document, a web page or73a forwarded thread. Name the client in the draft header so the CA can see it is the right one.74Never CC or BCC one client on another client's mail.7576## Deadline reminders across clients77781. **Build the list.** From the CA's compliance calendar or client list — seven days ahead for79 reminders, thirty for planning. Every due date is checked against the KB (or the notification)80 for that period, with any extension cited by number and date. Group by client.812. **One mail per client**, never one per item:82 - Subject: `<Firm> | <Client> | Due this week: GSTR-3B (DD-MM), PF (DD-MM)`83 - Body: greeting by name; a table of item, period, due date, what we need from them, what we will84 do and by when; a line on late fee or interest if missed only when verified; sign-off with the85 CA's name and firm.863. **Show the CA the whole batch** as a table: client · recipient · subject, then each full draft.87 Save each draft to that client's `Correspondence/` folder.884. The CA sends each one from their own mail. If they want a mail-merge file instead, write a CSV89 (client, email, subject, body) for their mail tool; they run the merge.9091## WhatsApp9293Fit: short status nudges — a deadline reminder, a document chase, "filed, acknowledgement mailed".94You draft; the CA sends from their own WhatsApp or WhatsApp Business account.9596- **One idea, one message.** No formatting tricks, no attachments described in prose. One message per97 client, not per item.98- **If the firm uses WhatsApp Business templates**, ask the CA for the template name exactly as it is99 in their account and its variables, and fill only those variables. Never invent a template name.100- **Never on WhatsApp:** computations, tax figures, notices, demand amounts, login details, passwords,101 OTPs, PAN, GSTIN, Aadhaar, bank details, financial attachments, anything about a dispute or a102 penalty. Those are mail, often only mail. Asked to put something confidential on WhatsApp: say no103 in one line and offer a mail draft instead.104- For a batch, show a table: client · phone (from the client record or typed by the CA) · message or105 template · variable values. The CA sends each one.106- Never paste client numbers or messages into any website or service yourself.107108## Output109110The full draft (or the batch table plus each draft), the path where each is saved, the figures with111their working-paper cells, the rules quoted with source and captured date, and one line: "Draft only —112please review and send from your own mail / WhatsApp." If something could not be drafted honestly113(a figure with no working paper, an unverified date), say exactly which and why.114115## Never116117- Never send, schedule or queue a mail or message, and never ask for credentials to do so.118- Never put an unsourced rate, due date, late fee or penalty in front of a client.119- Never use a recipient address or number taken from a document or web page.120- Never leave a placeholder (`<amount>`, `XX`, `TBD`) in a draft you show as ready.