Cohorts
Group people into cohorts, by hand or by what they do, and use them in Explore, dashboards and automations.
A cohort is a named group of your people, such as "Power users" or "Beta testers". Use one to narrow Explore and dashboards to those people, or to choose whom a scheduled automation reaches.
There are two kinds:
- Dynamic: you describe who belongs, such as everyone who did
workout_completedat least 3 times in the last 30 days. Voidhash works out who matches every time the cohort is used, so people join and leave on their own. - Static: a list of people you add and remove yourself, such as the testers of a beta.
A cohort's kind can't change later. To switch, create a new one.
Create a cohort
- Open People → Cohorts and click New cohort.
- Enter a Name, and choose Dynamic or Static under Type.
- Click Create. The cohort opens, ready for its conditions or its people.
Search cohorts finds one by name. The list shows each cohort's kind and, for a static cohort, how many people it holds. A dynamic cohort shows its count when you open it.
Describe a dynamic cohort
A dynamic cohort is a list of conditions. Under Match, choose All conditions to keep only people who meet every one, or Any condition for people who meet at least one. Click Add condition, the plus beside Conditions, and pick what it checks:
| Condition | Holds for people who… |
|---|---|
| Person property | have a property, such as plan, that compares as you set, as it is now. |
| Did an event | did an event, or didn't, a number of times in the last days you set. Optional Event property filters count only some events. |
| Did an event for the first time | did an event for the very first time in the last days you set. |
| In a cohort | are in another cohort, or aren't. |
| Belongs to a group | belong to a group, such as a company or team your app names on its events, whose property compares as you set. |
While you edit, the panel beside the conditions shows how many people Would be in this cohort now, and the first of them. Nothing changes for charts and automations until you click Save.
How conditions read your data:
- Counts. At least, at most and exactly count a person's events in the window. at most 2 times means once or twice: someone who never did it didn't do it at most twice. To find people who didn't do something, choose Didn't.
- Comparisons. is and is not match a value exactly. contains, starts with and ends with compare text and ignore case. greater than and less than compare numbers. matches regex uses a regular expression. is not, doesn't contain and doesn't match regex also keep people who don't have the property.
- Groups. A person belongs to the groups their events named in the last 90 days, and a group's property is compared as it is now.
- Every environment. Event conditions count events from production and test alike: a person is the same person in both.
Who can be in a cohort
- People, once they're identified. Someone who used your app without signing in isn't in any cohort. Once they sign in, what they did before counts too.
- One person, once. When two profiles are merged into one, the person counts once, with everything either profile did.
- Current people only. Deleted and archived people are never in a cohort, even a static one you added them to.
Add people to a static cohort
- Open the cohort and click Add people.
- Under Search, find people by name, ID or email. Or, under Paste IDs or emails, paste distinct IDs or emails, one per line or separated by commas.
- Click Add. Studio says how many people joined, and lists what matched nobody, such as an email no one in this project has.
An email adds everyone with that email. You can add up to 10,000 people at a time. To take someone out, choose Remove from cohort in their row. People already in the cohort stay as they are.
You can also make a static cohort from a chart: click a point, bar, funnel step or retention cell in Explore, or in a dashboard tile you've opened, to see the people behind it, then choose Save as cohort and name it. It saves everyone behind that number, not only the people listed, up to 10,000. See See the people behind a number.
Use a cohort
- Explore. On a cohort's page, click Explore to open Explore narrowed to its people. In Explore itself, the filter menu's Cohort keeps people in a cohort, or not in it. To compare up to five cohorts side by side, choose Cohorts in a trend's Split by, or in a funnel's or retention's Breakdown. Someone in two cohorts counts in both. See Split by cohort.
- Dashboards. A tile or a whole dashboard can filter by a cohort, like any other filter.
- Automations. A Schedule can reach a cohort's people. For a dynamic cohort, who's in it is worked out when the schedule runs. See Automations.
Developers and AI agents can manage cohorts too, through the API (developer docs) and the MCP server.
Limits
| Limit | Value |
|---|---|
| Conditions in a dynamic cohort | 20 |
| Window of an event condition | 1 to 365 days |
| Event property filters on one condition | 10 |
| Cohorts naming cohorts | 3 deep: a cohort, one it names, and one that one names. Never in a circle. |
| People added to a static cohort at once | 10,000 |
If something's off
- Someone you expected is missing: check they're identified, and that their events fall in the condition's window. A group condition only sees the last 90 days.
- A cohort shows no count, or a chart using it fails: it names a cohort that was deleted. Open it and change or remove that condition.
- Saving says cohorts can't name each other in a circle: a cohort you named leads back to this one. Name a different cohort, or copy that cohort's conditions instead.
- Adding people reports names that matched nobody: check the spelling, and that the person has used this project's app with that ID or email.
Next steps
Still stuck? Check Troubleshooting, ask us on Discord, or email support@voidhash.com on a paid plan.
Something wrong or missing on this page? Tell us by email or on Discord.