Criteria Node

Filter users in real time using event payload, profile, warehouse, and upstream journey attributes.

Criteria nodes branch users based on conditions. In real-time journeys, criteria evaluate against the incoming event and, when needed, enriched values from the user's profile or warehouse.


Field sources

You can filter on the following field sources:

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.

Primary warehouse fields

Criteria can also reference fields from the primary dataset that are not present in the event or a synced profile. GrowthLoop fetches the required values from your warehouse before evaluating the criteria. This keeps the event schema small while still letting you use current warehouse attributes in a journey.

Upstream journey attributes

In a real-time journey, criteria can filter on custom attributes created by an upstream node:

  • Text attributes are evaluated as string fields.
  • Counters are evaluated as integer fields, so you can use comparisons such as greater than or equal to.

The current criteria node's custom attributes are not available to that node's own conditions because the conditions are evaluated before the node applies its attributes. Use the attribute on a downstream node instead.

Flexible query values

Criteria can use values produced by a flexible query. GrowthLoop resolves these values through warehouse enrichment before evaluating the criteria while keeping the path real time. See Real-time enrichment for details and the effect on journey latency.

📘

Note

If the same field name exists in the event payload and enriched data, the enriched value takes precedence. Upstream journey attributes are available as their own journey fields and can be filtered directly.


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


Did this page help you?