kapa.ai I have my first event data loaded into mixpanel. I have event data, and user IDs exist for each one but no users have been created
You’re seeing this because events and user profiles are separate in Mixpanel. Loading events (even with user IDs) does not automatically create user profiles.
To get users to appear on the Users page / as profiles, you need to create or update User Profiles using the same identifier you use in your events’ distinct_id (or $user_id under Simplified ID Merge). [User profiles]
You can do this in a few ways:
From an SDK (client or server)
Call the profile APIs with the same ID:
JavaScript example: [JS profiles; Quickstart identify]
mixpanel.identify('USER_ID'); // must match the event distinct_id
mixpanel.people.set({
'$name': 'Jane Doe',
'$email': 'jane.doe@example.com',
'plan': 'Premium'
});
Server HTTP example: [Quickstart code]
import requests
url = "https://api.mixpanel.com/engage#profile-set"
payload = [{
"$token": "YOUR_TOKEN",
"$distinct_id": "USER_ID", # same as event distinct_id
"$set": {
"$name": "Jane Doe",
"$email": "jane.doe@example.com",
"plan": "Premium"
}
}]
headers = {"accept": "text/plain", "content-type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
Bulk import from your user table
If you have a user table, you can backfill profiles via the Engage API in batches, again making sure $distinct_id matches the ID used in events. [Import users]
def transform_to_mp_format(user):
distinct_id = user.pop("user_id") # must match event distinct_id
return {"$distinct_id": distinct_id,
"$token": PROJECT_TOKEN,
"$ip": "0",
"$set": user}
Key points:
Use the same ID for events and profiles (distinct_id / $user_id). [User profiles]
Profiles are optional and separate; they only appear once you send profile updates via SDKs or the Engage API.
After you send a few profile updates, refresh the Users page to see them.
If you tell me how you’re sending events (JS, mobile, server, or warehouse), I can suggest the exact next step for your setup.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
can I still track retention if I don't have a user profile?
Let me check the knowledge base for you again. One moment! 📚
Yes, you can track retention without user profiles.
Retention (and other core reports) are based on events and their distinct_id, not on the existence of a user profile. Mixpanel joins profiles to events if they exist, but events are the primary data and can be analyzed on their own. [Data model overview; User profiles]
User profiles are optional and mainly used to add demographic/user properties (like email, plan, region) for filtering and breakdowns. [User profiles; Tracking strategy]
So as long as:
your events are coming in, and
each event has a consistent identifier (distinct_id / $user_id),
you can build and use Retention reports even if no user profiles have been created.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
if I have a game_start event, and I want to see how many people had a game start event say after 7+ days after the first how do I do this?
Let me check the knowledge base for you again. One moment! 📚
You can do this with a Retention report using “On or After” criteria and custom brackets.
You want: users who did game_start once, and then did game_start again 7+ days later.
Option 1 – Simple “ever came back after 7 days” (On or After + custom bracket)
Go to Reports → Retention. [Retention overview]
Set Retention Behavior:
Did A: game_start
Then came back and did B: game_start again [Retention quick start]
Under Retention Criteria:
Use On or After (this counts users if they come back on that day or any time after). [Retention criteria]
Change the time unit to Custom and set a bracket that starts at 7 days (for example, 7–30 days, or 7–90 days, depending on how far out you care). [Custom brackets]
Measurement: keep Retention Rate or switch to Unique Users if you want the count. [Retention quick start]
The bucket that starts at day 7 will show the % (or count) of users who had another game_start at least 7 days after their first game_start.
Option 2 – More granular 0–6 vs 7+ days
If you want to explicitly separate “within 0–6 days” vs “7+ days”:
Same Retention Behavior as above (game_start → game_start).
In Retention Criteria, choose Custom and define:
First bracket: 0–6 days
Second bracket: 7–X days (e.g., 7–30)
Read the second bracket as “users who came back 7+ days after first game_start.” [Custom brackets]
This works even if you don’t have user profiles, as Retention is based on events and their user IDs.
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Let me check the knowledge base for you again. One moment! 📚
You can check the volume of a particular event in a few ways, depending on whether you want to do it in the UI or via API/SQL.
1. In the Mixpanel UI (Insights report)
Go to Reports → Insights. [Reports overview]
Click Select Metrics and choose Events, then pick your event (e.g. game_start). [Insights quick start]
For Measurement, choose:
Total Events to see total volume, or
Unique Users if you care about how many users did it. [Measurements]
Adjust the date range and chart type (line for trend over time, bar/metric for total over the whole period). [Insights basic features]
This will show you the event’s volume over time or as an aggregate.
2. Via Query API – Event Breakdown
If you want this programmatically:
Use GET /events (Event Breakdown → list-recent-events) with your event name:
event: JSON array of event names, e.g. ["game_start"]
type: "general" (total), "unique" (unique users), or "average"
unit: "day", "week", etc.
interval: how many units back to fetch [Event breakdown]
The response gives dates in data.series and counts per date in data.values.
3. Via SQL on Data Pipelines (if you export data)
If you’re exporting to a warehouse via Data Pipelines, you can run a SQL count on your event table, e.g. mp_master_event, filtered by event_name. Example patterns are shown for total daily counts and top events. [Common SQL queries]
ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.
Let me check the knowledge base for you again. One moment! 📚
