Exponea basics: Filters

Jozo KovacProduct

What would be the point of understanding user behavior perfectly if there wasn’t a tool for selecting users with specific behavior patterns, right? That’s why user filters is one of the most important features in analytics & campaigns automation tools. Let me tell you about the various types of user filters in Exponea.

By design there are four different users filters that work across the majority of Exponea’s features in both analytics and campaign parts.

#1 User attribute filter

User attribute filters is the most basic one and also the most powerful one. The most common use case is to filter users with given values of selected user attribute. There are different types of attributes:

  • imported by import wizard
  • tracked from web by calling exponea.update({att:val})
  • aggregate – attribute calculated on the fly by aggregation of users events (e.g. revenue_last_month)
  • segmentation – dynamic attribute calculated on the fly by applying of saved filters
  • expression – dynamic attribute specified by formula using other attributes

Exponea has various filter conditions based on attribute datatype: string, number, boolean, date/time or list. Types aren’t hardcoded and Exponea tries to estimate a datatype. That can be changed by user anytime.

Examples – Select users who:

  • age between 18 and 25 years AND
  • country in “UK”, “US”, “Germany” AND
  • revenue_last_month > 5000 OR
  • birthday matches current month and birthday matches current day
  • registered_date was more than 30 days ago
  • subscription_end_date is less than 30 days in future
  • unsubscribed is False

Soon our filters will allow you to use “brackets” to aggregate and combine criteria easier. You can see a sneak-peak of new design bellow.


#2 Event filter

Event filter matches all users who have at least one event of a given type. Event filter can be more specific and match only events matching specified attributes. Time is also important and you can filter events only from specific period.

Time periods can be:

  • Unspecified (match all events from both history and future are included)
  • Specified as interval between two dates (match events between 1.1.2015 – 6.6.2016)
  • Relative to current moment (e.g. match events from the last 30 days)
  • Relative to current moment with lag (match events from the last 14 days before 7 days)

Example – Select registered users active in last 30 days, with activity also in 90 days before it and without a payment today:

  • Ever had event “registration”
  • Had event “session” in the last 30 days
  • Had another “session” in the last 90 days before 30 days
  • Had not event “payment” the 1 day (today from 12:00 am)

#3 Funnel filter

Funnel filter matches users who match whole funnel specified by an ordered set of events. Again events in filter can be further filtered.

Funnel filter has an advanced option to set minimum time to finish a funnel. It takes the first occurrence of the first event in a funnel and matches filter only if the last step happens within specified time.

Example 1:  Select users that had a session in last 30 days and made a purchase in less than 5 days after that session.

Example 2:  Select users who registered, added item to chart and haven’t finished a checkout yet:

  • Match funnel Registration – Add to cart in the last 12 hours AND
  • Do not match Registration – Add to cart – Checkout in the last 12 hours


#4 Aggregation filter

Aggregation filter matches attribute calculated on the fly by aggregation of users events (e.g. revenue_last_month). While user filter needs already specified aggregate, aggregation filter uses inline specification of aggregation without the need to save it.

Aggregation functions for events:

  • count(event)

Aggregation functions for event attributes:

  • sum, avg, max, min, first, last

Example: Select users who

  • Have more than 17 session
  • Time from the first event is longer than 1 year
  • Have bought more than 6 items in category “shoes”
  • Have spent more between 100€ and 200€ on brands “Adidas” or “Nike”, on device = “tablet” in the last 3 months

Common behavior

There’s AND operation between filters by default. When needed the user can add OR between blocks on ANDs. A AND B AND C OR D AND E OR F is equivalent to  (A AND B AND C) OR (D AND E) OR (F) where letters stand for filters. Current implementation doesn’t support custom bracketing but we plan to add it soon

Negation can be used in all filters. Just hit icon [N] on given filter for it’s negation.


User attribute filters, event filter, funnel filter and aggregation filters are powerful tools for retrieving well specified groups of users. They work in all analyses and can be used for targeting of marketing campaigns. Complex filters can be stored as segmentations and then simply reused. All filters are always calculated in real-time with no delays or caching. That’s enables Exponea to become the tool of choice for real-time engagement and state-or-the-art analytics.