Pushlanedocs
Documentation menu

Audiences

Segment users from their events and traits.

#What an audience is

An audience (also called a segment) is a named, reusable filter that selects a subset of your users based on their events and attributes. You build the filter in the audience builder using clauses, save it with a name, and then reference it from a flow’s entry trigger or a branch condition.

Audiences are evaluated dynamically — membership is re-computed each time the engine needs to know whether a user qualifies. They are not a static snapshot.

#Property subjects

Each clause targets a property subject. Two kinds are available:

KindWhat it representsExample
user_attributeA trait stored on the user profile, set via identify calls or Update nodes in a flow.plan, country, lifetime_value
event_propertyA property attached to a specific event type, sent alongside the event.trial_started.plan_name, purchase.amount

The audience builder’s property picker shows events and their owned properties grouped together. Selecting an event property automatically scopes the clause to that event type.

#Property types and operators

Operators are derived from the property’s declared type in the event catalogue. The declared type always wins — Pushlane never infers a type from the incoming value at evaluation time.

TypeAvailable operators
booleanis true · is false
numberequals · does not equal · greater than · at least · less than · at most · between · is set · is not set
stringis · is not · contains · does not contain · starts with · ends with · is any of · is none of · is set · is not set
datetimebefore · after · between · in the last · not in the last · is set · is not set
arraycontains · does not contain · contains any of · contains all of · is empty · is not empty
Note
The "between" operator for numbers takes two values (a range). The "is any of" / "is none of" operators for strings take a set of values. The "in the last" / "not in the last" operators for datetimes take a relative amount and unit (second, minute, hour, day, or week).

#Event predicates

In addition to property clauses, you can add an event predicate to your audience: a clause that checks whether the user has (or has not) performed a specific event.

PredicateMeaning
performedThe user has triggered this event at least once (optionally: within a recent window).
did not performThe user has never triggered this event (optionally: not within a recent window).

Both predicates support an optional time window — for example, "performed purchase in the last 30 days". The window is stored as a relative value with a unit (second, minute, hour, day, or week).

Wire representation of an event predicate clause
{
  "subject": {
    "kind": "event_property",
    "name": "purchase",
    "eventName": "purchase"
  },
  "operator": "performed",
  "value": { "kind": "relative", "amount": 30, "unit": "day" }
}

#Match mode

The match toggle at the top of the audience builder controls how multiple clauses are combined:

MatchLogic
allEvery clause must be true (AND). The user must satisfy all conditions.
anyAt least one clause must be true (OR). The user satisfies any one condition.

#Live count

As you build an audience the builder shows a live user count. The count is debounced and computed by the count endpoint against your ClickHouse events database. It reflects users who currently satisfy all clauses.

The count response includes an exact flag. When exact: false one or more clauses could not yet be evaluated (for example, the property is not yet in your catalogue) and the count is a lower bound.

Heads up
A count of 0 on a brand-new property clause is normal if no events carrying that property have been ingested yet. Check the Events catalogue page to confirm the property is declared and has received data.

#Saving and renaming audiences

Click Save audience to persist the current clause set with a name. Saved audiences appear in the audience library and in the flow builder’s entry trigger picker.

To rename or update a saved audience, open it from the library and make your changes. Saving again calls the update endpoint (PATCH /api/audience/segments/[id]) which persists the new name and/or clause set. Flows that reference the audience by ID pick up the update automatically at the next evaluation.

#AI audience generation

The audience builder has an AI prompt. Describe the audience in plain English and the model generates a set of clauses for your review. The draft is loaded into the builder where you can edit any clause before saving.

The AI also creates audiences on your behalf when you use the flow AI builder and your description implies a specific user segment. In that case a confirmation banner appears in the flow review panel with the generated audience name.

#Using an audience in a flow

A saved audience can be used in two places in a flow:

LocationHow to use it
Entry trigger (Audience mode)Set the entry trigger kind to Audience and pick the segment. The flow enters a user the moment they transition into membership (false → true). Add an optional cron schedule to also re-enter current members on a recurring basis.
Branch node conditionPick the audience from the condition picker inside a Branch node. The yes port fires if the user is currently a member of the audience at evaluation time.
Note
Audience membership for the entry trigger is edge-triggered by default. If you want to enter all current members of an audience immediately (a one-time blast), set a cron schedule on the segment trigger and activate once. Users who are already members when the cron fires will enter the flow.

Next: Building flows — wire your audiences into a full push journey.