Personal, never improvised.
Every call adapts to the person — their language, their name, their pace, their history, the last thing they told you. Every adaptation is driven by a governed field with a source, never by a guess.
A model that "reads the customer" is guessing. A model that reads the customer's record is personal — and can show its sources.
Who they are. When to call. Where they stand. What they said.
Language, name, pace.
Hindi, Hinglish or Tamil as they stated it — not as their pincode suggests. Their name from a client-approved pronunciation lexicon. Speaking pace matched to theirs, turn by turn.
Slot and channel they chose.
The evening window they asked for, inside RBI Fair Practices Code calling hours. WhatsApp link, SMS confirmation or a branch visit — whichever is on their consent record.
Tone by history.
A first-time late payer is not a chronic one. DPD bucket and promise-to-pay history select a tone profile — soft, firm, or hand to a human — never a threat, and never a line outside the frozen set.
The last thing they said.
"Salary comes Friday." "I'll pay at the branch." "That fee is wrong." Recalled with its provenance — and offer eligibility read from the system of record, not invented on the call.
One EMI reminder, rendered twice.
Both calls carry the same intent and the same frozen lines. Everything that differs — language, greeting, tone, channel, what is recalled — traces to a governed field under each transcript.
Same intent, same frozen lines, two renderings. Illustrative calls; names are placeholders. replace with a redacted pilot pair
What personalization may read — and never may.
The agent personalizes from a named grant: the fields the governance policy allows it to see, synced from your LMS, CRM and consent records. It never infers what DPDP calls sensitive — religion, caste, health, or a region guessed from a surname — and it never reads a field you did not grant. The trace on every turn shows which field drove which choice.
Illustrative trace. replace with a live policy explain
| Segment prompt | Scenarios | Red → green | Green → red | Frozen lines | Verdict |
|---|---|---|---|---|---|
| hi-IN · bucket 1 · first late reminder tone · recall salary note | 310 | +9 | 0 | exact | release |
| ta-IN · bucket 2 · PTP broken firm tone · reference last promise | 280 | +6 | 0 | exact | release |
| hi-IN · renewal · lapsed 30d IRDAI wording · no product claims | 240 | +4 | 0 | exact | release |
| Hinglish · bucket 3 · dispute open acknowledge ticket · no collection ask | 190 | +2 | 1 | exact | blocked · asked for payment while dispute open |
Illustrative week. Every segment prompt is a release: simulated, diffed, signed. replace with a live segment scoreboard
A segment prompt is a release.
Every per-segment prompt — bucket-1 Hinglish, bucket-2 Tamil, lapsed renewals — goes through the weekly learning cycle like any other change: replayed against the simulator's scenarios for that segment, diffed red-to-green against the live version, frozen lines checked by exact match, and signed by a named human. A segment that regresses does not ship, however personal it sounds.
