Skip to content
Merged
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

# [Flagsmith](https://flagsmith.com/) is an Open-Source Feature Flagging Tool to Ship Faster & Control Releases

Change the way your team releases software. Roll out, segment, and optimise—with granular control. Stay secure with on-premise and private cloud hosting.
Change the way your team releases software. Roll out, segment, and optimise—with granular control. Stay secure with on-premise and private cloud hosting.

* Feature flags: Release features behind the safety of a feature flag
* Make changes remotely: Easily toggle individual features on and off, and make changes without deploying new code
Expand Down
4 changes: 4 additions & 0 deletions docs/docs/third-party-integrations/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"label": "Third-Party Integrations",
"position": 80
}
4 changes: 4 additions & 0 deletions docs/docs/third-party-integrations/analytics/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"label": "Analytics",
"position": 10
}
12 changes: 12 additions & 0 deletions docs/docs/third-party-integrations/analytics/adobe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Adobe Analytics Integration
sidebar_label: Adobe Analytics
hide_title: true
---

![Adobe](/img/integrations/adobe/adobe-logo.svg)

Flagsmith does not currently support integrating with Adobe Analytics, but we are eager to build this integration based
on your requirements.
<a class="open-chat" data-crisp-chat-message="Hello, I'm interested in integrating with Adobe Analytics. ">Contact
us</a> if you are interested in this or any other integrations.
52 changes: 52 additions & 0 deletions docs/docs/third-party-integrations/analytics/amplitude.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: Amplitude Integration
sidebar_label: Amplitude
hide_title: true
---

![Amplitude](/img/integrations/amplitude/amplitude-logo.svg)

You can integrate Flagsmith with Amplitude. You can automate AB tests by connecting the Flagsmith platform with
Amplitude. The process is as follows:

## Integration Setup

1. Get the Amplitude API key for your Amplitude project from the Amplitude Project page (Settings > Projects > Your
Project > General tab)
2. Add the Amplitude API key into Flagsmith (Integrations > Add Amplitude Integration)
3. Set the Base URL relevant to your Amplitude project: `https://api2.amplitude.com` or `https://api.eu.amplitude.com`
depending on whether you are using the US or EU region. Do _not_ include a trailing slash - copy and paste the urls
as they appear here.
4. All API calls generated by the Flagsmith SDK to the `Get Identity Flags` endpoint will send a full set of flag
evaluations for that particular user to the Amplitude
[`Identify` endpoint](https://developers.amplitude.com/docs/identify-api)

## How it Works

:::tip

For flags that contain remote config values, Flagsmith will pass the value of the flag to Amplitude if the flag is
`enabled`. If the flag has no remote config value, Flagsmith will just pass the boolean state for the flag.

:::

Identity flag values are passed into Amplitude. If we make the call to the Flagsmith API to get the flags for an identity:

```bash
curl 'https://edge.api.flagsmith.com/api/v1/identities/?identifier=development_user_123456' \
-H 'X-Environment-Key: 8KzETdDeMY7xkqkSkY3Gsg'
```

And then take a look in our Amplitude dashboard, you can see the user and the flag data that has been sent to the
Amplitude platform.

![Amplitude](/img/integrations/amplitude/amplitude-integration-1.png)

## Use Case

Once the integration has been set up, you can start segmenting your Amplitude identities based on the flags that they
saw. This means you can run AB tests driven by Flagsmith segments, and have the data show up automatically in Amplitude.

## Integration Notes

You have to identify users on both platforms in the same way. The Flagsmith `Identity ID` must be the same as the Amplitude `user_id`.
75 changes: 75 additions & 0 deletions docs/docs/third-party-integrations/analytics/heap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: Heap Analytics Integration
sidebar_label: Heap
hide_title: true
---

![Heap Analytics](/img/integrations/heap/heap-logo.svg)

You can integrate Flagsmith with Heap Analytics. The integration automatically sends the flag states for identified
users into Heap for cohort analysis, A/B testing and more. The process is as follows:

## Integration Setup

1. Get the Heap Project Environment ID for your Heap project from the Heap Manage Project page (Account > Manage >
Projects > Environment > Get ID)
2. Add the ID key into Flagsmith (Integrations > Add Heap Integration)
3. All API calls generated by the Flagsmith SDK to the `Get Identity Flags` endpoint will send the a full set of flag
evaluations for that particular user to Heap as an [`Event`](https://developers.heap.io/reference#track-1)

## How it Works

:::tip

For flags that contain remote config values, Flagsmith will pass the value of the flag to Heap if the flag is `enabled`.

If the flag has no remote config value, Flagsmith will just pass the boolean state for the flag.

:::

Identity flag values are passed into Heap. If we make the call to the Flagsmith API to get the flags for an identity.

```bash
curl 'https://edge.api.flagsmith.com/api/v1/identities/?identifier=development_user_123456' \
-H 'X-Environment-Key: 8KzETdDeMY7xkqkSkY3Gsg'
```

And then take a look in our Heap dashboard, you can see the user and the flag data that has been sent to the Heap
platform.

![Heap Analytics](/img/integrations/heap/heap-integration-1.png)

## Use Case

Once the integration has been set up, you can start segmenting your Heap identities based on the flags that they saw.

This means you can run AB tests driven by Flagsmith segments, and have the data show up automatically in Heap.

## Running Multivariate Tests with Heap and Flagsmith

Once your integration has been set up and has been running for a few days, you will see flag values appear in Heap as
"Custom Event Properties" as child properties of the "Flagsmith Feature Flags" event. Here's how you can see the
effectiveness of a flag being enabled. We're going to use an example of our own platform, where people can toggle the
"Dark Mode" flag within our application on and off.

### Step 1 - Create a Custom Event Definition

In Heap, go to Definitions > New Definition > New Event. Set up your event similar to the below:

![Heap Analytics Step 1](/img/integrations/heap/heap-mv-step-1.png)

### Step 2 - Create a Segment based on this new Custom Event Property

In Heap, go to Definitions > New Definition > New Segment. Set up your segment similar to the below:

![Heap Analytics Step 2](/img/integrations/heap/heap-mv-step-2.png)

### Step 3 - Create your Report

Once you have your segment created, based on a Flagsmith feature flag value, you can use that segment in reports within Heap. Here's an example of us seeing what the conversion rate of a dark mode vs non-dark mode user looks like. Notice the "Group Analysis - Conversion Rate" at the bottom of the page.

![Heap Analytics Step 3](/img/integrations/heap/heap-mv-step-3.png)

## Integration Notes

You have to identify users on both platforms in the same way. The Flagsmith `Identity ID` must be the same as the Heap `identity`.
84 changes: 84 additions & 0 deletions docs/docs/third-party-integrations/analytics/mixpanel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: Mixpanel Analytics Integration
description: Integrate Flagsmith with Mixpanel
sidebar_label: Mixpanel
hide_title: true
---

![Mixpanel](/img/integrations/mixpanel/mixpanel-logo.svg)

You can integrate Flagsmith with Mixpanel. The integration automatically sends the flag states for identified users into
Mixpanel for cohort analysis, A/B testing and more. The process is as follows:

## Integration Setup

1. Get the Mixpanel Project Environment ID for your Mixpanel project from the Mixpanel Manage Project page (Project
Settings > Project Token)
2. Add the Project Token into Flagsmith (Integrations > Add Mixpanel Integration)
3. All API calls generated by the Flagsmith SDK to the `Get Identity Flags` endpoint will send the a full set of flag evaluations for that particular user to Mixpanel as a [`User Profile`](https://developer.mixpanel.com/reference/user-profiles)

## How it Works

:::tip

For flags that contain remote config values, Flagsmith will pass the value of the flag to Mixpanel if the flag is
`enabled`. If the flag has no remote config value, Flagsmith will just pass the boolean state for the flag.

:::

Identity flag values are passed into Mixpanel. If we make the call to the Flagsmith API to get the flags for an identity:

```bash
curl 'https://edge.api.flagsmith.com/api/v1/identities/?identifier=development_user_123456' \
-H 'X-Environment-Key: 8KzETdDeMY7xkqkSkY3Gsg'
```

And then take a look in our Mixpanel dashboard, you can see the user and the flag data that has been sent to the
Mixpanel platform.

![Mixpanel](/img/integrations/mixpanel/mixpanel-integration-1.png)

## Use Case

Once the integration has been set up, you can start segmenting your Mixpanel identities based on the flags that they
saw. This means you can run AB tests driven by Flagsmith segments, and have the data show up automatically in Mixpanel.

## Integration Notes

You have to identify users on both platforms in the same way. The Flagsmith `Identity ID` must be the same as the
Mixpanel `identity`.

## How It Works Under The Hood

Every time an identity requests their flags from the Flagsmith API, Flagsmith will send a `POST` to
`https://api.mixpanel.com/engage#profile-set` with the following JSON payload:

```json
{
"$token": "<YOUR_MIXPANEL_PROJECT_TOKEN>",
"$distinct_id": "<FLAGSMITH_IDENTITY_ID>",
"$set": {
"<FLAG_1_ID>": "<FLAG_1_STATE>",
"<FLAG_2_ID>": "<FLAG_2_STATE>",
"...": "..."
}
}
```

## Getting Mixpanel Cohorts into Flagsmith

If you want to control Flagsmith flags based on cohorts in Mixpanel, you will need to send cohort data from Mixpanel
into Flagsmith. There is no way currently of automating this process from the Mixpanel side, but you can send cohort
data from Mixpanel into Flagsmith, using [Mixpanel Webhooks](https://developer.mixpanel.com/docs/cohort-webhooks). The
flow looks like this:

Identity cohort changes in Mixpanel -> Triggers Mixpanel Webhook -> Hits endpoint on your infrastructure -> You trigger
a request to Flagsmith to set traits

This Webhook will be triggered by Mixpanel as identities/users enter or leave Mixpanel cohorts. We can use this trigger
to copy the relevant data from Mixpanel into Flagsmith.

Set up a webhook that accepts Mixpanel cohort data as described
[here](https://developer.mixpanel.com/docs/cohort-webhooks), then write the cohorts as traits within the relevant
identities. You can send trait data either using our SDKs or with a REST query as defined in our
[API docs](/edge-api/identify-user).
55 changes: 55 additions & 0 deletions docs/docs/third-party-integrations/analytics/rudderstack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: RudderStack Integration
description: Integrate Flagsmith with RudderStack
sidebar_label: RudderStack
hide_title: true
---

![RudderStack](/img/integrations/rudderstack/rudderstack-logo.svg)

You can integrate Flagsmith with RudderStack. Send your identity flag states into RudderStack for further downstream
analysis.

## Integration Setup

1. Get the RudderStack API key for your RudderStack project. Add an _HTTP API_ source, and make a note of the
`Write Key`.
2. Make a note of the RudderStack _Data Plane URL_.
3. Go to your Flagsmith project, and click Integrations. Add the RudderStack Integration.
4. Paste the `Write Key` from step 1 into the API Key field in Flagsmith. Select the Flagsmith environment that you want
to send events from. Then hit Save.
5. All API calls generated by the Flagsmith SDK to the `Get Identity Flags` endpoint will send the a full set of flag
evaluations for that particular user to RudderStack.

## How it Works

:::tip

For flags that contain remote config values, Flagsmith will pass the value of the flag to RudderStack if the flag is
`enabled`. If the flag has no remote config value, Flagsmith will just pass the boolean state for the flag.

:::

Identity flag values are passed into RudderStack. If we make the call to the Flagsmith API to get the flags for an
identity:

```bash
curl 'https://edge.api.flagsmith.com/api/v1/identities/?identifier=development_user_123456' \
-H 'X-Environment-Key: 8KzETdDeMY7xkqkSkY3Gsg'
```

And then take a look in our RudderStack dashboard, you can see the user and the flag data that has been sent to the
RudderStack platform.

![RudderStack](/img/integrations/rudderstack/rudderstack-integration-1.png)

## Use Case

Once the integration has been set up, you can start segmenting your RudderStack identities based on the flags that they
saw. This means you can run AB tests driven by Flagsmith segments, and have the data show up automatically in
RudderStack.

## Integration Notes

You have to identify users on both platforms in the same way. The Flagsmith `Identity ID` must be the same as the
RudderStack `user_id`.
51 changes: 51 additions & 0 deletions docs/docs/third-party-integrations/analytics/segment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: Segment Integration
description: Integrate Flagsmith with Segment
sidebar_label: Segment
hide_title: true
---

![Segment](/img/integrations/segment/segment-logo.svg)

You can integrate Flagsmith with Segment. Send your identity flag states into segment for further downstream analysis.

## Integration Setup

1. Get the Segment API key for your Segment project. Add an _HTTP API_ source, and make a note of the `Write Key`.
2. Go to your Flagsmith project, and click Integrations. Add the Segment Integration.
3. Paste the `Write Key` from step 1 into the API Key field in Flagsmith. Select the Flagsmith environment that you want
to send events from. Then hit Save.
4. All API calls generated by the Flagsmith SDK to the `Get Identity Flags` endpoint will send the a full set of flag
evaluations for that particular user to the Segment
[`Identify` endpoint](https://segment.com/docs/connections/spec/identify/)

## How it Works

:::tip

For flags that contain remote config values, Flagsmith will pass the value of the flag to Segment if the flag is
`enabled`. If the flag has no remote config value, Flagsmith will just pass the boolean state for the flag.

:::

Identity flag values are passed into Segment. If we make the call to the Flagsmith API to get the flags for an identity:

```bash
curl 'https://edge.api.flagsmith.com/api/v1/identities/?identifier=development_user_123456' \
-H 'X-Environment-Key: 8KzETdDeMY7xkqkSkY3Gsg'
```

And then take a look in our Segment dashboard, you can see the user and the flag data that has been sent to the Segment
platform.

![Segment](/img/integrations/segment/segment-integration-1.png)

## Use Case

Once the integration has been set up, you can start segmenting your Segment identities based on the flags that they saw.
This means you can run AB tests driven by Flagsmith segments, and have the data show up automatically in Segment.

## Integration Notes

You have to identify users on both platforms in the same way. The Flagsmith `Identity ID` must be the same as the
Segment `user_id`.
4 changes: 4 additions & 0 deletions docs/docs/third-party-integrations/ci-cd/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"label": "CI/CD",
"position": 40
}
8 changes: 8 additions & 0 deletions docs/docs/third-party-integrations/ci-cd/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: CI/CD Overview
sidebar_label: Overview
---

Flagsmith can be integrated into your Continuous Integration and Continuous Deployment (CI/CD) pipelines to help you automate your feature flag management. By managing your flags as code, you can ensure that your feature flag configurations are version-controlled, repeatable, and aligned with your code deployments.

This section covers the tools and providers that allow you to integrate Flagsmith into your CI/CD workflows.
Loading