# Purchase Transaction

This trigger activates a campaign each time a member completes a purchase transaction that is successfully matched in Open Loyalty. Unlike automation campaigns, this trigger is **event-driven**—it reacts to real-time purchase activity and processes applicable campaigns immediately.

***

### 🎯 When This Trigger Fires

This trigger activates when:

* A **purchase transaction** is received (manually or via API), matched to a registered member.
* The system evaluates all active campaigns with this trigger type for that member.
* The campaign’s **conditions are checked**, and upon meeting them, the campaign’s defined **effects are executed**—such as awarding points, issuing coupons, or performing other reward actions.

Effects are applied **only** when the transaction satisfies the campaign’s conditions (e.g., minimum spend, specific SKUs, time-based qualifiers).

***

### 🛠️ Step-by-Step Setup

{% stepper %}
{% step %}
**Add Campaign**

Go to **Campaigns** or **Referral Campaigns** → ***Add campaign*** → select **Purchase Transaction** trigger.
{% endstep %}

{% step %}
**Set Basic Campaign Details**

* Name, Description, Translations
* Start/End Date, Display Order, Visibility (Everyone / Segment / Tier)
* **Campaign Status** – The campaign will start only if it is active
  {% endstep %}

{% step %}
**Add Transaction Item Filer**

Use filters to refine which items in the transaction count toward campaign conditions or effects.

* Select filters such as brand, category, SKU, and custom item attributes.
* In the next step, you will be able to refer to these items only in the campaign rules.

{% hint style="info" %}
For more information on how to create and use a transaction item filter, please refer to this section of the User Guide: [transaction-item-filters](https://help.openloyalty.io/main-features/campaigns/campaigns-and-referral-campaigns/creating-campaigns/transaction-item-filters "mention")
{% endhint %}
{% endstep %}

{% step %}
**Add Rules**

* **Condition**: (optional) e.g.,
  * *Transaction.grossValue* ≥ 50
  * Includes product filters: brand, category, SKU
  * Date/time qualifiers: weekday, purchase hour
  * Quantity / gross value of the filtered transaction items
* **Effect**: e.g., "Add units: 1 × grossValue", "Add 100 fixed points", "Issue coupon".
  {% endstep %}

{% step %}
**Set Limits & Budget**

* Per-member frequency (e.g., once per month)
* Campaign-level spending caps (total units)
  {% endstep %}

{% step %}
**Summary**

* Review the campaign configuration and amend if needed
* Click on **Add Campaign**
  {% endstep %}
  {% endstepper %}

***

### 📈 Example Use Cases

* **Universal Earn**: 1 point per USD spent (no conditions).
* **Time-Sensitive Bonus**: 2× points on Monday mornings (Condition: weekday = Monday, hour between 9–11).
* **Targeted Product Reward**: Purchase ≥2 of “Acme Drink” → 100 fixed points.<br>

***

### ✅ Best Practices

* *Filter conditions* to ensure rewards align with campaign goals and budget.
* *Apply budget limits* to control issuance.
* *Clone campaigns* to test variants (e.g., different segments, times).
* *Simulate transactions* via API or Campaign Simulator to ensure rules work as expected.<br>

***

### 🧩 What Happens Next

* When a matched transaction arrives, conditions are evaluated, and effects are executed if passed.
* Effects include awarding points, issuing coupons, or adjusting balances.
* Related webhooks are triggered for unit transfers.
