How to Create a Reward That Triggers on Event Data
Important NoteApplies to flow campaigns built on Extole's upgraded Flow Builder (look for the flow
icon next to the campaign name on the Programs page).
What you're trying to do
You want a reward to be issued only when the triggering event carries certain data — for
example, only reward when the purchase event includes product_id = SKU-123, or only when
product_type = subscription.
In Extole this is done with a data-comparison rule that reads a parameter off the incoming
event and compares it to a value. You attach that rule to the reward (or to the business event
that drives the reward) so the reward only issues when the data matches.
How rewards and rules fit together
A reward in Flow Builder fires through a chain:
incoming event (carries data: product_id, cart_value, ...)
-> business event is created (subject to Trigger Rules + Quality Rules)
-> Reward evaluates its Reward Rules
-> if ALL reward rules pass -> reward issued
So "trigger a reward on data" means adding a data condition somewhere in that chain. You have
a few places to put it, and the choice matters:
| Where you add the rule | Effect when the data does not match | Use when |
|---|---|---|
| Reward Rule (on the reward) | The business event is still recorded, but no reward is sent | You still want to track the outcome event/conversion for reporting, just not issue the reward |
| Trigger Rule (on the business event) | The business event is not created at all | You don't even want to record the event unless the data matches |
| Trigger Rule (on the reward) | This specific reward does not fire (other rewards on the same step still can) | One event can produce different rewards and you want to route by data |
For most "only reward when product X" requests, a Reward Rule is the right choice — you keep
full event tracking and only gate the payout. Use a reward Trigger Rule when a single step has
multiple rewards and the data decides which one fires.
Option A — Gate the reward with a Reward Rule (recommended)
This issues the reward only when the event data matches, while still recording the event.
- Go to the Programs page and find your campaign.
- Click the Manage Flow icon for that campaign.
- In Flow Builder, find the Reward node you want to gate (e.g. the friend reward on
conversion, or a reward-for-action outcome). - Scroll to the Reward Rules section for that reward.
- Click + New Reward Rule and choose Event Data Comparison.
- Configure the comparison:
- Event Data Parameter — the parameter name as it arrives on the event, e.g.
product_id
(orproduct_type,sku,order_value). - Comparison — one of: Equals, Does not equal, Is blank, Is not blank, Contains, Does not
contain, Matches Regex, Does not match Regex. - Value — the value (or regex) to compare against, e.g.
SKU-123.
- Event Data Parameter — the parameter name as it arrives on the event, e.g.
- Give the rule a descriptive name like
Only reward for SKU-123so it's easy to
read in troubleshooting. - Click Apply to save.
Remember: all reward rules on a reward must pass for the reward to be granted (they combine
with AND). Don't add a data rule that unintentionally blocks the default risk/limit rules.
Example: reward only for a specific product
- Event Data Parameter:
product_id - Comparison: Equals
- Value:
SKU-123
Only events whose payload includes "product_id": "SKU-123" will issue the reward.
Option B — Suppress the event entirely with a Trigger Rule
Use this when you don't even want to create the business event unless the data matches (e.g. only
record a conversion at all when product_type = subscription).
- Programs → Manage Flow → open the business event step (e.g. Converted).
- Turn on the advanced filter to reveal Trigger Rules (Trigger Rules are hidden until the
advanced filter is on). - Click to add a Trigger Rule → Event Data Comparison.
- Configure Event Data Parameter, Comparison, and Value exactly as in Option A.
- Apply.
If the incoming event fails the trigger rule, Extole does not create the business event, so no
downstream reward, email, or reporting step happens for it.
Option C — Route to a specific reward with the reward's Trigger Rules
Use this when a single outcome/business event can produce more than one reward and you want
this reward to fire only when the data matches. For example, two rewards on the same conversion
step where the product decides which reward is issued.
This rule lives on the Reward's Trigger Rules and uses Event Data Comparison.
- Programs → Manage Flow → select the Reward in the flow.
- Under the reward's Trigger Rules, click + New Reward Rule.
- Select Event Data Comparison and give it a descriptive name (e.g.
Trigger only for SKU-123). - Configure:
- Event Parameter — the business-event data name, using underscores instead of spaces
(e.g. aProduct IDis referenced asproduct_id). - Comparison — Equals, Does not equal, Contains, Matches Regex, etc.
- Value — the value to match, e.g.
SKU-123.
- Event Parameter — the business-event data name, using underscores instead of spaces
- Click Apply.
If the reward's trigger rule fails, this reward does not fire (other rewards on the same business event,
each with their own trigger rule, still can). This is how you route different data values to
different rewards on one event.
The parameter must exist as business-event data on the outcome step. If it isn't there yet,
add it first: click into the outcome step → + New Data → Business Event Data, and name it
to match the field you send. Then reference it in the reward's trigger rule as the Event Parameter (spaces → underscores).
Example: two rewards on one event, routed by product
- Reward A → Trigger Rule: Event Data Comparison, Event Parameter
product_id, Equals,SKU-123 - Reward B → Trigger Rule: Event Data Comparison, Event Parameter
product_id, Equals,SKU-999
The conversion event fires the matching reward based on the product id it carries.
Prerequisite: the data must actually be on the event
A data rule can only compare a parameter that is sent on the event. Before configuring the
rule, confirm your integration includes the field:
- JS tag / API: include the parameter in the event
data, e.g.
{ "event_name": "conversion", "data": { "product_id": "SKU-123", "cart_value": "129.00" } }. - Batch file: include a column for the parameter and map it to event data.
The Event Data Parameter name in the rule must match the parameter name you send, exactly
(names are case/spelling sensitive). If the field isn't present, Equals will fail and
Is blank will pass.
Troubleshooting
- Reward never issues, even for matching data. Check that the parameter name in the rule
matches the parameter you send (spelling/case), and that the value matches the comparison type
(e.g. Equals is exact — capitalization and punctuation must match). - Reward issues for everything. The data rule may not be on the reward — confirm it's listed
under that reward's Reward Rules, not on a different reward or event. - Event isn't even recorded. You may have added the rule as a Trigger Rule (which suppresses
event creation) when you meant a Reward Rule (which only gates payout). Move it accordingly. - List/array field never equals. Switch Equals to Contains or Matches Regex.
