Percentage rollouts
Under Everyone else, choose Split between values. For an on/off flag a slider sets the share who get the new behaviour. A person's place is decided by a stable calculation on the flag key and their user id, so:
- The same person always gets the same answer for the same flag.
- Different flags split people differently, so being in 10% of one rollout says nothing about another.
- Raising the percentage never takes the feature away from anyone who already has it.
For flags that give a value rather than on/off, split between any number of values, such as 50% blue, 30% green, 20% orange. The percentages must add up to 100.
Individual users
Under Individual users list the people who must always get a value — your own team for a dogfood week, or one customer who asked. They get it whatever the rules or percentages say (but not when the flag is off).
Rules
A rule says: "if these conditions about the user are all true, give them this value". Rules run in order and the first match wins. A user's facts come from what your app sends as attributes when it reads the flag (see In your app), plus two the platform adds: key (the user id) and now (the current time).
| Condition | Meaning | Example |
|---|---|---|
| is one of / is not one of | Exact match against a list | plan is one of pro, starter |
| contains / starts with / ends with | Text match | email ends with @acme.com |
| matches pattern | A regular expression (an invalid pattern never matches) | email matches ^qa\+.*@ |
| is less than / at most / more than / at least | Number comparison | seats is at least 10 |
| is version / below version / above version | Dotted version comparison (1.10 is above 1.9) | appVersion is above 2.4.0 |
| is before / is after | Date and time (ISO) | now is after 2030-11-25T00:00:00Z |
Add several conditions to one rule and all must hold. A user missing a fact never matches a condition on it (use "is not one of" to include people who lack it).
Recipes
| I want to… | Do this |
|---|---|
| Release to my team first | Individual users: add your team under true. Leave everyone else off. Later switch Everyone else to a split. |
| Give a paid feature to paying customers | Rule: plan is one of pro, starter → true. Everyone else false. |
| Roll out by 10% / 50% / 100% | Everyone else → split; or use a scheduled ramp. |
| Only the new app version | Rule: appVersion is above 2.4.0 → true. |
| A/B test two designs | A text flag with values a and b, split 50/50. Your app reads the value and shows that design; compare results in your own analytics. |
| Exclude one customer | Rule at the top: tenant is one of acme → false (send tenant as an attribute), or have that tenant switch it off for itself. |
Test before you save
Open the flag's Test tab, enter a user id and the facts you send, and see the result and the reason — without changing anything.