Community Tip: People Properties Best Practices - Mixpanel
Blog Post

Community Tip: People Properties Best Practices

Last edited: Jan 3, 2022

This Community Tip is geared for anyone interested in using Mixpanel’s People Analytics or seasoned users interested in tweaking their implementations. We’ll help answer the question: What types of data should we be storing in People Profiles?

People Analytics allow you to send highly targeted messages to your users

People Analytics allows you to send targeted messages to your users by leveraging the People properties stored within each profile.

When setting People Properties, you have five options of data to include: String, Numeric, Boolean, Date, and List type. For more on how to properly send these types to Mixpanel, check out this article!

Each of these data types allows us to create differently targeted campaigns. Sometimes the differences in the properties can be subtle. For example, let’s say you want to email your users after they sign up for a paid plan.

1) String – String properties allow you to store a one-to-one mapping between a property name and a value:

mixpanel.people.set({"Plan type": "Paid"});

2) Numeric – Numeric properties can store integers and decimals in order to keep track of how many times or how much:

mixpanel.people.set({"Plan purchase amount": 50});

Any numeric properties can also be incremented

mixpanel.people.increment("Count of logins after purchase");

3) Boolean – Boolean properties store a true/false property that you can toggle depending on the user’s state:

mixpanel.people.set({"Paid Plan": true});

4) Date – Date properties can store when something happened, or when an event will occur:

mixpanel.people.set({"Date of Plan Purchase": "2015-02-27T21:46:48"});
// the date property should be ISO formatted in UTC time
mixpanel.people.set({"Date of Plan Purchase": new Date().toISOString()});

5) List – List properties allow you to store sets of properties that correspond with one property name:

mixpanel.people.set({"Plans purchased": ["Entry level", "Gaming", "Photo Share"]});

Lists can be extended with our append method:

mixpanel.people.append({"Plans purchased": "Pro"});

or even merged with union, which only adds a list element if it doesn’t already exist in the list:

mixpanel.people.union({"Plans purchased": "Pro"});

Once you have set these properties, you will end up with a profile like this:

New Profile

As soon as your properties are stored in the profile, you can begin creating highly targeted campaigns that take advantage of all the information that you have stored. Using the example above, we can build the following campaign:

Targeted Campaign

And now those best practices

Now, you may be looking for the “best practices” that the title of this article promised. However, this is a difficult task because the business goals of every Mixpanel user are subtly different. Here’s some advice to help you get the most out of your People Profiles:

      1. The most important best practice: take time upfront to think about some of the key types of users notifications you’d like to send. You can trigger People Profile updates based off of actions that happen on your page. So if you wanted to send a notification to your users if they have never viewed your Help Pages, you could set a property once they’ve viewed your help documentation. Similarly, if you wanted to check in with your users 2 days after they viewed a Help Page doc, you could store the date of the last time they viewed a resource.
      2. Store Date or numeric data types instead of booleans when possible. Because Mixpanel allows you to cast People properties on the fly, a Date type property can always be cast as a Boolean (if it is set, it will resolve to True. If it is not set or doesn’t exist on that profile, then it will resolve to False). For example, instead of “Has used Our Awesome Feature?” you could set “Last Awesome Feature Use” as a date and increase your power without cluttering your profiles or your code.
      3. Don’t be afraid to store similar information in different ways. If storing the last plan purchased as a string, this would tell you the current plan that the user has. But if you append the plan to a list, you would have access to all their past plans as well. It is also a really good idea to also store much of this information as super properties so that you have access to this information in your events that you send into Mixpanel. For more on super properties, please check out this community tip on best practices.
      4. Take advantage of our special and reserved People properties–no need to duplicate these!
      5. People Properties aren’t only for notifications! Learn more about how Insights can tell you more about your users and how you can best track Revenue using Mixpanel! or check out how growth hackers at Venmo use Mixpanel’s Insight report.

Need more help? Our customer support is legendary. Test us out by emailing We dare you!

Get the latest from Mixpanel
This field is required.