This guide provides a granular analysis of a conversational agent designed for a specific, proactive purpose: preventing auto-debit failures. Unlike a standard debt collection bot that acts after a payment is missed, this agent’s primary goal is to remind customers of their upcoming EMI auto-debit and confirm they are prepared. This subtle shift in purpose dramatically influences the agent’s tone, logic, and conversational flow.

Global Instructions: The Agent’s Core Persona and Boundaries

These foundational rules define the agent’s behavior across all states, ensuring consistency, compliance, and a focused, professional demeanor.

Persona and Tone

The agent is a helpful conversational assistant. Its primary goal is to assist, not demand. A crucial rule is the de-escalation protocol for extremely negative sentiment: reassure them once, then gracefully exit by promising a human callback. This prevents the bot from getting into a negative loop and shows responsiveness to user frustration.

Scope of Knowledge

The agent is given access to key variables (@emi_amount, @emi_due_date, @bank_name, etc.) and is instructed to answer questions about them. This makes it knowledgeable within its specific domain. For anything outside this scope, it has a clear fallback: inform them that you are not privy to this information and promise a human follow-up. This manages user expectations and prevents the agent from making mistakes.

Policy Enforcement

The agent must enforce business rules like no due date extension and no partial payments. By stating the policy and immediately reverting to its original flow, it acts as a firm but polite enforcer of the loan terms without getting sidetracked.

Interaction Etiquette

The agent has a default closing: “Thank you for your time, have a good day!”. The prompt wisely includes exceptions for sensitive situations like death or medical emergencies, demonstrating a higher level of emotional awareness and preventing tonally inappropriate closings.

State-Specific Instructions

State: AutopayYes

This is a comprehensive “mega-state” that handles the entire primary interaction, from verification to issue resolution. Goal: To proactively contact customers before their EMI due date, confirm they are prepared for the upcoming auto-debit, and thereby prevent payment failures and associated charges.

Granular Analysis of Logic and Flows

1. Verification and Call Purpose
Instruction: Ask, “May I confirm if I’m speaking with @customer_name?” followed by “This call is being recorded… This call is regarding your car loan… Your EMI of Rs. @emi_amount is due on @emi_due_date…”
Why: This two-step opening is deliberate. It first ensures you are speaking to the right person for privacy compliance. Once confirmed, it clearly states the call’s purpose with all relevant details (using variables like @emi_amount and @emi_due_date). This transparency builds trust and sets the context immediately. 2. The Core Proposition: A Collaborative Ask
Instruction: ”…Will you be able to maintain the required amount in your bank account?”
Why: This is the heart of the proactive reminder strategy. It’s a soft, collaborative question, not a demand for payment. It frames the interaction as the agent helping the customer avoid future issues, which is psychologically more effective than a punitive collection call. 3. The “Happy Path”: Customer Agrees
Flow: If the customer agrees, the agent confirms, reminds them of the benefit (avoid charges), and ends the call.
Why: This flow is designed to be fast and efficient. A positive confirmation is all that’s needed, so the agent rewards the user with a quick and pleasant end to the call. 4. The “Nudge Funnel”: Handling Disagreement
Flow: If the customer disagrees or is hesitant, the agent initiates a two-step nudge funnel.
Nudge 1 (The Dynamic, Time-Sensitive Nudge):
Instruction: {% if dpd == "-1" or dpd == "0" %} Say “Please maintain… today…” {% else %} Say “Please maintain… 1 day before the due date…” {% endif %}
Granular Analysis: This is the most sophisticated part of the prompt. The {% if ... %} block is templating logic that allows the agent to deliver a different message based on the @dpd (Days Past Due) variable.
  • If dpd is -1 or 0 (meaning the due date is tomorrow or today), the urgency is high: “maintain the… amount… today”.
  • Otherwise, the message is slightly less urgent: “maintain the… amount… 1 day before the due date”. This dynamic messaging makes the agent feel intelligent and hyper-relevant to the customer’s specific situation. It also explicitly mentions the penalty amounts (Rs. 1,180 and Rs. 10 daily) to make the consequences of inaction crystal clear.
Nudge 2 (The Consequence Nudge):
Instruction: “But I would like to remind you that delaying or missing payments impacts your credit score…”
Why: If the first, specific nudge fails, the agent escalates to a more general but powerful motivator: the impact on the CIBIL/credit score. This is a universal concern and serves as a strong final attempt to persuade the customer. 5. Specialized Issue Handlers (The “Intelligent Off-Ramps”)
Flow: The state contains numerous If customer explicitly mentions... clauses for handling complex issues (bank problems, technical glitches, wrong due date, stolen car, etc.).
Granular Analysis: This is a “Contain and Escalate” strategy. The agent is designed to recognize it is not equipped to solve these complex problems. Its role is to:
  • Contain: Acknowledge the user’s problem empathetically (“I understand…”).
  • Escalate: Provide the correct channel for resolution (e.g., mail us on service at mahindra finance dot com) or promise a callback from a specialized human agent.
  • Exit: Gracefully end the interaction using end_interaction. This design prevents the bot from giving incorrect information, reduces customer frustration, and ensures complex issues are routed to the right team efficiently.
6. Embedded Wrong Person / User Busy Logic
Flow: The state also contains logic for what to do if the person on the phone is a relative, doesn’t know the customer, or if the customer is simply busy.
Why: Instead of using separate states, this bot’s design consolidates this logic. When a relative answers, the agent politely asks for a convenient callback time, gathering information without being intrusive. If the customer is busy, it makes one quick attempt to get a confirmation before respecting their request and transitioning to the @UserBusy state. This makes the AutopayYes state very large but self-contained.

State: UserBusy

This state is a simple, focused utility for rescheduling. Goal: To handle explicit callback requests by capturing a specific time and reliably rescheduling the interaction.

Logic and Flows

Flow: User Provides a Callback Time
Action: validate their exact message with call @reschedule_call_tool
Why: The agent doesn’t just listen; it acts. The @reschedule_call_tool likely integrates with a master scheduling system. This ensures the customer’s request is not just heard but is officially logged for a reliable callback, turning a simple conversation into a concrete action. Flow: User is Unwilling to Give a Callback Time
Action: The agent simply ends the interaction.
Why: The prompt avoids a frustrating loop. If the user doesn’t want to schedule a time, the agent respects this and ends the call, preventing a negative experience. The system will likely attempt a call again later based on its own retry logic.