---
title: Events
---

## Overview

Events help you keep track of changes across your Unleash instance. You can explore events in [Event Log](#event-log) or using the global [Event Timeline](#event-timeline).

The Event Log provides a full list of all events, whereas the Event Timeline offers a highlight of recent key events and [Signals](/reference/signals) from external sources.
You can use Event Log for auditing purposes, while Event Timeline is particularly helpful for debugging recent changes and their impact.

## Event Log

The Event Log lists all events in your Unleash instance. You can search and filter events by date range, event type, project, feature flag, and user. You can also export events as CSV or JSON files.

To access events in the Admin UI, you need Admin access. To view all events, go to **Admin > Event log**. To view events for a specific feature flag, go to the **Event log** tab on that feature flag's page.

Each [event type](#event-types) contains different data, but all events follow the same schema:


| Field              | Type   | Description                                                       |
|--------------------|--------|-------------------------------------------------------------------|
| `id`*              | number | Unique identifier for the event; incremental whole number.        |
| `type`*            | string | Describes the type of event (e.g., `feature-strategy-update`).    |
| `createdAt`*       | string | Timestamp when the event was created; ISO 8601 format.            |
| `createdBy`*       | string | Email of the user who triggered the event.                        |
| `createdByUserId` | number | Unique identifier of the user who triggered the event.            |
| `data`             | object | Details about the event (e.g., feature strategy, API token data). |
| `preData`          | object | Previous state before the event.                                  |
| `tags`             | array  | Array of tags associated with the event.                          |
| `featureName`      | string | Name of the feature flag associated with the event.               |
| `project`          | string | Name of the project involved in the event.                        |
| `environment`      | string | Environment related to the event (e.g., `development`).           |
| `label`            | string | Brief description of the event.                                   |
| `summary`          | string | Markdown formatted summary of the event.                          |


Fields marked with an asterisk (*) are always returned in the event schema. Other fields may be optional or have null values, depending on the event type.

See the [feature-created event type](#feature-created) for an example event.

### IP address

:::note Availability

**Plan**: [Enterprise](https://www.getunleash.io/plans/enterprise) | **Version**: `6.9+`

:::

The IP address in events shows the IP address of the user who performed the action.

## Event Timeline

:::note Availability

**Plan**: [Enterprise](https://www.getunleash.io/plans/enterprise) | **Version**: `6.3+` in BETA

:::

Event Timeline highlights recent events across all your projects in one unified timeline. You can access the timeline from the top menu in the Admin UI.

![Event timeline in Unleash Admin UI](/img/event-timeline.png)

The timeline shows key events and signals for up to 48 hours per environment and is designed to help you get an overview of changes and quickly identify and debug any issues. You can switch between different time spans to focus on recent activity.
Although you can filter events by environment, the timeline also shows environment-agnostic events, such as archiving a feature flag.

You can enable or disable the timeline view at any time based on your preferences. Events that occur close together in time are automatically grouped, but hovering over an event group shows detailed information about the specific events.

## Event types

### Feature flag events

Events related to feature flags and their life cycle.

#### `feature-created`

Generated when you create a feature flag. The `data` property contains the details for the new feature flag.

```json
{
  "id": 27332,
  "type": "feature-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "name": "test-flag",
    "description": null,
    "type": "release",
    "project": "test-project",
    "stale": false,
    "createdAt": "2024-10-03T11:09:53.201Z",
    "lastSeenAt": null,
    "impressionData": false,
    "archivedAt": null,
    "archived": false
  },
  "preData": null,
  "tags": [],
  "featureName": "test-flag",
  "project": "test-project",
  "environment": null,
  "label": "Flag created",
  "summary": "**user@getunleash.io** created **test-flag** in ... "
}
```

#### `feature-deleted`

Generated when you delete a feature flag. The `preData` property contains the deleted feature flag data.

#### `feature-archived`

Generated when you archive a feature flag. `preData` and `data` are null.

#### `feature-revived`

Generated when you revive an archived feature flag. `preData` and `data` are null.

#### `feature-metadata-updated`

Generated when a feature flag's metadata, such as description, flag type, or impression data settings, are changed. The `data` property contains the new flag data. The `preData` property contains the flag's previous data.

#### `feature-project-change`

Generated when you move a feature flag from one project to another. The `data` property contains the names of the old and the new project.

```json
{
  "id": 27332,
  "type": "feature-project-change",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "newProject": "test-project",
    "oldProject": "old-test-project"
  },
  "preData": null,
  "tags": [],
  "featureName": "test-flag",
  "project": "test-project",
  "environment": null,
  "label": "Flag moved to a new project",
  "summary": "**user@getunleash.io** moved **test-flag** from ... "
}
```

#### `feature-import`

Generated when you import a feature flag as part of an import process. The `data` property contains the feature flag data. See [feature-created](#feature-created) for an example.

#### `feature-tagged`

Generated when you add a tag to a feature flag. The `data` property contains the new tag.

```json
{
  "id": 27333,
  "type": "feature-tagged",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "type": "simple",
    "value": "tag2"
  },
  "preData": null,
  "tags": [
    {
      "type": "simple",
      "value": "tag2"
    }
  ],
  "featureName": "test-flag",
  "project": "test-project",
  "environment": null,
  "label": "Flag tagged",
  "summary": "**user@getunleash.io** tagged **test-flag** with ... "
}
```

#### `feature-untagged`

Generated when you remove a tag from a feature flag. The `data` property contains the tag that was removed. See [feature-tagged](#feature-tagged) for an example.

#### `feature-tag-import`

Generated when you import a tagged feature flag as part of an import job. The `data` property contains the name of the feature and the tag.

```json
{
  "id": 27334,
  "type": "feature-tag-import",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "featureName": "new-feature",
    "tag": {
      "type": "simple",
      "value": "tag1"
    }
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": null,
  "summary": null
}
```

#### `feature-strategy-add`

Generated when you add a strategy to a feature flag. The `data` property contains the configuration for the new strategy.

```json
{
  "id": 27335,
  "type": "feature-strategy-add",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "id": "3f4bf713-696c-43a4-8ce7-d6c607108858",
    "name": "flexibleRollout",
    "title": null,
    "disabled": false,
    "parameters": {
      "groupId": "new-feature",
      "rollout": "67",
      "stickiness": "default"
    },
    "variants": [],
    "sortOrder": 0,
    "segments": []
  },
  "preData": null,
  "tags": [],
  "featureName": "new-feature",
  "project": "my-other-project",
  "environment": "default",
  "label": "Flag strategy added",
  "summary": "**user@getunleash.io** added strategy"
}
```

#### `feature-strategy-update`

Generated when you update a feature flag strategy. The `data` property contains the new strategy configuration. The `preData` property contains the previous strategy configuration.

#### `feature-strategy-remove`

Generated when you remove a strategy from a feature flag. The `preData` contains the configuration of the strategy that was removed.


#### `feature-stale-on`

Generated when you mark a feature flag as stale. `preData` and `data` are null.

#### `feature-stale-off`

Generated when you mark a stale feature flag as no longer stale. `preData` and `data` are null.

#### `feature-environment-enabled`

Generated when you enable an environment for a feature flag. The `environment` property contains the name of the environment, `preData` and `data` are null.

#### `feature-environment-disabled`

Generated when you disable an environment for a feature. The `environment` property contains the name of the environment. `preData` and `data` are null.

#### `drop-features`

Generated when you delete existing features as part of an import job. The `data.name` property is `"all-features"`.

```json
{
  "id": 27336,
  "type": "drop-features",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "name": "all-features"
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null
}
```

#### `drop-feature-tags`

Generated when you drop all existing tags as part of a configuration import. The `data.name` is `"all-feature-tags"`. See [drop-features](#drop-features) for an example.

#### `feature-potentially-stale-on`

Generated when Unleash marks a feature flag as potentially stale due to exceeding the expected lifetime of its [feature flag type](/reference/feature-toggles#feature-flag-types). `preData` and `data` are null.

#### `feature-updated`

:::caution Deprecated functionality

Deprecated in Unleash 4.3. Use more granular events, such as `feature-strategy-update`, instead.

:::

### Strategy events

#### `strategy-created`

Generated when you create a strategy. The `data` property contains the strategy configuration.

```json
{
  "id": 273357,
  "type": "strategy-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "name": "new-strategy",
    "description": "this strategy does ...",
    "parameters": [],
    "editable": true,
    "deprecated": false
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "strategy-created",
  "summary": "**user@getunleash.io** triggered **strategy-created**"
}
```

#### `strategy-updated`

Generated when you change a strategy's configuration. The `data` property contains the new strategy configuration. See [strategy-created](#strategy-created) for an example.

#### `strategy-deleted`

Generated when you delete a strategy. The `data` property contains the name of the deleted strategy, `preData` is null.

#### `strategy-deprecated`

Generated when you deprecate a strategy. The `data` property contains the name of the deprecated strategy, `preData` is null.

#### `strategy-reactivated`

Generated when you reactivate a deprecated strategy. The `data` property contains the name of the reactivated strategy, `preData` is null.

#### `strategy-import`

Generated when you import a strategy as part of an import job. The `data` property contains the strategy's configuration, `preData` is null. See [strategy-created](#strategy-created) for an example.

#### `drop-strategies`

Generated when you delete existing strategies as part of an import job. The `data.name` property is `"all-strategies"`.

```json
{
  "id": 27338,
  "type": "drop-strategies",
  "createdBy": "import-API-token",
  "createdAt": "2022-06-03T11:30:40.579Z",
  "data": {
    "name": "all-strategies"
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null
}
```

### Context field events

#### `context-field-created`

Generated when you create a context field. The `data` property contains the context field configuration.

```json
{
  "id": 27339,
  "type": "context-field-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "name": "new-context-field",
    "description": "this context field is for describing events",
    "legalValues": [],
    "stickiness": false
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "Context field created",
  "summary": "**user@getunleash.io** created context field **new-context-field**"
}
```

#### `context-field-updated`

Generated when you update a context field. The `data` property contains the new context field configuration. See [context-field-created](#context-field-created) for an example.

#### `context-field-deleted`

Generated when you delete a context field. The `data` property contains the name of the deleted context field.

### Project events

#### `project-created`

Generated when you create a project. The `data` property contains the project configuration.

```json
{
  "id": 27340,
  "type": "project-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "id": "my-other-project",
    "name": "my other project",
    "description": "a project for important work",
    "defaultStickiness": "default",
    "mode": "private",
    "changeRequestEnvironments": []
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": "my-other-project",
  "environment": null,
  "label": "Project created",
  "summary": "**user@getunleash.io** created project **my-other-project** ..."
}
```

#### `project-updated`

Generated when you update a project's configuration. The `data` property contains the new project configuration. The `preData` property contains the previous project configuration.

#### `project-deleted`

Generated when you delete a project. The `project` property contains the name of the deleted project.

#### `project-import`

Generated when you import a project. The `data` property contains the project's configuration details. See [project-created](#project-created) for an example.

#### `drop-projects`

Generated when you delete existing projects as part of an import job. The `data.name` property is `"all-projects"`.

### Tag events

#### `tag-created`

Generated when you create a new tag. The `data` property contains the tag that was created.

```json
{
  "id": 27341,
  "type": "tag-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "type": "6.1.0",
    "value": "release"
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "tag-created",
  "summary": "**user@getunleash.io** triggered **tag-created**"
}
```

#### `tag-deleted`

Generated when you delete a tag. The `data` property contains the tag that was deleted. See [tag-created](#tag-created) for an example.

#### `tag-import`

Generated when you import a tag as part of an import job. The `data` property contains the imported tag.  See [tag-created](#tag-created) for an example.

#### `drop-tags`

Generated when you delete existing tags as part of an import job. The `data.name` property is `"all-tags"`.

```json
{
  "id": 27342,
  "type": "drop-tags",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "name": "all-tags"
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "drop-tags",
  "summary": "**user@getunleash.io** triggered **drop-tags**"
}
```

### Tag type events

#### `tag-type-created`

Generated when you create a new tag type. The `data` property contains the tag type configuration.

```json
{
  "id": 27343,
  "type": "tag-type-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "name": "new-tag-type",
    "description": "event testing"
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "tag-type-created",
  "summary": "**user@getunleash.io** triggered **tag-type-created**"
}
```

#### `tag-type-updated`

Generated when you update a tag type. The `data` property contains the new tag type configuration. See [tag-type-created](#tag-type-created) for an example.

#### `tag-type-deleted`

Generated when you delete a tag type. The `data` property contains the name of the deleted tag type.

#### `tag-type-import`

Generated when you import a tag type as part of an import job. The `data` property contains the imported tag. See [tag-type-created](#tag-type-created) for an example.

#### `drop-tag-types`

Generated when you drop all existing tag types as part of a configuration import. The `data.name` property is `"all-tag-types"`.

### Integration events

#### `addon-config-created`

Generated when you create an integration configuration. The `data` property contains the provider type.

```json
{
  "id": 27343,
  "type": "addon-config-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "id": 14,
    "provider": "webhook",
    "enabled": true,
    "description": "Test Webhooks",
    "events": [
      "feature-updated"
    ],
    "projects": [
      "test-project"
    ],
    "environments": [
      "production"
    ]
  },  
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "Integration configuration created",
  "summary": "**user@getunleash.io** created a new **webhook** integration configuration"
}
```

#### `addon-config-updated`

Generated when you update an integration configuration. The `data` property contains the `id` and `provider` of the integration.


#### `addon-config-deleted`

Generated when you delete an integration configuration. The `data` property contains the `id` of the integration.

### User events

#### `user-created`

Generated when you create a new user. The `data` property contains the user's information.

```json
{
  "id": 27344,
  "type": "user-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "id": 111,
    "name": "New User Name",
    "email": "newuser@getunleash.io",
    "rootRole": 2
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null,
  "label": "User created",
  "summary": "**user@getunleash.io** created user **New User Name**"
}
```

#### `user-updated`

Generated when you update a user. The `data` property contains the updated user information; the `preData` property contains the previous state of the user's information.


#### `user-deleted`

Generated when you delete a user. The `preData` property contains the deleted user's information.

### Environment events

#### `environment-import`

Generated when you import an environment as part of an import job. The `data` property contains the configuration of the imported environment.

```json
{
  "id": 27345,
  "type": "environment-import",
  "createdBy": "import-API-token",
  "createdAt": "2022-06-03T11:30:40.557Z",
  "data": {
    "name": "custom-environment",
    "type": "test",
    "sortOrder": 9999,
    "enabled": true,
    "protected": false
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": null,
  "environment": null
}
```

#### `drop-environments`

Generated when you delete existing environments as part of an import job. The `data.name` property is `"all-environments"`.


### Segment events

#### `segment-created`

Generated when you create a segment. The `data` property contains the newly created segment.

```json
{
  "id": 27346,
  "type": "segment-created",
  "createdBy": "user@getunleash.io",
  "createdAt": "2024-10-03T11:09:53.225Z",
  "createdByUserId": 110,
  "data": {
    "id": 5,
    "name": "new segment",
    "description": "this segment is for events",
    "project": "development",
    "constraints": [
      {
        "values": ["appA", "appB", "appC"],
        "inverted": false,
        "operator": "IN",
        "contextName": "appName",
        "caseInsensitive": false
      }
    ],
    "createdBy": "user@getunleash.io",
    "createdAt": "2024-10-03T11:09:53.225Z"
  },
  "preData": null,
  "tags": [],
  "featureName": null,
  "project": "development",
  "environment": null,
  "label": "Segment created",
  "summary": "**user@getunleash.io** created segment **new segment**"
}
```

#### `segment-updated`

Generated when you update a segment's configuration. The `data` property contains the new segment configuration; the `preData` property contains the previous segment configuration.


#### `segment-deleted`

Generated when you delete a segment. `preData` property contains the deleted segment.
