> ## 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.

# Triggers

> Event-driven Reactions: logic that runs the moment something happens in Omneo.

A **Trigger** in Omneo is an event-driven [Reaction](/concepts/automation/reactions). It listens for one platform event, and every time that event fires, it runs its actions against the subject the event carries.

Triggers are the reaction type to reach for when something *happened* and you want to respond to it.

## How a Trigger runs

1. Something happens in Omneo and an event is dispatched, for example `transaction.created`.
2. Omneo finds every active Trigger listening for that event name.
3. Each one runs its action chain against the event's **context**, the payload describing what happened.

The subject is not something you configure. It arrives with the event: a `transaction.created` event carries the transaction and the profile it belongs to, so the Trigger's actions have a profile to act on without looking anything up.

One event fires all the Triggers watching it, and each runs independently. Two Triggers on `profile.updated` do not see or block each other.

## What a Trigger is made of

| Field                          | Description                                                                                                                 |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| `trigger`                      | The event name to listen for, for example `transaction.created`. This is the only thing that decides when the Trigger runs. |
| `is_active`                    | A Trigger only fires when this is true.                                                                                     |
| `actions`                      | The ordered chain to run, each with a `sort_order`.                                                                         |
| `name`, `description`, `notes` | Labels for whoever maintains it.                                                                                            |

There is no query and no schedule. If you find yourself wanting either, you want an [Automation](/concepts/automation/automations) instead.

## The events you can listen for

Any of the following can be a Trigger's `trigger` value. For what each one's context contains, see the matching section of [Event Contexts](/dev-guides/webhooks/event-contexts#event-reference).

### Profiles and identity

`profile.created` `profile.updated` `profile.merged` `profile.deleted` `identity.created` `balance.updated` `address.created` `address.updated` `profile.address.created` `profile.address.updated` `profile.address.deleted` `attributes.date.created` `attributes.date.updated` `attributes.date.deleted` `attributes.date.linked` `attributes.date.unlinked` `custom-field.created` `custom-field.updated` `custom-field.deleted`

### Transactions and orders

`transaction.created` `transaction.updated` `transaction.deleted` `transaction.received` `transaction.resent` `transaction.sync` `transaction.recalculate` `transaction.points.issued` `transaction.tier-points.issued` `transaction.profile.unattached` `transaction-item.created` `transaction-item.resent` `transaction-item.sync` `transaction-claim.claimed` `transaction-claim.failed` `order.created` `order.updated` `order.deleted` `order.resent` `order-item.created`

### Incentives

`reward.created` `reward.updated` `reward.deleted` `reward.extended` `reward.before.notify` `reward-definition.created` `reward-definition.updated` `benefit.created` `benefit.updated` `benefit.deleted` `benefit.expired` `benefit.code.allocated` `benefit-definition.created` `benefit-definition.updated` `benefit-definition.deleted` `point.created` `point-definition.created` `point-definition.updated` `point-definition.deleted` `credit.created` `credit.updated` `credit.deleted` `credit.extended` `credit.released` `redemption.created`

### Tiers and achievements

`tier.achieved` `tier.progressed` `tier.maintained` `tier.switched` `tier.lost` `tier-point.created` `tier-definition.created` `tier-definition.updated` `tier-definition.deleted` `achievement.unlocked`

### Lists, products, ratings, and interactions

`product-list.created` `product-list.updated` `product-list.deleted` `product-list-item.created` `product-list-item.updated` `product-list-item.deleted` `product-list-item.linked` `product-list-reservation.created` `product-list-reservation.updated` `product-list-reservation.deleted` `product-list-share.created` `product-list-share.deleted` `list-definition.created` `list-definition.updated` `product.created` `product.updated` `product.deleted` `rating.created` `rating.updated` `share.created` `share.updated` `share.deleted` `interaction.created`

### Appointments

`appointment.created` `appointment.updated` `appointment.confirmed` `appointment.arrived` `appointment.completed` `appointment.cancelled` `appointment.rejected` `appointment.deleted`

### Groups and connections

`group.profile.add` `group.profile.remove` `connection.created` `connection.updated` `connection.deleted`

### Configuration and reference data

`location.created` `location.updated` `location.deleted` `region.created` `region.updated` `country.created` `country.updated` `rate.created` `rate.updated` `aggregation.updated` `notification.created` `profile-temporary.created` `profile.before.update`

### The ones you will reach for most

| Event                      | Fires when                                                                             |
| -------------------------- | -------------------------------------------------------------------------------------- |
| `transaction.created`      | A transaction is recorded. The workhorse for earn rules.                               |
| `transaction-item.created` | A line item is added, for per-product rules.                                           |
| `profile.updated`          | A profile changes, including its statuses and tags. Carries `changes` and `originals`. |
| `profile.created`          | A new profile is created, for welcome flows.                                           |
| `tier.achieved`            | A profile reaches a new tier.                                                          |
| `benefit.created`          | A benefit is issued, for notifying the customer.                                       |
| `reward.updated`           | A reward changes, including when it is redeemed.                                       |

<Note>
  `profile.before.update` fires before the write rather than after, so its actions can influence what is saved. Treat it differently from the others: it is not a notification that something happened.
</Note>

## Data available to a Trigger

Filters and action arguments read from the event's **Event Context**: the profile, the object that triggered the event, and related data such as aggregations, tags, statuses, and tier.

Events that describe a change also carry what changed. `profile.updated` includes `changes` and `originals`, which is how a Trigger can act on a transition rather than a state, for example "the profile just entered this tier" rather than "the profile is in this tier".

See [Event Contexts](/dev-guides/webhooks/event-contexts) for the full reference.

## Related

* [Reactions](/concepts/automation/reactions), the umbrella concept and the shared action layer
* [Automations](/concepts/automation/automations), the query-driven counterpart
* [Reactions Overview](/dev-guides/reactions/overview) for building one
* [Reaction Filters](/dev-guides/reactions/filters) for gating a chain
* [Trigger API](/api-reference/trigger/overview)
