Mixpanel allows you to import people profiles in bulk using CSV.
When imported correctly, future events that imported users complete will be visible on his or her profile in the "Activity Feed".
To get started, click CREATE NEW PROFILE and then click Upload from a CSV file from the "Explore" section to access the CSV uploader.
Prepare Your CSV for Upload
When crafting your CSV of users for upload as people profiles, you should not include column headers (e.g., Email, Name, etc.). Instead, you’ll be asked to identify column headers during the CSV upload wizard:
If you upload a CSV with new information for existing contacts or companies, any existing information will be overwritten by new values you've imported.
Add a $distinct_id Column
The most important column in your spreadsheet is the $distinct_id column because this property is included in every event you send to Mixpanel.
It is also what allows Mixpanel to keep track of actions in your application right down to the individual customer level.
For more information on how $distinct_id works in Mixpanel, see:
You can assign any value you like for $distinct_id (e.g., email address, username, internal identifier, etc.), but the best practice is to use a value that’s available at login to your website or app.
To ensure future actions by each user is recorded on the correct people profile, make sure the value you assign for $distinct_id on import is the same value on which you’re identifying users when they log in.
If you do not assign a $distinct_id column, Mixpanel will use your $email column as the $distinct_id value; if you don’t have an $email column either, then the $distinct_id value will be assigned randomly by default as described above.
Add Additional Columns for People Properties
After the $distinct_id column, you can add as many columns as you want for additional People Properties.
Keep in mind that Mixpanel reserves a handful of People Properties as special or reserved Properties. These properties will allow you more flexibility and functionality within the Mixpanel web application.
For example, if you are interested in using Mixpanel’s messages capabilities, you will need to include an $email property (not just email).
Other special properties include $first_name, $last_name, $username, and $phone. Ensure that if you’re adding any of these values that you enter the column headers with the dollar sign and name so that Mixpanel recognizes them as a special or reserved Property.
Note that a '+' needs to precede phone numbers. This is especially useful for international numbers.
Duplicate People Profiles
If you import people profiles using $distinct_id values that already exists, those people profiles will be updated with the additional people properties in your CSV.
Mixpanel imports based only on $distinct_id and will not deduplicate people profiles automatically based on other properties, like $email or $last_name.
In other words, if you upload people profiles that have the same email address or the same name as existing people profiles, you will be uploading duplicates - they will not be combined.
Ensure that the users you’re uploading don’t already have a people profile before you import, and if they do, ensure that the $distinct_id column matches the existing profile’s $distinct_id.
Selecting a profile will display the $distinct_id in the URL as the query parameter "?distinct_id".
Advanced People Profile Imports
The CSV import wizard treats every property value as a string. This means lists (such as Push Notification tokens) and numbers won't be properly imported.
For more advanced people profile imports, we recommend sending updates to the /engage endpoint instead of using the CSV import tool.