Criteria Node

Filter users in real time using event payload fields and synced warehouse attributes.

Criteria nodes branch users based on conditions. In real-time journeys, criteria evaluate instantly against the incoming event and — when needed — the user's synced profile from the Personalization API.


Field sources

You can filter on two types of fields:

Event payload fields

Fields defined in your real-time event JSON schema. These come directly from the message that triggered the journey — event type, product ID, session attributes, and so on.

  • String fields with no enum in the schema show a free-text input.
  • String fields with an enum in the schema show a dropdown of allowed values.
  • Numeric, boolean, and date fields use the standard filter controls.

Synced warehouse fields

Fields you've synced to the Personalization API from your customers table — opt-in flags, names, loyalty tier, and other profile attributes.

When a criteria branch references synced warehouse fields, GrowthLoop fetches the user's profile from the Personalization API before evaluating the filter. This happens in real time as part of the same event routing.

📘

Note

If the same field name exists in both the event payload and the synced profile, the synced profile value takes precedence.


Multiple criteria

Like batch journeys, criteria nodes support multiple sub-criteria conditions that are evaluated in sequence. The message will proceed down the path for the sub-criteria that it matches first. You can attach different custom attributes to each path.


Related guides