Skip to main content

Mixpanel

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

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:

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

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:

{
"$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. 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, 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.