ITR Document Reminders
Customised WhatsApp & email requests for client documents
Firm
Filing for
Language
Clients
Blank template
Sending channel
WhatsApp via
Email via
API modes use the tokens set in ⚙ API & integrations.
Settings
Google Form ID / link · optional
{{ st.value }}
{{ st.label }}
{{ selectedCount }} selected · via {{ waModeLabel }}
🗂️
Start by importing last year's filed JSONs — or an income report
Drop in your ITR JSON exports — the tool reads each client's PAN, email, mobile and income sources, then builds a tailored document request. No JSONs? Import your income head-wise report (CSV / Excel / .xls) and the document list is built from each client's income heads instead. Add a client Excel/CSV to fill in WhatsApp numbers and emails (matched on PAN).
🧾 Salaried → Form 16 🏪 Business → Bank & GST 📈 Trader → Broker P&L 🏠 Rent → Interest cert.
Client Income sources (last year) WhatsApp Email Documents Status Send
{{ row.name }}
{{ row.subline }}
{{ h.label }}
⚠ also on file: {{ row.waOther }} — use
● needs a personal number
⚠ also on file: {{ row.emailOther }} — use
● needs a personal email
Client details
Income sources (last year) — tap to add / remove
Documents requested — tick to include
Last year snapshot
{{ sn.k }}: {{ sn.v }}
Message preview ({{ langLabel }})
{{ queueTitle }}
{{ queueProgress }}
{{ queueName }}
{{ queueTo }}
{{ queueApiStatus }}
✅ Sent: {{ queueOk }}
⚠ Failed: {{ queueFail }}
⚙ API & integrations
🔒 Tokens are kept out of plain sight (obfuscated in this browser only) and are never written to your JSON exports. For maximum security, use the Download app button and run this file locally.
✉ Gmail API (OAuth — no SMTP)
Used for Email via → API. Generate a token with the gmail.send scope (e.g. from OAuth Playground). Tokens expire — paste a fresh one when needed.
📲 WhatsApp API provider
Free-text messages need the recipient to have messaged you in the last 24h; otherwise set an approved template name. Graph API may block browser CORS — failures are reported per client.
POST body per client: { to, message, clientId, name, pan } with headers Authorization: Bearer, X-Client-Id, X-Auth.
🛡 Remove office / staff contacts
Many filed returns carry your office's shared email or mobile. List those here — each client using one gets it swapped for their own alternate from the other source (JSON ↔ client list). If no alternate exists, the field is cleared and flagged.
Repeated across clients — likely office/staff · click to block
Office mobile numbers ({{ officeMobileCount }})
Office / staff emails ({{ officeEmailCount }})
Saved automatically · also applied on every new import.
{{ toast }}