Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions main/config/navigation/customize.json
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,13 @@
"docs/customize/forms/configure-additional-signup-steps"
]
},
{
"group": "Experiment Center",
"pages": [
"docs/customize/experiment-center/experiment-center",
"docs/customize/experiment-center/get-started"
]
},
{
"group": "Rules",
"pages": [
Expand Down
84 changes: 84 additions & 0 deletions main/docs/customize/experiment-center/experiment-center.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: Experiment Center
description: Learn how to run A/B experiments on your Auth0 authentication flows to test changes on controlled traffic and measure impact.
sidebarTitle: Overview
---

<Callout icon="flask" color="#7549F2" iconType="regular">

Experiment Center is currently in Beta. This feature is available to select design partners only and is not supported for production use. To learn more about Auth0's product release cycle, read [Product Release Stages](/docs/troubleshoot/product-lifecycle/product-release-stages).

</Callout>

The Experiment Center lets you run controlled experiments on your Auth0 authentication flows. You define an experiment with variations, the engine assigns users to variations using deterministic hashing, and enriched auth events flow to your analytics tools for analysis.

Instead of deploying authentication changes to all users at once, you can test changes on a controlled percentage of traffic, measure the impact through enriched auth events, and promote winners with confidence.

## How it works

Experiment Center operates in three stages:

1. **Define:** Create a feature flag with configuration parameters and variations (control + treatment). Create an experiment that references the flag and specifies how traffic is allocated.

2. **Inject:** When an experiment is active, the engine resolves the experiment during each authentication transaction and injects the experiment context into your [ACUL components](/docs/customize/login-pages/advanced-customizations), [Actions](/docs/customize/actions), page templates, and [Forms](/docs/customize/forms). Your code branches on the assigned variation.

3. **Measure:** Auth events are automatically enriched with experiment metadata (experiment ID, variation ID, segment ID) and flow to tenant logs. You pull enriched data into your own analytics tools (Statsig, Amplitude, Snowflake, or any tool that consumes your log stream).

## Key concepts

| Concept | Description |
| --- | --- |
| Feature Flag | The control unit. Defines a named feature with typed configuration parameters and a baseline (default) state. |
| Variation | A treatment within a feature flag. Specifies which parameters differ from the baseline. An empty variation represents the unchanged control state. |
| Experiment | A measurement wrapper around a feature flag. Defines the traffic allocation strategy, assignment behavior, and lifecycle. |
| Segment | A reusable group of auth requests defined by rule-based membership criteria (device type, country, connection, client ID, etc.). |
| Allocation | How traffic is distributed across variations. Can be percentage-based (hash bucketing) or segment-based (deterministic routing by request properties). |

## What you can do at Beta

- Create and manage feature flags, variations, segments, and experiments via the [Management API](/docs/api/management/v2) and Auth0 CLI.
- Run percentage-based experiments (A/B split by traffic weight) or segment-based experiments (route specific groups to specific variations).
- Inject experiment context into ACUL components, Actions (post_login, pre_user_registration, post_user_registration), page templates, and Forms.
- Test experiments in staging using query parameter overrides on `/authorize`.
- Automatically enrich tenant log events with experiment metadata for analysis in your own tools.
- Manage the full experiment lifecycle: draft, active, paused, completed, archived.

## Beta limitations

<Callout icon="circle-info" color="#0EA5E9" iconType="regular">

The following limitations apply during Beta. These constraints will be relaxed in future releases.

</Callout>

- **One active experiment per tenant.** Only one experiment can be active at a time.
- **API-first only.** No dashboard UI for experiment management.
- **No external integrations.** Inbound read from Statsig or Split.io is not available.
- **No structured metrics.** Primary, secondary, and guardrail metric configuration is not available.
- **No in-app dashboards.** Analyze results in your own tools using enriched tenant log data.
- **Manual promotion.** When a variant wins, you update your tenant configuration manually and complete the experiment.
- **Customer-defined segments only.** Auth0-managed predefined segments are not available.
- **Single authentication flow.** Experiments run on the pre-authentication flow (login and signup) only.

## Runtime context shape

When an experiment is active, the following context is injected into ACUL, Actions, page templates, and Forms:

```typescript
interface ExperimentContext {
experiment_id: string; // The active experiment
variation_id: string; // The assigned variation
config: Record<string, { // Merged configuration (baseline + overrides)
value: unknown;
}>;
is_control: boolean; // Whether this is the control variation
}
```

The `config` field contains the fully merged result of the feature flag's baseline parameters combined with the assigned variation's overrides. Every parameter always has a value; you never need fallback logic in your code.

## Get started

Ready to run your first experiment? Follow the step-by-step API guide:

- [Get Started with the Experiment Center API](/docs/customize/experiment-center/get-started)
Loading
Loading