Event-Triggered Programmes

The EVENT_TRIGGER earning rule is the engagement-platform programme: WHEN an event happens, AND conditions hold, THEN issue a reward. It fires from submitted domain events (events), not from POS transactions.

Award points on a threshold

Create a campaign with an EVENT_TRIGGER rule — here, 100 points whenever a purchase over R500 is reported:

JSON
{
  "name": "Big spender bonus",
  "earningRule": {
    "type": "EVENT_TRIGGER",
    "eventKey": "purchase.completed",
    "conditions": [
      { "property": "amount", "operator": "gt", "value": 500 }
    ],
    "reward": { "type": "POINTS", "points": 100 }
  }
}

Issue a tangible reward

The reward is a canonical reward spec — POINTS or any tangible reward (coupon, gift card, discount voucher, free item). frequency.maxPerMember caps lifetime fires per member; frequency.everyNth fires on every Nth matching occurrence.

JSON
{
  "type": "EVENT_TRIGGER",
  "eventKey": "survey.completed",
  "conditions": [
    { "property": "score", "operator": "gte", "value": 8 }
  ],
  "frequency": { "maxPerMember": 1 },
  "reward": { "type": "GIFT_CARD", "amount": 5000, "currency": "ZAR" }
}

Conditions

Each condition compares a payload property: operators are eq, ne, gt, gte, lt, lte, in, nin, contains, and exists. All conditions must hold (AND). Omit conditions to fire on every occurrence of the event key.

No code required

Business users can build the same programme visually in the Programme Builder: choose the Custom event trigger, pick the event, add conditions from the event's schema, set frequency, and choose the reward.

Ready to go live?Production Access & KYB →
Event-Triggered Programmes — Loyalty Engine Docs