Nine patterns that separate prompts that work from prompts that break.

1. Instructional vs Deterministic

Describe what to do and let the agent find the words. Script exact words only for legally required disclosures.
DETERMINISTIC — AVOIDINSTRUCTIONAL — PREFER
Say “Hello! Can I speak to [[ userName ]] Sir?”Greet warmly and verify if speaking with [[ userName ]]
If the user says “yes”If the user confirms or agrees to paying
Say “No problem. Thank you for your time.”Thank them politely and end the call
Say “That’s a really important point.”Acknowledge their concern warmly before proceeding

2. Be Descriptive in Your Conditions

Vague conditions create undefined behavior. Specific conditions tell the agent exactly what counts.
VAGUEDESCRIPTIVE
If the user says yesIf the user agrees to making the payment today
If the user says noIf the user explicitly declines to pay
If the user is interestedIf the user asks for more details or agrees to proceed
If the user is doneIf the user says they have no further questions
If the user is unclearIf the user’s response doesn’t answer whether they want a callback or not

3. Nudge Once Before Ending

Never end a call the moment a user says no. Acknowledge, reframe once, offer an alternative, then close. This applies to nearly every outbound flow. Pattern:
  1. Make the request.
    • If the user agrees: proceed to the next step.
    • If the user hesitates or gives a soft refusal (“bad mein”, “abhi busy hoon”, “thoda time chahiye”):
      • Acknowledge their concern.
      • Reframe from a different angle.
    • If the user still refuses:
      • Offer an alternative (callback, different option, better time).
      • If still no: accept gracefully, update disposition, end warmly.
    • If the user gives a hard refusal (“not interested”, “don’t call again”):
      • Accept immediately. No nudge. Update disposition and end politely.
Rules:
  • Maximum 2–3 nudges per conversation. After that, close.
  • A soft refusal (“bad mein”) is not the same as a hard no — handle them differently.
  • Never nudge after an explicit hard refusal — it damages trust.

4. Never Repeat Verbatim — Rephrase and Shorten

Each re-ask must be shorter and more direct than the last. Add the Zero-Loop Policy to your global prompt. ADD TO GLOBAL PROMPT: “Zero-Loop Policy: Never repeat the same text verbatim. If you need to ask again, rephrase it — shorter and more directly. Each re-ask must be noticeably shorter than the previous attempt.”
ATTEMPTWHAT THE AGENT SAYS
First ask”Can I check — are you still interested in discussing the repayment options for your loan?”
Second ask (user said “hmm”)“Would you like to look at repayment options?”
Third ask (still unclear)“Should I continue, or would you prefer a callback?”
The third attempt is the last. If still unclear, move on or end gracefully.

5. Handle Fillers Explicitly

Without an explicit rule, the LLM treats “hmm”, “accha”, “theek hai” as agreement and races ahead. ADD TO INTERACTION GUIDELINES: “Fillers: If the user says “hmm”, “accha”, “theek hai”, “haan”, or similar without giving a clear answer, treat it as ambiguous — rephrase and ask again. Do not treat fillers as confirmation or agreement.”

6. Stop and Wait — Explicitly

The LLM will rush through multiple steps in one response unless told to stop. Say it explicitly after any question that branches. Example: “Ask the user for the location of the issue — a landmark or street name. Stop and wait for the user to respond. Read the location back to the user and ask them to confirm it is correct. Stop and wait. Do not record the location until the user confirms.”

7. Be Prescriptive, Not Vague

Every condition needs an explicit outcome. Gaps in the instruction become gaps in behavior.
VAGUE — AVOIDPRESCRIPTIVE — PREFER
”Ask the user to confirm their PAN verification.""Ask the user to confirm their PAN. If the format is invalid, explain the correct format and ask again. After 2 failed attempts, offer a callback."
"Handle payment objections.""If the user disputes the amount, acknowledge their concern, do not argue, and move to the Escalation state."
"Close the call.""Thank the user, confirm the next step (payment date or callback time), and end the call."
"Ask about the issue.""Ask the user to describe the issue briefly. Confirm the issue type back to them before proceeding.”

8. Acknowledge Before Moving On

Acknowledge what the user said and ask the next question in the same turn. Splitting them creates dead air.
DEAD-AIR — BADFLOWING — GOOD
Agent: “That’s great to hear.” [waits]Agent: “That’s great to hear — what’s been working well for you?”
User: [nothing]
Agent: “I understand your concern.” [waits]Agent: “I understand your concern — could you tell me a bit more about what happened?”
User: [nothing]
Exception: the final closing line before ending the call should be a warm statement, not a question.

9. Sequence Over Prohibition

“Don’t do X before Y” is weaker than “do Y first, then X.” The LLM responds better to sequences.
PROHIBITION — WEAKSEQUENCE — STRONG
”Never name a product before calling the tool.""Call tool:lookup_product first. Only after the tool responds may you suggest a product."
"Don’t ask for location before confirming the issue type.""Confirm the issue type first. Once confirmed, ask for the location."
"Don’t close the call without asking if there is anything else the user needs. Wait for their response. Only call end_interaction after they confirm they are done.""Before ending the call, ask if there is anything else the user needs. Wait for their response. Only call end_interaction after they confirm they are done.”