Synthetic Users
export const meta = { title: 'Synthetic Users', description: 'Create AI-generated universes and synthetic users with realistic personas, goals, and backstories to simulate customer behavior in your QA workflows.', tags: ['reference'], };
This feature is behind a feature flag and is hidden until it becomes generally available.
Synthetic Users let you model realistic customer behavior in Canary by creating AI-generated universes and populating them with synthetic users. Use them to give your QA workflows richer context, broader coverage, and more realistic variation than a single static test account can provide.
01When to use Synthetic Users
Use Synthetic Users when you want your workflows to reflect how different kinds of customers actually behave in your product. This is especially useful when your app supports multiple roles, life stages, motivations, or usage patterns that are hard to represent with one shared test user.
Synthetic Users are a good fit when you want to:
- Simulate multiple customer segments in the same product area
- Test flows that depend on user intent, preferences, or background
- Explore edge cases created by different goals or behaviors
- Add more realistic context to regression and exploratory QA runs
- Organize user simulations around a specific market, product line, or scenario
- Run multi-day simulations that let synthetic users return over time and build familiarity with your product
- Track shared app knowledge and feature coverage across sessions in the same universe
- Start and manage dedicated runs when you want to monitor progress, review issues, and inspect captured knowledge over time
02Core concepts
Synthetic Users are organized around a small set of concepts. Understanding these terms helps you structure realistic simulations and keep your workspace easy to manage.
Universes
A universe is the top-level container for a synthetic user simulation. It defines the broader setting in which your synthetic users exist, such as a type of business, customer environment, or product scenario.
Create separate universes when you want to model meaningfully different contexts. For example, you might use one universe for small-business customers and another for enterprise buyers, or one for first-time users and another for long-term subscribers.
A universe also keeps shared run knowledge in one place. As synthetic users explore your app across multiple sessions and days, Canary uses that shared context to help future runs revisit stale areas, avoid repeating the same narrow paths, and expand coverage over time.
Synthetic users
A synthetic user is an AI-generated customer profile that belongs to a universe. Each synthetic user represents a realistic person you can use in QA workflows to simulate how someone with a specific perspective or need might interact with your app.
Use synthetic users to expand coverage beyond role-based test accounts. Instead of testing only whether a flow works, you can test whether it works for different kinds of customers with different expectations and behaviors.
Personas, goals, and backstories
Each synthetic user is shaped by three core ingredients:
| Concept | Description |
|---|---|
| Persona | The synthetic user's general identity or customer type, such as a power user, buyer, admin, or first-time visitor |
| Goals | What the synthetic user is trying to accomplish in your product |
| Backstory | The context that explains why the user behaves the way they do, including motivations, constraints, and past experience |
Use these details together to create users that feel believable and distinct. The more clearly each synthetic user differs from others in the same universe, the easier it is to test realistic variation across workflows.
Runs
A run is a Synthetic Users execution for a universe. Runs can span multiple days, letting synthetic users return over time instead of behaving like isolated one-time sessions.
Use runs when you want to understand how product experience changes over repeated use. Each run can capture per-day progress, discovered issues, workflow notes, mood, next-step planning, discovered pages, and the knowledge gathered across the universe.

03Creating a universe
Create a universe when you want to define a shared context for a set of related synthetic users.
- Open Synthetic Users in your workspace.
- Click New universe.
- Enter the universe details that describe the customer environment you want to simulate.
- Review the setup and click Save.
Create a new universe when the customer context changes in a meaningful way. If the users share the same market, product context, or scenario, keep them in one universe so they are easier to manage together.
04Adding and managing synthetic users
After you create a universe, add synthetic users that represent the customer types you want to test.
- Open a universe.
- Click Add synthetic user.
- Define the user's persona, goals, and backstory.
- Save your changes.
- Repeat for each customer type you want to simulate.
Review synthetic users regularly and update them as your product, audience, or test priorities change. Remove overlapping users, refine unclear goals, and keep backstories specific enough to produce meaningful differences in behavior.

05How synthetic users are used in QA workflows
Use synthetic users to give your QA workflows a more realistic customer lens. They help you evaluate whether a workflow works across different user motivations, not just whether the UI completes the expected steps.
For example, you can use synthetic users to:
- Exercise the same workflow against different customer types
- Validate that onboarding, setup, or purchase flows make sense for different goals
- Compare how role, urgency, or experience level changes expected behavior
- Build richer exploratory testing scenarios around realistic customer narratives
- Run multi-day explorations that reveal how product quality changes as users return over time
- Review shared knowledge and coverage to find product areas that need more exploration
Synthetic Users work well alongside other Canary QA capabilities. Pair them with workflows, pages, and release review processes to understand not only what changed, but who that change may affect.
06Run synthetic user simulations
Run a universe when you want to see how its synthetic users explore your product over time. Start runs from the universe, then use the run detail page to follow progress, review issues, and inspect captured knowledge after completion.
Starting a run from a universe
Start a run from a universe when you are ready to simulate that set of synthetic users.
- Open Synthetic Users.
- Select a universe.
- Click Start run.
- Confirm the run details and start the run.
After the run starts, open it from the universe run list to monitor progress in a dedicated run detail page.
Monitoring day-by-day progress
Use the run detail page to follow how the simulation develops across days. Review each day to see what synthetic users explored, what changed, and whether the run is still progressing as expected.

Reviewing run issues
Open the run detail page and review the issues section to see what the run surfaced. Use this view to identify problems that appeared during the simulation and decide which findings need follow-up.
Viewing captured knowledge
After a run completes, use the knowledge view in the run detail page to review what synthetic users learned about your product. Inspect captured knowledge to understand which areas were explored and what context is now available for future runs in the same universe.

Canceling and interpreting run status
Cancel a run when it is no longer useful to continue the simulation.
- Open the run detail page.
- Click Cancel run.
- Confirm the cancellation.
Use run status to understand the current state of a simulation.
| Status | Meaning |
|---|---|
| In progress | The run is still active and Canary is continuing the simulation |
| Completed | The run finished and you can review final issues, day-by-day results, and captured knowledge |
| Canceled | The run was stopped before completion |
| Failed | The run did not complete successfully |
07Reviewing runs and results
Review a run when you want to understand what synthetic users explored, what they learned, and what issues they found over time.
- Open Synthetic Users.
- Select a universe.
- Open a run from the run list.
- Review the overall run summary, per-day results, and aggregated issues.
- Inspect discovered pages, workflow notes, mood, next-step planning, and shared knowledge.
Use the run view to compare how exploration changes day by day. This helps you see whether synthetic users are learning new parts of the app, revisiting stale areas, or surfacing recurring issues that need follow-up.

08Run actions and APIs
Use Synthetic User run APIs when you want to automate how runs are managed from your existing QA process.
You can use the available run actions to:
| Action | What it lets you do |
|---|---|
| Start a run | Begin a new Synthetic Users run for a universe |
| Review a run | Retrieve overall run results and aggregated findings |
| Inspect run details | Check per-day results, discovered knowledge, and related issues |
| Cancel a run | Stop an in-progress run that you no longer want to continue |
Use these APIs when you want to trigger runs from another system, check run status programmatically, or pull run results into your release review workflow. Keep the universe structure and synthetic users up to date so automated runs continue to reflect realistic customer behavior.
09Best practices
Keep your Synthetic Users library focused and intentional.
- Create universes around major customer contexts, not minor variations
- Make each synthetic user distinct enough to justify its own testing perspective
- Write goals in terms of outcomes the customer wants to achieve
- Use backstories to explain behavior, constraints, and priorities
- Review synthetic users when releases introduce new journeys, roles, or product areas
- Avoid duplicating many nearly identical users that add noise without improving coverage
- Use multi-day runs when you want realistic repeated usage instead of one-time exploration
- Review shared knowledge and coverage regularly so future runs keep exploring meaningful gaps
- Check end-of-day reporting for mood, notes, discovered pages, and next steps before planning follow-up work