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

# Example Reaction

> A complete walkthrough of building a reaction that issues a benefit when a profile achieves a specific tier.

This guide walks through creating a complete reaction from scratch. The example: issue a benefit to a customer when they achieve tier 2.

## What you'll build

* **Trigger:** `tier.achieved`
* **Filter:** Only proceed if the achieved tier handle is `"tier-2"`
* **Action:** Issue a benefit from a specific benefit definition to the profile

## Prerequisites

You need:

* A Tier Definition with handle `tier-2`
* A Benefit Definition with a known handle (e.g., `"tier-2-welcome-benefit"`)
* A Bearer token with write access

## Step 1: Create the reaction

```shell theme={null}
curl -X POST https://api.[tenant].getomneo.com/api/v3/triggers \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Tier 2 Achieved — Issue Benefit",
    "trigger": "tier.achieved",
    "description": "Issues a welcome benefit when a profile achieves tier 2",
    "is_active": true,
    "actions": [
      {
        "name": "filter",
        "sort_order": 1,
        "arguments": [
          {
            "name": "condition",
            "value": {
              "===": [
                { "var": "definition.handle" },
                "tier-2"
              ]
            },
            "is_dynamic": null
          }
        ]
      },
      {
        "name": "benefit.create",
        "sort_order": 2,
        "arguments": [
          {
            "name": "profile_id",
            "value": { "var": "profile_id" },
            "is_dynamic": true
          },
          {
            "name": "definition",
            "value": "tier-2-welcome-benefit",
            "is_dynamic": null
          }
        ]
      }
    ]
  }'
```

## How it works

1. When any tier is achieved, the `tier.achieved` event fires
2. The `filter` action at sort\_order 1 checks whether `definition.handle === "tier-2"`. If the customer achieved a different tier, the chain stops here
3. If the filter passes, `benefit.create` at sort\_order 2 issues a benefit to the profile using the `profile_id` from the event context and the specified benefit definition handle

## Step 2: Verify the reaction is active

In CX Manager, navigate to **Settings → Reactions** and confirm the new reaction shows a green active toggle.

## Step 3: Test it

1. Select a test profile
2. Manually award enough tier points for the profile to achieve tier 2
3. Navigate to the profile's Incentives tab: you should see the benefit issued against the profile

## Variations to try

* Remove the filter action to issue the benefit on **any** tier achievement
* Change `benefit.create` to `reward.create` to issue a dollar-value reward instead
* Add a `target.send` action after the benefit to notify your comms platform
* Chain multiple reactions for different tier levels by duplicating this reaction and changing the filter handle

## Related

* [Reaction Filters](/dev-guides/reactions/filters): deeper filter examples
* [JSON Conditions](/dev-guides/reactions/json-conditions): full operator reference
* [Targets](/dev-guides/reactions/targets): sending data to external endpoints
