The Userflow-Mixpanel integration connects Userflow’s in-app guidance data with Mixpanel’s product analytics platform. Once connected, you can stream Userflow events to Mixpanel, sync user attributes and events in both directions, and pull Mixpanel cohorts into Userflow as segments — so both tools see the same picture of how users engage with your product.
Key benefits
Bi-directional event and attribute sync. Mixpanel events and user attributes appear in Userflow segments, auto-start conditions, Chart Builder, and Funnel Analysis. Userflow user and group attributes sync back into Mixpanel for analysis alongside your existing data.
Automated event streaming. Critical Userflow events — such as when a user starts a flow or completes a checklist task — can be continuously sent to your chosen Mixpanel project for unified analytics.
Cohort sync. Mixpanel cohorts (groups of users defined by shared behaviors) can be synced back to Userflow as segments, so you can target and personalize in-app experiences for specific user groups.
Streamlined setup. Connecting Userflow and Mixpanel is a one-time setup per environment. We recommend starting with your Staging setup to confirm everything works before enabling the connection in Production.
With Userflow and Mixpanel connected, product teams can measure the impact of onboarding experiences, identify drop-off points, correlate feature usage with guided flows, and build more data-driven adoption and retention strategies.
What bi-directional sync means
Previously, the Mixpanel integration only supported sending events from Userflow to Mixpanel (event streaming) and pulling cohorts from Mixpanel into Userflow. Both of those still work — no changes are needed for existing setups. Bi-directional sync adds two more directions:
Mixpanel → Userflow. Events and user attributes from Mixpanel become available in Userflow segments, auto-start conditions, Chart Builder charts, and Funnel Analysis.
Userflow → Mixpanel (attributes). User and group attributes from Userflow sync into Mixpanel.
You can enable each direction independently. Existing Userflow → Mixpanel event streaming and Mixpanel Cohort Sync continue to work alongside the new options.
When to use bi-directional sync
Use bi-directional sync when:
You already track key product events in Mixpanel and want to trigger Userflow flows from them without re-instrumenting.
You want Userflow attribute data available in Mixpanel alongside your other product analytics.
Your team is split — analytics in Mixpanel, in-app guidance in Userflow — and you want both tools to see the same picture.
Prerequisites
A Userflow account with Owner or Admin role.
A Mixpanel project, including:
Service account credentials (username and secret) — only required if you want to receive data from Mixpanel into Userflow.
The Mixpanel project token — required for any direction.
Plan availability — available on all plans.
Mixpanel projects and Userflow environments
Best practice: Use separate projects for each environment.
We recommend using separate Mixpanel projects for each environment (e.g., Production and Staging) to prevent data contamination. Since each Userflow-Mixpanel integration connects one Userflow environment to one Mixpanel project, you'll need to set up the integration separately for each environment.
Best practice: Start with a staging environment or project first.
We strongly recommend setting up and testing the integration in your staging environment before connecting it to production. This allows you to verify that everything works correctly without affecting your live data. If you have both staging and production environments, you'll need to complete the setup process twice — once for each environment.
Required user ID match for integration
Use consistent user IDs. For accurate data correlation, you must use the same user ID to identify users in both Userflow and Mixpanel.
Action required: set your Mixpanel data region before July 2026
Mixpanel is ending its US-to-EU data forwarding in July 2026. After that, data for Mixpanel EU projects must be sent directly to Mixpanel's EU endpoint. If your Mixpanel project uses the EU data residency region, your Userflow–Mixpanel connection needs a matching Server region set so data continues to flow.
Who this affects: customers whose Mixpanel project is on Mixpanel's EU region. If you connected Mixpanel to Userflow before the Server region field was added, your connection may not have a region set yet.
What to do:
In Userflow, go to Settings → Integrations and open your Mixpanel integration.
Open the three-dot (⋯) menu on the integration and click Reconnect. Reconnecting preserves your existing event streaming and cohort sync — you don't need to disconnect first.
In the setup dialog, select the Server region that matches your Mixpanel project (US, EU, or IN). You can find your project's region in Mixpanel under Organization Settings → Projects → click your project → Data Residency.
Save. The integration card should show Connected with your region set, and events will flow to the correct regional endpoint.
If your Mixpanel project is on the US region, no action is needed — your existing connection continues to work.
Connect Mixpanel to Userflow
Already have Mixpanel connected?
Your existing integration continues to work — event streaming and cohort sync will keep running with no changes. To enable bi-directional sync, click Reconnect on your Mixpanel integration. You'll be taken to the sync type screen, where you can choose the sync types you want, click Next, and provide the additional inputs (service account username and secret, project timezone, project ID). You don't need to disconnect — reconnecting preserves your existing event streaming and cohort sync setup.
In Userflow, go to Settings > Integrations.
Click Add integration and select Mixpanel.
Click Connect with Mixpanel.
Choose which direction(s) you want to enable:
Receive data from Mixpanel into Userflow — imports attributes and events from Mixpanel.
Send data from Userflow to Mixpanel — sends attributes from Userflow into Mixpanel. (Existing event streaming is configured separately and is not affected by this toggle.)
You can enable one or both. Each direction has its own input requirements (see below).
Click Next, enter the inputs for your chosen direction(s), and click Save.
Inputs required by direction
Input | Send to Mixpanel | Receive from Mixpanel |
|---|---|---|
Server region | Required | Required |
Mixpanel project token | Required | Required |
Service account username | — | Required |
Service account secret | — | Required |
Project timezone | — | Required |
Project ID | — | Required |
Where to find each value in Mixpanel
Server region — In Mixpanel, go to Project settings > Data residency. Select the matching region in Userflow (e.g., United States).
Service account username and secret — In Mixpanel, go to Org settings > Service accounts. If you don't have a service account, create one. Copy the username and secret immediately — Mixpanel does not display the secret again after creation. If you lose the secret, you'll need to create a new service account.
Project timezone — In Mixpanel, go to Settings > Project settings > Overview. Copy the timezone string (for example,
Asia/KolkataorAmerica/Los_Angeles).Project ID — In Mixpanel, go to Settings > Project settings > Overview. Copy the project ID.
Project token — In Mixpanel, go to Settings > Project settings > Access keys. The token is shown as the API key.
After entering the inputs, click Save. The integration card updates to show Connected, and you can reconnect or disconnect at any time.
Map attributes (object mapping)
Object mapping is how Mixpanel fields connect to Userflow fields. Set this up after the connection is live.
In the Mixpanel integration page, click Select object type and choose User or Group.
Click Continue.
Pick a Mixpanel field to sync and choose a data type.
Either map it to an existing Userflow field, or let Userflow create a new field automatically if no match exists.
To set up both user and group mappings, click Continue again after saving the first and configure the second.
For Group mapping, you'll also need to provide a group key and data group ID.
Click Save mapping. Mapped fields start syncing in both directions.
Set up Mixpanel event sync to Userflow
Event sync brings Mixpanel events into Userflow as events you can use in segments, auto-start conditions, and analytics.
In the Mixpanel integration page, toggle Mixpanel event sync on.
Select the Mixpanel events you want to import from the dropdown.
The dropdown shows only a sample of your Mixpanel events, not the full list. Mixpanel has no API that returns every event, so an event can be missing from the dropdown even though it exists and is active in your project. If the event you want isn’t listed, add it by name using Create new event (see “Add an event that isn’t in the dropdown” below).
If your Mixpanel project is a legacy project (created before January 1, 2023), check the legacy project checkbox. Leave it unchecked for newer projects — turning it on for a non-legacy project shifts events into the wrong timezone and records incorrect event times.
Click Save.
Imported events are pulled on a schedule rather than in real time, so allow a few minutes for them to appear (see “How often events sync” below).
Add an event that isn’t in the dropdown
If the event you need isn’t in the dropdown, add it manually:
Click Create new event.
In the Code name field, enter the exact Mixpanel event name. This is the field that controls matching — Userflow maps incoming Mixpanel events to the code name, not the Display name. The Display name is only a label shown in the Userflow UI.
The Code name field may auto-fill a “cleaned up” version of whatever you type (for example, lowercasing and replacing unsupported characters with underscores). Overwrite it so it matches the Mixpanel event name character for character — if the code name doesn’t match, no data flows in.
Save the event. Once Mixpanel sends an event with that exact name, its data flows into this Userflow event.
Supported characters in event names: a–z, A–Z, 0–9, underscores (_), periods (.), spaces, hyphens (-), and parentheses ( ). Other characters — including the dollar sign ($) — aren’t supported, so an event whose name contains them can’t be synced until the name is changed in Mixpanel.
How often events sync
Mixpanel event sync isn’t real time. Because of Mixpanel’s API rate limits, Userflow pulls events on a schedule:
Every 5 minutes, Userflow polls Mixpanel for events from the previous 10 minutes (the overlap catches anything missed between runs).
A catch-up sweep runs on a delay (roughly a day behind) to pick up any events the 5-minute polling missed.
In practice an event usually appears in Userflow within a few minutes, and at most about a day if there was a delivery delay on either side. (User and group attributes sync separately: a full sync runs every 24 hours or when you trigger it from the integration page, plus a 5-minute poll for recently changed profiles.)
Why this matters for targeting: time-bound conditions that depend on a Mixpanel event — for example, a Banner set to show when a user “triggered X at least once in the last 7 days” — can behave unpredictably if the event hasn’t been ingested yet. Don’t rely on an event being available in Userflow the instant it fires in Mixpanel; build in a buffer.
Matching Mixpanel users to Userflow users
For a Mixpanel event or attribute to land on the right Userflow user, the Mixpanel distinct_id must match the User ID you pass to Userflow (the value in your userflow.identify(userId) call).
This requirement applies to event sync, event streaming, and attribute (object) mapping — all three rely on distinct_id = Userflow User ID, and they can’t be mapped on any other field because of Mixpanel’s API limits.
Cohort sync is the only exception. When syncing Mixpanel cohorts to Userflow segments, you can specify a different custom field to map users.
Anonymous Mixpanel profiles won’t match. If a Mixpanel profile’s distinct_id is still an anonymous device ID (for example,
$device:194fab…), there’s no matching Userflow user, so its events won’t sync. Make sure the event is tracked against an identified Mixpanel user whose distinct_id equals the Userflow User ID.
Set up Userflow event streaming to Mixpanel
Sign in to Mixpanel and navigate to the project you want to stream Userflow events to.
.png)
Open Project Settings for the relevant project.
.png)
Copy the Project Token from the Access Keys section.
.png)
Log in to Userflow and navigate to the environment you want to stream Userflow events from.
.png)
Select Settings > Integrations from the sidebar. Then click Add integration.
.png)
Select Mixpanel.
.png)
Click Add Mixpanel.
.png)
Paste the Token you copied from Mixpanel in step 3 above into the Mixpanel Token field and enter the name of the user ID property you share with user profiles in Mixpanel in the Mixpanel User ID Property field. For example,
user_id, then click Save..png)
Use the toggle switch to activate the option to Stream events from Userflow to Mixpanel and click Save. Confirm the selection when prompted. Event streaming will start immediately.
.png)
Verify event streaming
Select Data > Events.
.png)
Verify that Userflow events appear as expected.
.png)
Stopping event streaming
In Userflow, select Settings > Integrations and open your Mixpanel integration.
Use the toggle switch to deactivate Stream events from Userflow to Mixpanel. Event streaming will stop immediately.
.png)
Set up Mixpanel cohort sync to Userflow
This configuration automatically syncs user cohorts from Mixpanel to Userflow segments.
Note
Mixpanel refers to user groups as "cohorts," whereas Userflow refers to them as "segments."
Step 1: Configure Mixpanel-Userflow event streaming
Set up the Mixpanel integration in Userflow as directed in the Set up Userflow event streaming to Mixpanel section above.
Step 2: Configure User ID in Userflow
In Userflow, select Settings > Integrations > Mixpanel.
.png)
Complete the Mixpanel User ID Property under Mixpanel settings.
Enter the user property in Mixpanel where you store users’ IDs.
Example: Type
user_idif your Mixpanel snippet calls something likemixpanel.people.set({user_id: id}), and thisidis the same value your Userflow.js snippet passes touserflow.identify(id).If you’re not using a dedicated user ID property in Mixpanel, you may enter
mixpanel_distinct_idinto this field, but note that this will use whatever canonical Distinct ID Mixpanel chooses for your user profiles, which may not always be the same value you pass tomixpanel.identify(id)if you have Mixpanel’s Identity Merge feature enabled..png)
Click Save.
Copy the Webhook URL to your clipboard.
.png)
Continue in Mixpanel using the instructions below.
Step 3: Complete configuration in Mixpanel
In Mixpanel, select Settings > Integrations from the lower left corner.
Scroll down the page and select Custom Webhook.
Click Connect under Custom Webhook. If you already have other custom webhooks, select Add Connection from the menu dropdown.
.png)
Enter “Userflow” as the Connector Name and paste the Webhook URL you copied from Userflow in the URL field.
.png)
Select Lexicon from the left-hand navigation, then select Cohorts.
.png)
Select Cohorts from the Saved Definitions section.
Click the three-dot button next to the cohort you want to sync to Userflow. (Scroll to the right if the three dots are not visible.)
Hover over Export to…, then click Custom Webhook (Userflow).
.png)
Choose whether you want to do a one-time export or a recurring sync.
Click Begin sync.
Once Mixpanel starts syncing (which should happen within a few minutes), you’ll be able to see the cohort as a segment on your Users page in Userflow.
Using Mixpanel data in Userflow
Once Mixpanel events and attributes are imported, they're available across Userflow exactly like any native Userflow event or attribute:
Segments. Build segments based on Mixpanel events ("Users who triggered
feature_x_usedin the last 7 days") or Mixpanel attributes.Auto-start conditions. Trigger a flow when a user fires a specific Mixpanel event or has a specific Mixpanel attribute value.
Chart Builder. Visualize Mixpanel event trends alongside in-app engagement data.
Funnel Analysis. Use Mixpanel events as funnel steps.
You no longer need to create a Mixpanel cohort and sync it just to use Mixpanel data in Userflow.
Using Userflow data in Mixpanel
Userflow attributes (and event streaming, if you've configured it) sync into Mixpanel and can be used in your Mixpanel dashboards, cohorts, and analyses alongside Mixpanel-native data.
Logs
After the integration is connected, the Logs tab shows event streaming and sync activity. Use it to confirm data is moving and troubleshoot delivery issues.
Troubleshooting
Mixpanel events aren’t appearing in Userflow.
Confirm the Mixpanel event sync toggle is on and the event is selected (or added with Create new event).
Check that the event’s Code name in Userflow matches the Mixpanel event name exactly — including case, spaces, and punctuation. Pasting the name into Display name but leaving the auto-filled Code name in place is the most common cause of events not syncing.
Confirm the event name uses only supported characters: a–z, A–Z, 0–9,
_,., space,-,(,). Names containing$or other unsupported characters won’t sync.Confirm the affected user’s Mixpanel distinct_id matches their Userflow User ID. Events on anonymous Mixpanel profiles (
$device:…) won’t map to a Userflow user.Allow time — sync isn’t instant (a few minutes normally, up to about a day after a delivery delay; see “How often events sync”).
Check the Logs tab for ingestion errors.
If you previously created event definitions with the Mixpanel name in the wrong field (Display name instead of Code name), delete those and recreate them with the name in the Code name field to avoid leaving duplicate, non-syncing definitions behind.
Userflow attributes aren't appearing in Mixpanel.
Confirm Object Mapping is configured for User (or Group, as applicable).
Verify the service account credentials still have write access to the Mixpanel project. (Service account secrets are only viewable at creation — if you've lost the secret, create a new service account and reconnect.)
The connection shows as disconnected.
Service account credentials may have rotated. Reconnect with new credentials.
The Mixpanel project token may have changed. Update it in the integration settings.
My Mixpanel project type is unclear (legacy vs. non-legacy).
This determines whether the legacy project checkbox in event sync should be on. If you're not sure, contact Mixpanel support — it's a Mixpanel-side property.