School Fee Reminder

by Telenow AI

Automated fee-reminder calls that capture a promise and drop a UPI/EMI link — and stop the moment a parent pays.

educationNative
Install School Fee ReminderReviewed & approved · install free · connect your tools
1.1.0
Version
4
Tools

Last updated 2026-07-12

Screenshots

Live dashboard — outcomes, KPIs & status mix
Live dashboard — outcomes, KPIs & status mix
Installments
Installments
Promises
Promises
Guided setup — create the agent & connect your data
Guided setup — create the agent & connect your data

About School Fee Reminder

School Fee Reminder

Recover late coaching & school fees on autopilot — a polite before/on/after reminder cadence that captures a promise-to-pay, drops a UPI/EMI link, and halts the moment the parent pays.

Built on the Telenow App Platform as a pure declarative app: the data model, the agent tools, the SIS + Razorpay webhooks, the reminder + payment-halt workflows, the vernacular agent, and the fee playbook all run on-platform. No external server.

The problem (and the number)

For most coaching institutes and schools, ~40% of fee installments are paid late, and at any given time 15–35% of annual revenue is locked up in outstanding dues. Chasing it is awkward, manual, and easy to let slide — so a receptionist makes a few calls, feels rude, and stops. The result is a widening Days-Sales-Outstanding (DSO) and a cash-flow hole that has nothing to do with enrolment.

The fix isn't harder pressure — it's a consistent, polite cadence: reach the parent in their own language, remind them without judgment, get a concrete promise-to-pay (or split it into an EMI when money is tight), and make paying a single tap via a UPI/EMI link — then stop the instant they pay. School Fee Reminder runs that cadence for you.

How it works

SIS / ERP  ──(installment created webhook)──►  fee_installment object (status: due)
     │                                                  │
     │                                     fires object.fee_installment.created
     ▼                                                  ▼
 dedupe on phone                       ┌── fee_wa_nudge  → gentle WhatsApp reminder + UPI/EMI link
                                       └── fee_reminder  → delay ~3 days
                                                          → outbound-call {{settings.fee_agent_id}}
                                                              → dials {{trigger.data.phone}}
                                                              → passes student, amount, balance, overdue_days
                                                                  │
                                                                  ▼
                                             Fee Reminder Agent (Sarvam, vernacular)
                                             find_installment → polite reminder → answer from playbook
                                             → capture_promise + mark_promised   (pause cadence)
                                             → mark_paid                          (paid on the link)

Razorpay  ──(payment captured webhook)──►  payment object
     │                                            │
     │                            fires object.payment.created
     ▼                                            ▼
 verify x-razorpay-signature          payment_halt workflow
                                       └─ update-object fee_installment (match phone → status: paid)

Everything the agent does on the call updates the same fee_installment / promise rows you see on the dashboard — and the dashboard's Call now button dials through the same agent and tools.

Agent tools (used mid-call — all declarative)

ToolDoesHandler
find_installmentLook up the parent's current installment by phoneobject.query fee_installment
capture_promiseRecord a promise-to-pay (date + amount, incl. EMI parts)object.create promise
mark_promisedParent commits to a date — pause the cadenceobject.update fee_installment (match phone → status promised)
mark_paidParent paid on the link during the call — stop remindersobject.update fee_installment (match phone → status paid)

The bundled Fee Reminder Agent is a multi-context flow: a deterministic find_installment tool node (looks the parent up in this app's data) → a conversation node that reminds, captures the promise, and negotiates EMI. STT/TTS default to Sarvam (anushka) so parents are spoken to in their own language.

Dashboard pages

  • School Fee Reminder (dashboard) — KPI tiles (outstanding dues ₹, dues recovered ₹ + recovery rate, DSO / avg overdue days, promises to pay, in reminder cadence), a cadence-status mix bar (due → promised → paid), the most-overdue installments, and upcoming promises. Also powers the platform dashboard_widget slot in a compact form.
  • Installments — filter by status, search, and Call now to trigger a reminder call for any installment (passes the student's context variables to the agent).
  • Promises — every captured promise-to-pay, sorted by date, flagged when a promise is overdue, with a one-tap Follow up call.
  • Setup — a configuration checklist, a one-click Create fee reminder agent button, and the post-install wiring steps.

Knowledge base

fee-playbook ships four real scripts the agent answers from: the polite dunning cadence (before / on / after due date), EMI / part-payment negotiation, explaining the UPI/EMI payment link, and handling fee disputes → route to accounts.

Install & post-install wiring

  1. Install School Fee Reminder into your org.
  2. Open Setup → Create fee reminder agent (builds the bundled Sarvam agent, auto-wired to the tools + playbook).
  3. Copy the new agent's ID into the app's Fee reminder agent ID setting (fee_agent_id) so fee_reminder can dial.
  4. (Optional) Set WhatsApp channel ID (wa_channel) to auto-send the gentle reminder + UPI/EMI link, and Accounts desk phone (accounts_phone) for dispute transfers.
  5. Point your systems at the inbound hooks — sis_webhook (installments in, deduped on parent phone) and razorpay_paid (verified with x-razorpay-signature, halts the cadence on payment). Overdue installments now flow in and auto-dial.

Settings

KeyTypeNotes
fee_agent_idtext (required)The agent the workflow + "Call now" dial.
wa_channeltextWhatsApp channel for the reminder + UPI/EMI link.
accounts_phonetextNumber the agent transfers to for fee disputes.

Bulk dialing your backlog

The real-time path (webhook → workflow → call) covers new installments. To sweep an existing backlog of overdue fees, use the app-key campaign API:

POST /api/app-campaigns
{ "agentId": "<fee agent id>",
  "targetQuery": { "status": "due" },     // over the `fee_installment` object
  "result": { ... write-back ... } }

Monetization

School Fee Reminder is billed on outcomes, not seats: a small percentage of the dues it actually recovers (installments that move to paid after a School Fee Reminder call or link). No recovery, no fee — the merchant always nets positive, and the dashboard's dues recovered + recovery rate tiles make the ROI obvious.

Ready-made agents it ships

Fee Reminder Agentmulti-step flow

A polite, non-judgmental fee-collections agent that calls parents in their own language, gives a gentle reminder of the overdue installment, captures a promise-to-pay, negotiates an EMI/part-payment when money is tight, explains the UPI/EMI payment link, and routes fee disputes to the accounts desk.

What your agents can do with it

find_installment

Look up the parent's current fee installment by phone number — read back the student name, amount due, balance and how many days it is overdue before speaking.

capture_promise

Record a promise-to-pay when the parent commits to a date and an amount (or an EMI part-payment). Use this whenever they agree to pay 'by' some date.

mark_promised

Mark the parent's fee installment as PROMISED once they commit to a pay-by date. Pair this with capture_promise so the reminder cadence pauses until the promised date.

mark_paid

Mark the parent's fee installment as PAID after they confirm the payment went through (e.g. they paid on the UPI link during the call). Stops all further reminders.

Data it manages

Student Fee installment Promise to pay Payment

Permissions it requests

Apps run inside your workspace under least-privilege scopes you can see up front. This app asks for:

Store & manage “student” records in your workspace
objects:student
Store & manage “fee_installment” records in your workspace
objects:fee_installment
Store & manage “promise” records in your workspace
objects:promise
Store & manage “payment” records in your workspace
objects:payment
Read your agents' configuration
agents:read
Place phone calls on your behalf
calls:initiate
Read calls of agents this app is connected to
calls:read
ai:llm
ai:llm
Send WhatsApp messages
whatsapp:send
View your outbound campaigns
campaigns:read
See your name and email
user:profile

What's new in v1.1.0

Changelog

1.1.0 — 2026-07-12

  • Renamed to School Fee Reminder (business-friendly) with a marketplace icon.
  • Added real UI screenshots (dashboard + key pages).
  • The auto-reminder call now carries the accounts-desk number so the agent can hand off disputes.
  • Verified end-to-end loop closure: trigger → workflow → call → agent tools → write-back → dashboard.

1.0.0

  • Initial release.
  • Data model: student (name, parent, phone, course, status), fee_installment (student, phone, amount, due date, overdue days, balance, status) with overdue / promised / paid saved views, promise (phone, student, promised date, amount), and payment (phone, student, amount, paid_at).
  • Agent tools (declarative): find_installment, capture_promise, mark_promised, mark_paid.
  • Bundled agent: Fee Reminder Agent — a Sarvam vernacular multi-context flow (deterministic find_installment lookup → polite reminder → capture promise / negotiate EMI) auto-wired to the tools and the fee playbook.
  • Knowledge base: fee-playbook — polite before/on/after dunning cadence, EMI / part-payment negotiation, explaining the UPI/EMI link, and routing disputes to accounts.
  • Automation: sis_webhook inbound hook (upserts installments, deduped on phone) and razorpay_paid inbound hook (HMAC-verified via x-razorpay-signature); fee_reminder workflow (delay ~3 days → outbound reminder call); fee_wa_nudge workflow (gentle WhatsApp reminder + UPI/EMI link); payment_halt workflow (payment → mark the installment paid, stopping the cadence).
  • Dashboard UI: KPI tiles (outstanding dues, dues recovered + recovery rate, DSO / avg overdue, promises, in-cadence), a cadence-status mix bar, most-overdue installments, and upcoming promises; also renders into the dashboard_widget slot in compact form.
  • Installments page: status filters, search, and per-installment Call now (passes student context variables to the agent).
  • Promises page: every captured promise-to-pay, sorted by date, with overdue-promise flags and a one-tap follow-up call.
  • Setup page: configuration checklist + one-click Create fee reminder agent and post-install wiring steps.
  • Self-seed: a fresh install auto-loads six realistic students + installments (across due / promised / paid) and two promises-to-pay (removable) so the dashboard is populated on first open.

Publisher

Telenow AI

Marketplace publisher · app reviewed by Telenow before listing.

Your data, your keys

Encryption everywhere

Secrets, carrier credentials and API keys stored AES-GCM encrypted; TLS in transit; HMAC-signed webhooks.

Org isolation & RBAC

Strict per-organization data isolation with role-based access for every member.

Full audit log

Every mutating action is logged and filterable, with CSV export for your records.

Telephony compliance

In-app DLT / regulatory flows, TCPA calling windows, and org-wide Do-Not-Call enforcement.

₹300.00 free credit on signup

Install School Fee Reminder

Sign up free and get ₹300.00 in credit — no card required. Connect your number, pick a template, and go live in minutes.