---
title: "Use Array Filters for Event Triggers"
slug: "using-array-filters-for-event-triggers"
updated: 2026-06-08T20:49:43Z
published: 2026-06-08T20:49:43Z
canonical: "docs.xtremepush.com/using-array-filters-for-event-triggers"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Use Array Filters for Event Triggers

Refine your campaign targeting by applying specific filters to event triggers that contain array data.

When setting up a campaign trigger in the **Triggers** tab, you can apply specific conditions if the event you are specifying includes an array. This allows you to target users based on the specific contents of that array property.

## Filter Arrays of Objects

> [!TIP]
> You must have ClickHouse for events enabled to use object array filtering. Contact support to enable this.

When the array in your campaign trigger contains objects, you can use the **Contains Object** and **Not Contains Object** operators to filter your campaign trigger.

You can combine one or more criteria to define the object you are looking for. Each criteria is specified by either a:

- **Property name**, an operator, and a corresponding **Property value**. For example, *Sport***Equals***Tennis*
- **Property name** and a boolean condition. For example, *is_cashed_out***Equals***false*

### Example Scenario: Contains Object

You want to trigger a campaign for users who have placed a bet on a tennis match with odds greater than 5. The campaign is triggered by a *bet* event, which is recorded each time a user places a bet. The following is an example of the data this event contains:

```json
{
  "event_name": "bet",
  "timestamp": "2025-09-04T09:21:18Z",
  "properties": {
    "bet_id": "BET-98765",
    "stake": 10.00,
    "parts": [
      {
        "sport": "Football",
        "market": "Match Winner",
        "selection": "Dublin Dynamos",
        "odds": 2.5
      },
      {
        "sport": "Tennis",
        "market": "Player to Win",
        "selection": "A. Player",
        "odds": 6.0 
      }
    ]
  }
}
```

The image below shows how to filter the event trigger to target users who have placed a bet on a tennis match with odds greater than 5. The trigger is set for a *bet* event, and its *parts* property must contain an object where sport equals *Tennis* and odds are greater than *5*.

![Example of](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/b16a64d197a8e82cb604869a6fff0de65b70332a95e5426db256976d2f7be723-Screenshot_2025-09-03_at_11.42.35(1).png)

Example of setting a Contains Object filter

### Example Scenario: Not Contains Object

You want to send an offer to encourage users who typically place low-value bets to increase their stake amount. The campaign is triggered by a *bet* event, which is recorded each time a user places a bet. The following is an example of the data this event contains:

```json
{
  "event_name": "bet",
  "timestamp": "2025-09-04T09:29:31Z",
  "properties": {
    "bet_id": "BET-LOW-001",
    "parts": [
      {
        "market": "First Goalscorer",
        "selection": "C. Striker",
        "stake": 10.00
      },
      {
        "market": "Correct Score",
        "selection": "2-1",
        "stake": 5.00
      }
    ]
  }
}
```

The image below shows how to filter the event trigger to target users who typically place low-value bets. Your trigger condition is set for the *bet* event. This condition filters users who place smaller bets by ensuring the *parts* array does not contain any object with a *stake* property greater than *20*.

![Example of ...](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/3b46f74bba3102e34db857eaaa9888d34448863eecb15a2bcac79eb3061bf161-Screenshot_2025-09-03_at_12.03.58(1).png)

Example of setting a Not Contains Object filter

## Filter Arrays of Simple Values

Use the following operators when your event property is a simple array of strings or numbers:

- **Contains Value** / **Not Contains Value**: Checks if a single, specific value exists (or does not exist) in the array. For example, you can configure a campaign to trigger if the event property *tags***Contains Value***VIP*.
- **Contains Any Of** / **Contains None Of**: Checks if any (or none) of the values from a list you provide are present in the array. For example, you can configure a campaign to trigger if the event value *purchased_categories***Contains Any Of** ["Shoes", "Jackets"].
