url_path
Match the current page’s URL pathname (everything after the domain, before the query string).
Operators
| Operator | Description | Example value | Matches |
|---|
equals | Exact match | /pricing | Only /pricing — not /pricing/ |
contains | Substring match | analytics | /dashboard/analytics, /analytics/export |
starts_with | Prefix match | /dashboard | /dashboard, /dashboard/analytics, /dashboard/settings |
regex | Regular expression | ^/guide/\d+$ | /guide/42, /guide/1 — not /guide/abc |
url_path matches against the pathname only — not the full URL. Query
parameters and hash fragments are ignored. Use the
query_param rule type to match on query strings.
user_attribute
Match a value from the attributes object passed to identify().
Requires identify() to have been called with the attribute. If the attribute is not set on the current user, the rule evaluates to false.
Operators
| Operator | Description |
|---|
equals | Exact string match |
not_equals | Does not match |
contains | Attribute value contains the string |
All attribute values are compared as strings. Numeric attributes (seats: 5)
are cast to strings before comparison.
device
Match the current user’s device type.
Values
| Value | Description |
|---|
desktop | Viewport width ≥ 1024px |
tablet | Viewport width 768–1023px |
mobile | Viewport width < 768px |
query_param
Match a URL query parameter.
Evaluates to true if the URL contains ?ref=email (exact value match).
always
Show to everyone, always. Useful as a catch-all or when you want a flow to appear on every page load.
behavior
Match based on how many times the user has performed a track() event. Requires the Grow plan.
Show the “Try CSV Export” tooltip to users who have never clicked export in the last 7 days.
Operators
| Operator | Description |
|---|
gt | Event count is greater than value |
gte | Event count is greater than or equal to value |
lt | Event count is less than value |
lte | Event count is less than or equal to value |
eq | Event count equals value |
windowDays
Optional. If set, only counts events within the last N days. If omitted, counts all-time events.
segment
Reference a saved Segment — a reusable named targeting configuration. Requires the Grow plan.
Segments are created in Settings → Targeting → Segments. Using segments keeps your targeting rules DRY — update the segment once and all flows using it pick up the change automatically.
audience_membership
Match users who are members of a GA4 or Microsoft Clarity imported audience. Requires the Scale plan.
Audiences are synced from GA4 or Clarity via the Settings → Targeting → Audience Sources integration.
group
Nest rules with their own logical operator inside a parent rule set.
Groups can be nested up to 5 levels deep.
Combining rules — full example
Show a “Upgrade to unlock analytics” flow only to:
- Free-plan users
- On the
/analyze page
- Who have viewed at least 3 analytics pages in the last 30 days