Skip to main content

What is a Test Profile?

A test profile gives your evaluator a specific identity with personal information such as name, date of birth, address, phone number, and other relevant details. This allows the evaluator to provide consistent, realistic identity information during conversations with your AI agent.

When to Use Test Profiles

Test profiles are essential when your AI agent needs to:
  • Verify Identity: Confirm the caller’s identity before proceeding with sensitive actions
  • Lookup Records: Find specific accounts, appointments, or orders based on personal information
  • Personalize Interactions: Address the caller by name or reference their specific details
  • Authenticate Users: Verify security questions or personal details

Common Use Cases

How Test Profiles Work

Setup Process

  1. Create Test Data in Your System: Add mock records (appointments, accounts, orders) with specific test information
  2. Create Matching Test Profile: Create a test profile with the same information in Cekura
  3. Attach to Evaluator: Assign the test profile to your evaluator
  4. Run Tests: The evaluator will use the profile information during conversations

Example: Clinic Receptionist

Let’s say you have a clinic receptionist AI agent that can cancel appointments. The agent verifies identity by asking for the patient’s date of birth before cancellation. Step-by-Step Setup:
1

Create mock appointment in your system

Create a test appointment with:
  • Patient Name: John Smith
  • Date of Birth: January 1, 2000
  • Appointment Date: March 15, 2025
  • Appointment ID: APT-12345
2

Create matching test profile in Cekura

Create a test profile with:
  • Name: John Smith
  • Date of Birth: January 1, 2000
  • Additional Notes: “Appointment ID: APT-12345”
3

Create evaluator with instructions

Create an evaluator with instructions: “Call to cancel the appointment scheduled for March 15, 2025. Provide date of birth when asked for verification.”
4

Attach test profile to evaluator

Assign the “John Smith” test profile to this evaluator.
During Testing: When the evaluator converses with your agent:
  1. Evaluator: “Hi, I’d like to cancel my appointment.”
  2. Agent: “I can help with that. Can I have your date of birth for verification?”
  3. Evaluator: “January 1, 2000” (from test profile)
  4. Agent: “Thank you. I see you have an appointment on March 15, 2025. Would you like to cancel this?”
  5. Evaluator: “Yes, please.”
  6. Agent: “Your appointment has been cancelled. Your confirmation number is APT-12345.”

Test Profile Fields

A test profile can include:
  • Name: First and last name
  • Date of Birth: DOB in various formats
  • Address: Full mailing address
  • Phone Number: Contact number
  • Email: Email address
  • Account/Customer ID: Unique identifiers
  • Security Information: Answers to security questions
  • Custom Fields: Any additional information your agent might need
Keep Test Profiles Organized: Use clear naming conventions like “Customer-Banking-Premium” or “Patient-Dental-Regular” to easily identify which test profile to use for different scenarios.

Profile Sections — Main Agent vs Testing Agent

A test profile’s information is split into two sections so each value reaches only the right consumer: Sectioned example:
Why split? Persona PII like customer_name shouldn’t be sent to the agent under test as a dynamic variable unless your agent registered it. Conversely, dynamic-variable values your production code expects shouldn’t leak into the testing agent’s persona prompt. The split keeps each side honest.
Both sections are optional. Set only the ones you need:
  • If your agent has no registered dynamic variables, omit main_agent_variables (or leave it {}) — there’s nothing for it to deliver. Put persona/context for the simulated caller in testing_agent_variables only.
  • If you only need to send dynamic-variable values and don’t need to brief the simulated caller separately, populate main_agent_variables and leave testing_agent_variables empty (or omit it).
  • Both empty / both missing is also valid — the profile then has no information payload but can still be attached to a scenario for naming purposes.

Custom Headers for SIP and WebSocket Runs

For SIP and WebSocket runs, keys in main_agent_variables that start with X- are additionally sent as custom headers during connection setup:
  • SIP runs: sent as custom SIP headers in the INVITE request
  • WebSocket runs: sent as custom HTTP headers during the WebSocket upgrade
This is the only way to pass custom headers to your agent for these connection types. Reserved system headers (X-Run-Id, X-Scenario-Id, X-Result-Id) are always set by Cekura and cannot be overridden. Example:
In this example:
  • X-Auth-Token and X-Customer-Tier are sent as custom headers (SIP or WebSocket)
  • user_id is sent as a dynamic variable to the agent
  • customer_name stays on the testing agent and is NOT sent over the wire
Use custom headers to pass authentication tokens, routing metadata, or infrastructure flags to your SIP or WebSocket endpoint. See the SIP integration guide and WebSocket integration guide for full details.

Using Test Profile Variables in Instructions

You can reference test profile fields directly in your evaluator instructions using template variables. This gives you precise control over which values appear in your instructions.

Template Syntax

Use the {{test_profile.field_name}} syntax to insert test profile values into your instructions: Dot notation for simple fields:
Dot notation for nested fields:
Bracket notation (useful for keys with spaces):

Example

Generic instructions:
With template variables:

How It Works

When a test runs, template variables are replaced with actual values from the test profile. For example, if your test profile contains:
The instructions become:
If a template variable references a field that doesn’t exist in the test profile, it will be replaced with an empty string. Make sure your test profile includes all fields you reference in your instructions.

When to Use Template Variables

Template variables are especially useful when:
  • You need the evaluator to provide exact values (like specific IDs or dates)
  • You’re testing multiple scenarios with different test profiles but the same instruction structure
  • You want to ensure consistency between your backend system and what the evaluator says

Best Practices

1. Synchronize Test Data

Ensure your test profile information matches exactly what exists in your backend system. Mismatches will cause verification failures.

2. Create Multiple Test Profiles

Build a library of test profiles for different scenarios:
  • Happy path scenarios (everything matches perfectly)
  • Edge cases (partial information, multiple matches)
  • Negative scenarios (wrong information, no matches)

3. Update Profiles Regularly

When your system’s data structure changes, update your test profiles accordingly. Outdated profiles lead to failed tests that don’t reflect real issues.

Example: E-commerce Support Agent

Scenario: Testing an AI agent that handles order returns Test Profile Setup:
Corresponding System Data: Create a test order in your e-commerce system with:
  • Order ID: ORD-2024-98765
  • Customer Email: sarah.j@email.com
  • Order Date: February 10, 2025
  • Status: Delivered
  • Items: Blue Sweater (Medium), Size: M, Price: $49.99
Evaluator Instructions: “Call to return the blue sweater from your recent order. Provide order number and email when asked. State that the size doesn’t fit and you’d like a refund.” Expected Outcome: “The agent successfully initiates a return, provides a return label, and confirms the refund timeline.”

Testing Without Test Profiles

For evaluators that don’t require identity verification or personalization, test profiles are optional. Examples include:
  • General information inquiries
  • FAQ testing
  • Menu navigation testing
  • Opening hours requests
In these cases, the evaluator’s instructions alone are sufficient to guide the conversation.