Docs/Synthetic Users
#

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:

ConceptDescription
PersonaThe synthetic user's general identity or customer type, such as a power user, buyer, admin, or first-time visitor
GoalsWhat the synthetic user is trying to accomplish in your product
BackstoryThe 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.

Universe run overview showing run status and aggregated results

03Creating a universe

Create a universe when you want to define a shared context for a set of related synthetic users.

  1. Open Synthetic Users in your workspace.
  2. Click New universe.
  3. Enter the universe details that describe the customer environment you want to simulate.
  4. 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.

  1. Open a universe.
  2. Click Add synthetic user.
  3. Define the user's persona, goals, and backstory.
  4. Save your changes.
  5. 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.

Synthetic user editor with persona, goals, and backstory fields

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.

  1. Open Synthetic Users.
  2. Select a universe.
  3. Click Start run.
  4. 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.

Run detail page showing day-by-day progress for a synthetic user run

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.

Run detail page showing tabs for issues, knowledge, and other run details

Canceling and interpreting run status

Cancel a run when it is no longer useful to continue the simulation.

  1. Open the run detail page.
  2. Click Cancel run.
  3. Confirm the cancellation.

Use run status to understand the current state of a simulation.

StatusMeaning
In progressThe run is still active and Canary is continuing the simulation
CompletedThe run finished and you can review final issues, day-by-day results, and captured knowledge
CanceledThe run was stopped before completion
FailedThe 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.

  1. Open Synthetic Users.
  2. Select a universe.
  3. Open a run from the run list.
  4. Review the overall run summary, per-day results, and aggregated issues.
  5. 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.

Day results and shared knowledge shown for a synthetic user run

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:

ActionWhat it lets you do
Start a runBegin a new Synthetic Users run for a universe
Review a runRetrieve overall run results and aggregated findings
Inspect run detailsCheck per-day results, discovered knowledge, and related issues
Cancel a runStop 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