EMI Reminder & Recovery

by Telenow AI

Early-bucket EMI reminder calls that capture a Promise-to-Pay and auto call back to confirm it was kept.

fintechNative
Install EMI Reminder & RecoveryReviewed & approved · install free · connect your tools
1.1.0
Version
7
Tools

Last updated 2026-07-12

Screenshots

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

About EMI Reminder & Recovery

EMI Reminder & Recovery

Respectful, multilingual Bucket-0/1 EMI reminders that capture a tracked Promise-to-Pay — then auto-call back a day later to confirm it was kept.

Built on the Telenow App Platform as a pure declarative app: the data model, the agent tools, the LMS webhook, the reminder + follow-up workflows, the vernacular agent, and the RBI fair-practice playbook all run on-platform. No external server.

The problem (and the number)

Early-bucket collections is a phone-and-trust game, and the phone is turning against lenders: RPC (right-party-contact) drops ~80% on numbers that get spam-tagged by carriers and call-screening apps — exactly what happens when a borrower's phone lights up with repeated, robotic "pay now" calls. Miss the early window and the RBI 15-day bureau clock starts ticking toward a credit-bureau report, turning a ₹8,000 slip into a bureau ding the borrower will fight for months.

The fix is not more calls — it's a calm, human, once call that reaches the borrower in their own language, states the EMI plainly, and secures a specific Promise-to-Pay — then a single, gentle confirmation call so the promise actually converts to cash. EMI Reminder & Recovery does exactly that, automatically, within RBI fair-practice conduct.

How it works

Loan Management System  ──(EMI due / bucketed webhook)──►  loan_account object (status: due)
        │                                                          │
        │                                             fires object.loan_account.created
        ▼                                                          ▼
   dedupe on phone                                      remind_due workflow
                                                          └─ outbound-call  {{settings.reminder_agent_id}}
                                                                → dials {{trigger.data.phone}}
                                                                → passes borrower, emi_amount, due_date, product, dpd
                                                                    │
                                                                    ▼
                                          EMI Reminder Agent (Sarvam, multilingual)
                                          find_account → state EMI → capture_ptp / offer payment link
                                          → mark_promised | mark_paid | mark_broken | record_payment
                                                                    │
                                          capture_ptp creates a promise_to_pay ─────┐
                                                                                    ▼
                                                              fires object.promise_to_pay.created
                                                                    │
                                                                    ▼
                                                         ptp_followup workflow
                                                          ├─ delay 1 day
                                                          └─ outbound-call  {{settings.reminder_agent_id}}
                                                                → "did you manage to pay?" → mark_promise_kept + mark_paid + record_payment

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

Agent tools (used mid-call — all declarative)

ToolDoesHandler
find_accountLook up the borrower's loan account by phone (EMI, due date, DPD, product)object.query loan_account
capture_ptpRecord a tracked Promise-to-Pay (date + amount) — arms the follow-up callobject.create promise_to_pay
mark_promisedBorrower committed to a date — set account promisedobject.update loan_account (match phone → promised)
mark_paidBorrower confirms the EMI is paid — set account paidobject.update loan_account (match phone → paid)
mark_brokenA prior promise lapsed and no new date given — set brokenobject.update loan_account (match phone → broken)
record_paymentLog the actual payment against the accountobject.create payment
mark_promise_keptOn the follow-up call, close the tracked promise once the borrower confirms they paid — the monetized outcomeobject.update promise_to_pay (match phone → kept: true)

The bundled EMI Reminder Agent is a multi-context flow: a deterministic find_account tool node (looks the borrower up in this app's data) → a conversation node that states the EMI and captures the promise. STT/TTS default to Sarvam (anushka) for Tier-2/3 vernacular borrowers.

Dashboard pages

  • EMI Reminder & Recovery (dashboard) — KPI tiles (accounts, RPC rate, PTP conversion, promise-kept rate, recovered ₹), a Promise-to-Pay funnel (in collections → reached → promised → kept → paid), a status mix, and a DPD-bucket breakdown. Also powers the platform dashboard_widget slot in a compact form.
  • Accounts — grouped by DPD bucket (0 / 1–30 / 31–60 / 60+), with status filters, search, and Call now to trigger a reminder call for any account (passes the account's context variables to the agent).
  • Promises — Open vs Kept promises, a Call to run the confirmation call, and Mark kept (records the payment and settles the account to paid).
  • Setup — a configuration checklist, a one-click Create reminder agent button, and the post-install wiring steps.

Knowledge base

collections-playbook ships four real scripts the agent answers from: RBI fair-practice tone rules, the Promise-to-Pay (PTP) script, the payment-link explanation, and dispute handling (incl. the RBI 15-day bureau clock).

Install & post-install wiring

  1. Install EMI Reminder & Recovery into your org.
  2. Open Setup → Create reminder agent (builds the bundled multilingual Sarvam agent, auto-wired to the tools + playbook).
  3. Copy the new agent's ID into the app's Reminder agent ID setting (reminder_agent_id) so remind_due and ptp_followup can dial.
  4. (Optional) Set WhatsApp channel ID (wa_channel) to send the secure payment link, and adjust the Permitted calling window (call_window_note, default 08:00-19:00 IST).
  5. Point your LMS's EMI due / account bucketed webhook at the inbound hook lms_webhook (dedupes on phone; the URL carries a per-install ?token=). New accounts now flow in and auto-dial.

Settings

KeyTypeNotes
reminder_agent_idtext (required)The agent the workflows + "Call now" dial.
wa_channeltextWhatsApp channel for the secure payment link.
call_window_notetextRBI fair-practice calling window (default 08:00-19:00 IST).

Bulk dialing your backlog

The real-time path (webhook → workflow → call) covers newly-bucketed accounts. To sweep an existing early-bucket backlog, use the app-key campaign API:

POST /api/app-campaigns
{ "agentId": "<reminder agent id>",
  "targetQuery": { "status": "due", "dpd": { "$lte": 30 } },   // over the `loan_account` object
  "result": { ... write-back ... } }

Monetization

EMI Reminder & Recovery is billed on outcomes, not seats: a small fee per kept Promise-to-Pay (promise_to_pay.kept = true). A kept PTP is a dated commitment that converted to cash — the single event that actually recovers the EMI — so the fee only ever fires when the merchant has already been paid. Broken promises and reminder calls that don't convert cost nothing, keeping incentives aligned with real recovery.

Ready-made agents it ships

EMI Reminder Agentmulti-step flow

A respectful, multilingual (Sarvam) collections reminder agent for Bucket-0/1 EMI accounts. It looks the borrower up, states the EMI due, and either captures a tracked Promise-to-Pay or offers a secure payment link — always within RBI fair-practice tone.

What your agents can do with it

find_account

Look up the borrower's loan account by their phone number to read the EMI amount, due date, product and days-past-due before speaking.

capture_ptp

Record a Promise-to-Pay when the borrower commits to a date and amount. This creates a tracked promise that PromiseLoop will auto-call back to confirm.

mark_promised

Mark the borrower's loan account as PROMISED once they have committed to a promise-to-pay. Use together with capture_ptp.

mark_paid

Mark the borrower's loan account as PAID when they confirm the EMI has been paid or complete payment on the call.

mark_broken

Mark the borrower's loan account as BROKEN when a previously made promise-to-pay has lapsed and they decline to commit to a new date.

record_payment

Log a payment against the borrower's account when they confirm they have paid (fully or partially). Use alongside mark_paid.

mark_promise_kept

Mark the borrower's open Promise-to-Pay as KEPT when, on the follow-up call, they confirm they have paid the amount they promised. This closes the tracked promise and is the outcome PromiseLoop is built around — always use it together with mark_paid and record_payment when a promise is fulfilled.

Data it manages

Loan account 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 “loan_account” records in your workspace
objects:loan_account
Store & manage “promise_to_pay” records in your workspace
objects:promise_to_pay
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 EMI Reminder & Recovery (business-friendly) with a marketplace icon.
  • Added real UI screenshots (dashboard + key pages).
  • Added mark_promise_kept so the follow-up call can close a kept Promise-to-Pay (the monetized outcome).
  • Verified end-to-end loop closure: trigger → workflow → call → agent tools → write-back → dashboard.

1.0.0

  • Initial release.
  • Data model: loan_account object (borrower, phone, EMI amount, due date, DPD, product, status due/promised/paid/broken, created_at) with due / bucket1 / promised / broken saved views; promise_to_pay object (phone, promised date, amount, kept, created_at) with pending / kept views; payment object (phone, amount, paid_at) for recovered-amount tracking.
  • Agent tools (declarative): find_account, capture_ptp, mark_promised, mark_paid, mark_broken, record_payment, mark_promise_kept (closes the tracked promise on the follow-up call — the monetized outcome).
  • Bundled agent: EMI Reminder Agent — a Sarvam multilingual multi-context flow (deterministic find_account lookup → state EMI → capture Promise-to-Pay / offer payment link) auto-wired to the tools and the RBI fair-practice collections playbook.
  • Knowledge base: collections-playbook — RBI fair-practice tone rules, the Promise-to-Pay script, the payment-link explanation, and dispute handling (incl. the RBI 15-day bureau clock).
  • Automation: lms_webhook inbound webhook (dedupe on phone) maps LMS payloads into loan accounts; remind_due workflow (outbound reminder call on new account); ptp_followup workflow (delay 1 day → outbound call to confirm the promise was kept).
  • Dashboard UI: KPI tiles (accounts, RPC rate, PTP conversion, promise-kept rate, recovered ₹), a Promise-to-Pay funnel, status mix, and DPD-bucket breakdown; also renders into the dashboard_widget slot in compact form.
  • Accounts page: grouped by DPD bucket (0 / 1–30 / 31–60 / 60+), status filters, search, and per-account Call now (passes account context variables to the agent).
  • Promises page: Open vs Kept tabs, a confirmation Call, and Mark kept (records the payment and settles the account to paid).
  • Setup page: configuration checklist + one-click Create reminder agent and post-install wiring steps.
  • Self-seed: a fresh install auto-loads six realistic demo accounts across DPD buckets, two promises, and a payment (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 EMI Reminder & Recovery

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