Personas and Scenarios
Define synthetic user behavior and the actions each test should exercise.
Personas describe who the synthetic user is and how they behave. Scenarios describe what that user should attempt during the interaction. A run combines one persona, one scenario, one connection, and one mode.
Personas
A persona influences language, tone, interruptions, speaking speed, profile context, and optional audio conditions.
Create a persona manually
Open NovaSynth > Personas and create a persona. The current form supports:
| Field | Purpose |
|---|---|
| Name | Required display name |
| Description | Internal summary of the user behavior |
| Interruptions | Frequency with which the synthetic user interrupts |
| Speaking speed | Voice speed from 0.7 to 1.2 |
| Background noise | Optional ambient condition and level |
| Tone | Preferred communication style |
| Age, occupation, and gender | Optional profile context |
Review a generated or manual persona before running it. Demographic values should serve a test objective rather than become unexplained variation.
Generate personas
AI generation is asynchronous:
- choose Generate with AI
- describe the callers and behaviors needed
- select a count
- start generation
- wait while the job moves through pending and running states
- review the completed personas or inspect a failed job
The project system prompt and optional instructions guide generation. Generation can finish as completed, failed, or cancelled; the current UI polls the job until it reaches a terminal state.
The shared library page is not currently available for normal selection, so create or generate project personas directly.
Scenarios
A scenario defines actions the synthetic user should attempt and optional conditions that control when an action applies.
Create a scenario manually
Open NovaSynth > Scenarios and create a scenario with:
| Field | Purpose |
|---|---|
| Name | Required display name |
| Description | Test intent and expected situation |
| Interruptions | Optional scenario-level behavior override |
| Events | Actions and optional conditions |
| Tags | Labels for organizing coverage |
Each event has a unique ID, an action, an optional parent event, and an optional condition. There is no fixed event property. Do not design a scenario around fixed-step behavior that the current contract does not store.
Write actions as user intent rather than a rigid transcript. Conditions can branch behavior based on what happened earlier in the conversation.
Generate scenarios
Scenario generation is also asynchronous. Supply instructions and a count, then review the resulting actions and conditions when the generation job completes.
Useful generation instructions specify:
- the product or domain
- happy paths and expected objections
- out-of-scope and adversarial behavior
- termination conditions
- language and compliance constraints
Build a coverage set
Keep personas and scenarios orthogonal:
- personas vary communication style, language, and user context
- scenarios vary goals, workflows, edge cases, and failure conditions
This makes matrix failures easier to interpret. If one scenario fails across personas, investigate the workflow. If one persona fails across scenarios, investigate language, timing, or interaction behavior.
Continue with runs and results to select explicit pairs or a persona-scenario combination set.
