---
title: Feature Flags
sidebar_position: 1
sidebar_custom_props:
  icon: TbFlag
---

Feature flags are used to hide experimental features. For twenty they are set on workspace level and not on a user level.

## Adding a new feature flag

In `FeatureFlagKey.ts` add the feature flag:

```ts
type FeatureFlagKey =
  | 'IS_FEATURENAME_ENABLED'
  | ...;
```

Also add it to the enum in `feature-flag.entity.ts`:

```ts
enum FeatureFlagKeys {
    IsFeatureNameEnabled = 'IS_FEATURENAME_ENABLED',
    ...
}
```



To apply a feature flag on a **backend** feature use:

```ts
@Gate({
  featureFlag: 'IS_FEATURENAME_ENABLED',
})
```

To apply a feature flag on a **frontend** feature use:

```ts
const isFeatureNameEnabled = useIsFeatureEnabled('IS_FEATURENAME_ENABLED');
```


## Configure feature flags for the deployment

Change the corresponding record in the Table `core.featureFlag`:

| id       | key                      | workspaceId   | value  |
|----------|--------------------------|---------------|--------|
|  Random  | `IS_FEATURENAME_ENABLED` |  WorkspaceID  | `true` |
