---
title: Manage flags
slug: feature-experimentation/docs/oxWA-manage-flags
docTags: 
createdAt: 2026-08-05T20:40:00.000Z
---

- Optimizely Feature Experimentation

Flags are the foundation of Optimizely Feature Experimentation. They give your team full control over how and when features reach your users, without requiring a code deployment. Whether you are gradually rolling out a new capability, running an A/B test, or targeting a specific audience segment, flags let you manage every step of the feature lifecycle.

## Flag rulesets and states

A ruleset is the collection of rules associated with a flag. See [New flag and rule lifecycle management FAQs](docId\:Bog7o25N6pDj3-2qpsVGn) for information.

Rulesets can be in one of the following states:

- **Draft** – The flag is created and not yet enabled.
- **Running** – The flag is enabled and running.
- **Paused** – The flag was previously turned on and now paused, with any rules not running or delivered to new users.

Each ruleset starts in **Draft** status and includes the flag's environment and rules

:::hint{type="info"}
When you create a flag, Feature Experimentation assigns you the **Admin** role for that flag through [granular permissions](docId\:VfzalP5Ep4rqE-gTd6p7m), so you can immediately manage the flag and share access with other collaborators. This prevents workflow disruptions where someone creates a flag but cannot update it or assign permissions afterward.
:::

Feature flags, also called feature toggles or permission toggles, let you turn certain functionality on and off without deploying code. They give you full control over the lifecycle of a feature. With feature flags, you can:

- Release code without exposing it to users by keeping the flag off.
- Gradually roll out a feature to a portion of your user base.
- Validate functionality and performance before a full release.

## Create a flag

Go to **Flags > Create New Flag**.

![](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/8YI9iiEgNwwZdskiJsTKB-20260720-145742.png)

1. Enter a unique name in the **Name** field. Feature Experimentation generates a flag **Key** from this name. Keys can contain alphanumeric characters, hyphens, and underscores; they are limited to 64 characters and cannot contain spaces. You cannot change a flag key after you create it.
2. (Optional) Enter a **Description**.
3. Select an **Owner** from the drop-down list.
4. (Optional) Select **Teams** from the drop-down list. To select multiple teams, first select a team then click on the drop-down list again to select another team. To remove a team, select it again. Select **None** to reset. See [Configure teams in Feature Experimentation](docId:4OlvMcsnIe7HXXPBMxFqJ).
5. (Conditional) Enter values for any custom fields your organization added in the Feature Experimentation settings. See [Custom fields in Feature Experimentation](docId\:FR469ek790vzzg2Pwpuev).
6. Click **Create Flag** to save your flag. Feature Experimentation automatically creates
   - A read-only `flag_off` variation to use as the control in experiments.
   - Two [environments](docId\:YpSOMYlWkUccLCL-uB-ZE), **Production** and **Development**.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/yYv8gwuVFlLPJl6_quMHh-20260720-145742.png" size="60" isUploading="false" darkWidth="1148" darkHeight="1180" width="1148" height="1180" showCaption="false"}

### Permissions required to create a flag

To create a flag in Feature Experimentation, you must have access to an environment in the project. When you create a flag, Feature Experimentation automatically assigns you the **Admin** role for that flag. To create a flag or audience, you must have **Editor** or above access in at least one environment.

If your project does not use granular permissions, the collaborator must have an **Editor** or above project role.

## Get test ideas with Optimizely Agent Platform

You can get potential test ideas with [Optimizely Agent Platform](docId\:IzAAN1fw7whD1HB4iODAB). Mark incorporates best practices developed within Optimizely to provide potential experiment ideas. Before generating test ideas, [Configure Feature Experimentation for Optimizely Agent Platform](docId\:ttsUwHVA7PytfZEdvOtiJ).

1. Click **Flags**.
2. Click **Get Test Ideas**. The Mark chat displays with the following message: **Please provide a website URL or image and I'll start my analysis!**

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/2KSINxp9wDycUQrtmUKpg-20260720-145742.png" size="100" isUploading="false" showCaption="false" indent="2" darkWidth="1946" darkHeight="928" width="1946" height="928"}

3. Enter the URL or upload an image, and then click **Submit** or press Enter.
4. Mark analyzes a screenshot of the provided URL or image and then provides some test ideas for improvement. Improvements can include clarity of the value proposition, call-to-action, readability, and so on. 

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/e44l-kTHs_rqWymbuLMIf-20260720-145742.png" size="60" isUploading="false" showCaption="false" indent="2" darkWidth="1206" darkHeight="1440" width="1206" height="1440"}

:::hint{type="info"}
**Note**

If you use Opti ID, administrators can turn off generative AI in the Opti ID Admin Center. See [Turn generative AI off across Optimizely applications](docId\:X5U0kKD2azV5cIdNqwGNj).
:::

## Start flag

1. Go to **Flags** and select your flag with a paused ruleset.
2. Select your environment.
3. Click **Run** on the **Ruleset**. 

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/XHcFmpX2CKcCGi5zEgSnu-20260720-145742.png" size="60" alt="0f85eb2-image-2.png" isUploading="false" showCaption="false" indent="2" darkWidth="1346" darkHeight="992" width="1346" height="992"}

## Pause flag

1. Go to **Flags** and select your flag with a running ruleset.
2. Select your environment.
3. Click **Pause** on the **Ruleset**. 

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/0pPNke6nM0xv5XMY8RSsD-20260720-145742.png" size="60" alt="6e82f8f-image.png" isUploading="false" showCaption="false" indent="2" darkWidth="1360" darkHeight="1158" width="1360" height="1158"}

## Archive flag

You can archive a flag to remove it from the list of flags. Archiving a flag also removes it from the [datafile](docId:3LmHm4b3kTxKBuoR93KN8).

:::hint{type="info"}
**Note**

Optimizely Feature Experimentation keeps your flag and rule data so you can unarchive the flag later.
:::

1. Go to **Flags**.
2. Click **More** **(...)** for the flag.
3. Click **Archive**. 

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/U9-k9kiqtmyIM8jdP1tv1-20260720-145742.png" size="100" alt="ccad5c7-image.png" isUploading="false" showCaption="false" indent="2" darkWidth="2004" darkHeight="614" width="2004" height="614"}

## Unarchive flag

1. Go to **Flags**.
2. Click the **Archived** drop-down list and select **Yes**.
3. Click **More** **(...)** for the flag you want to unarchive.
4. Click **Unarchive**. 

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/b-fjvx1XzxWBHz_mYBWPw-20260720-145742.png" size="100" alt="f02f85e-image.png" isUploading="false" showCaption="false" indent="2" darkWidth="2004" darkHeight="628" width="2004" height="628"}

## Duplicate flag

You can duplicate a flag to reuse its configuration when creating a similar flag. Duplication copies variables, targeting rules, environment default values, audiences, rollout settings, and the description from the source flag.

Duplication does not copy the flag key, experiment results, or change history.

You need **create flag** permissions to duplicate a flag.

1. Go to **Flags**.
2. Click **More options** (**...**) for the flag you want to duplicate and click **Duplicate flag**.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/P49XcNwUJUJ5G4Tzsaawc-20260720-145742.png" size="100" isUploading="false" showCaption="false" indent="2" darkWidth="1920" darkHeight="564" width="1920" height="564"}

3. In the **Duplicate flag** dialog, review and edit the following fields:
   - **Source Flag key** – Prefilled from the source flag. This is a read only field.
   - **Name** – Enter a unique name.
   - **Key** – Feature Experimentation generates a flag key from the name. You can edit it as needed. You cannot change a flag key after you create it.
   - **Description** – Prefilled from the source flag. Edit as needed.
4. Click **Duplicate flag**.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/wSgvnpRn2lZa3Ni0osTKo-20260720-145742.png" size="40" isUploading="false" showCaption="false" indent="2" darkWidth="619" darkHeight="658" width="619" height="658"}

## Delete flag

1. Go to **Flags**.
2. Click **More options** (**...**) for the flag.
3. Click **Delete**.

## Implement flag

See [Implement a feature flag](docId\:eH-UMm_rOn_GdGDGLV6__) section in the developer documentation for information on implementing the Feature Experimentation `decide` method to enable or disable a flag for a user in your application code.

## Update custom fields

1. Go to **Flags** and select your flag.
2. Go to **Settings**.
3. Update the **Custom Fields** for the flag.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/E-cYfaO34fQchy-1cm6vE-20260720-145742.png" size="70" isUploading="false" showCaption="false" indent="2" darkWidth="1384" darkHeight="1450" width="1384" height="1450"}

4. Click **Save**.

See [Custom fields in Feature Experimentation](docId\:FR469ek790vzzg2Pwpuev).

## Update owner and teams

1. Go to **Flags** and select your flag.
2. Go to **Settings**.
3. Select the Owner.
4. Search and add one or more Teams for the flag. See [Configure Teams in Feature Experimentation](docId\:RUb7wMNJQpJrnULmlclph).

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/ifenyZ34ZJ5o1EyhjNPAc-20260720-145742.png" size="70" isUploading="false" showCaption="false" indent="2" darkWidth="1372" darkHeight="1086" width="1372" height="1086"}

5. Click **Save**.
