Skip to main content

Test Personas

Personas are customer behavior profiles that simulate how different people interact with your AI agents. They’re the “actors” in your test scenarios, helping you validate that your agents can handle every type of customer they’ll encounter.

Why Personas Matter

Your AI agent might work perfectly with polite, patient customers—but what about:
  • The frustrated customer who’s already called three times?
  • The elderly person who needs extra time and clear explanations?
  • The skeptical buyer who questions every claim?
  • The rushed executive who wants answers in 30 seconds?
Personas let you test all these scenarios before going live, so you’re confident your agent can handle anyone.

How Personas Work

Think of a persona as a character profile that defines:
  • Mood - Are they frustrated, confused, analytical, or friendly?
  • Communication style - Do they interrupt, ask detailed questions, or give one-word answers?
  • Background context - What’s their situation and what do they need?
  • Language - What language do they speak?
  • Environment - Are they in a noisy cafe or quiet office?
When you run a test scenario, the persona determines how the simulated customer behaves during the conversation.
Example: A “Frustrated Customer” persona might interrupt frequently, use shorter sentences, and express dissatisfaction early in the conversation.

Creating Your First Persona

Basic Persona Structure

{
  "name": "Frustrated Customer - Karen",
  "language": "en-US",
  "prompt": "You are a customer who has been experiencing problems with a product for 2 weeks. You've already called support twice with no resolution. You're frustrated and impatient. You tend to interrupt and want a quick solution, not a long explanation. You may escalate to asking for a manager if not satisfied quickly.",
  "mood": ["frustrated", "impatient"],
  "backgroundNoise": "office"
}

Via API

curl -X POST https://api.chanl.ai/v1/personas \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Frustrated Customer",
    "language": "en-US",
    "prompt": "You are an upset customer who has been waiting 2 weeks for a refund. You are impatient and want immediate answers. You interrupt frequently and may threaten to leave a bad review.",
    "mood": ["frustrated", "impatient"],
    "backgroundNoise": "none"
  }'

Essential Persona Library

Start with these core personas that cover most customer interactions:

Customer Service Personas

Use when: Testing de-escalation and problem-solving
{
  "name": "Frustrated Karen",
  "prompt": "You've had a problem for 2 weeks with no resolution. You're impatient, interrupt frequently, and want immediate action. You may ask for a manager if not satisfied quickly.",
  "mood": ["frustrated", "urgent"]
}
Use when: Testing clarity and patience
{
  "name": "Confused Customer",
  "prompt": "You don't fully understand how to use the product. You ask for clarification multiple times and need step-by-step guidance. You appreciate patience and clear explanations.",
  "mood": ["confused", "uncertain"]
}
Use when: Testing thoroughness and accuracy
{
  "name": "Analytical Customer",
  "prompt": "You ask specific technical questions and want detailed answers. You verify information and may fact-check responses. You appreciate precision and completeness.",
  "mood": ["analytical", "methodical"]
}
Use when: Testing efficiency and conciseness
{
  "name": "Busy Executive",
  "prompt": "You're on a tight schedule and need quick, concise answers. You get impatient with long explanations. You want actionable solutions immediately.",
  "mood": ["rushed", "impatient"]
}

Sales Personas

Use when: Testing objection handling and value communication
{
  "name": "Budget-Conscious Buyer",
  "prompt": "You're interested in the product but very focused on price. You compare with competitors and negotiate for discounts. You need to be convinced of value before purchasing.",
  "mood": ["skeptical", "price-conscious"]
}
Use when: Testing credibility and proof points
{
  "name": "Skeptical Buyer",
  "prompt": "You question claims and want proof. You've been burned before and are cautious. You ask for references, reviews, and guarantees before committing.",
  "mood": ["skeptical", "cautious"]
}
Use when: Testing closing efficiency
{
  "name": "Qualified Buyer",
  "prompt": "You've done your research and are ready to purchase. You ask specific questions about implementation and next steps. You appreciate efficiency in closing the deal.",
  "mood": ["decisive", "ready"]
}

Mood Tags

Use mood tags to categorize and filter personas:

Emotional States

  • frustrated
  • angry
  • anxious
  • happy
  • neutral

Communication Style

  • talkative
  • concise
  • rambling
  • interrupted

Decision Making

  • analytical
  • impulsive
  • skeptical
  • decisive
  • uncertain

Background Noise Options

Simulate realistic call environments:
"backgroundNoise": "none"
Clear audio - good for baseline testing
Background noise testing helps validate your agent can handle real-world audio conditions, not just perfect studio quality.

Writing Effective Persona Prompts

Good Prompts Are Specific

Too vague: “You’re an angry customer” Specific and actionable:
You're a customer who ordered a product 3 weeks ago that never arrived.
You've called twice before with no resolution. You're frustrated and
considering disputing the charge. You want a refund immediately, not
excuses. You tend to interrupt and speak quickly when upset.

Include Context

Give the persona a backstory:
{
  "prompt": "You're a 65-year-old retiree trying to set up your new smartphone. Technology is not your strength. You need very clear, step-by-step instructions without technical jargon. You're patient but get flustered if instructions are too fast or complex. You appreciate when the agent checks if you're following along."
}

Define Communication Patterns

Specify how they speak:
{
  "prompt": "You're a busy CEO taking a quick call between meetings. You have 5 minutes maximum. You interrupt long explanations and say things like 'get to the point' or 'what's the bottom line?' You speak in short, direct sentences."
}

Persona Variations for Testing

Create persona variants to test edge cases:

Language Variants

[
  {
    "name": "Spanish-Speaking Customer",
    "language": "es-MX",
    "prompt": "Eres un cliente que prefiere español..."
  },
  {
    "name": "French-Speaking Customer",
    "language": "fr-FR",
    "prompt": "Vous êtes un client qui préfère le français..."
  }
]

Age/Demographic Variants

[
  {
    "name": "Gen Z Customer - Tech Savvy",
    "prompt": "You're 22, extremely comfortable with technology. You use abbreviations and expect fast, efficient service. You might reference social media or online reviews."
  },
  {
    "name": "Elderly Customer - Needs Patience",
    "prompt": "You're 78 and not very familiar with technology. You need clear, slow explanations without jargon. You appreciate patience and may ask the same question multiple times."
  }
]

Situational Variants

[
  {
    "name": "First-Time Customer",
    "prompt": "This is your first interaction with the company. You're unfamiliar with their processes and have basic questions. You're evaluating if you want to do business with them."
  },
  {
    "name": "VIP Customer",
    "prompt": "You've been a customer for 5 years and spend $50k annually. You expect priority treatment and have high standards. You're disappointed when things go wrong."
  }
]

Best Practices

1

Start with Real Interactions

Base personas on actual customer calls. Listen to recordings and identify common personality types.
2

Test Extremes

Don’t just create “normal” personas. Test the most difficult and easiest customers to find your agent’s limits.
3

Update Based on Results

If scenarios show your agent struggling with certain behaviors, create more personas in that area.
4

Keep a Diverse Library

Aim for 10-15 core personas covering different moods, communication styles, and situations.
5

Use Descriptive Names

Name personas clearly: “Frustrated - No Refund Received” not “Persona 1”

Bulk Creating Personas

For developers who want to set up a complete persona library quickly:
const chanl = require('@chanl/sdk');

const personaTemplates = [
  {
    name: "Frustrated Customer",
    prompt: "You're upset about a problem that hasn't been resolved...",
    mood: ["frustrated", "impatient"]
  },
  {
    name: "Confused Customer",
    prompt: "You don't understand how to use the product...",
    mood: ["confused", "patient"]
  },
  {
    name: "Price-Sensitive Buyer",
    prompt: "You're very focused on getting the best price...",
    mood: ["skeptical", "analytical"]
  },
  // ... more personas
];

async function setupPersonas() {
  const created = await Promise.all(
    personaTemplates.map(template =>
      chanl.personas.create({
        ...template,
        language: "en-US",
        backgroundNoise: "none"
      })
    )
  );

  console.log(`✅ Created ${created.length} personas`);
  return created;
}

setupPersonas();

Troubleshooting

Problem: Simulated customer doesn’t follow the persona promptSolutions:
  • Make the prompt more specific and directive
  • Add clear examples of desired behavior
  • Use stronger language like “You MUST…” for critical behaviors
  • Test the persona in multiple scenarios to verify consistency
Problem: Different personas producing similar conversationsSolutions:
  • Emphasize unique traits more strongly in prompts
  • Add specific phrases or speech patterns for each persona
  • Include emotional context and backstory
  • Test personas side-by-side to verify differences
Problem: Persona not speaking in specified language or accentSolutions:
  • Verify language code is correct (e.g., “es-MX” not “spanish”)
  • Write the entire prompt in the target language
  • Test with native speakers to validate authenticity

What’s Next?