Campaign Create Recipe - Behavioral Action Coupon Reward
š Purpose
Unlike traditional transaction-based campaigns that reward spending, behavioral action offers focus on driving customer advocacy and engagement through non-purchase behaviors.
By following this recipe, you can incentivize high-value digital interactions, such as social media engagement (likes/shares), submitting product reviews, completing surveys, or successful referrals. This recipe will outline how to setup the behavioral action to issue a coupon reward when the specific action is completed. This coupon can be used on a future transaction when the qualification is met.
š¼ Recipe Overview
You will create a behavioral action campaign that issues a $10 off $50 discount basket coupon when a customer submits a product review in your app, with the following setup:
- One reward per customer (1 per wallet)
- Reward is a coupon added to the customerās wallet, available for immediate use
Once live, this behavioral action can be triggered, adding the coupon to their wallet through an API call.
š Prerequisites
Ensure the following are ready before proceeding:
- Access to the Eagle Eye API platform
- Your company unitās clientId and secret
- Active 3-level unit hierarchy (Company > Banner > Store)
- unitId and incomingIdentifier for all redemption partners (banners)
- Start and end dates for the campaign period
- A campaignId to trigger the coupon reward against
- An alphanumeric reference to trigger the coupon reward
š¤ Outputs
After completing this recipe, capture the following output:
| Output Name | Purpose |
|---|---|
| reference | Used to trigger the behavioral action in a wallet |
š Steps
Step 1: Define Your Campaign Setup
This step outlines the rules of your behavioral action, including what they earn, the reference to call on the trigger API, and how long it's available.
- 1.1 Campaign Name: Select a name for the campaign in the details container e.g. Get a 10 off 50 coupon for submitting a product review
- 1.2 Campaign timing: Define the startDate and endDate
- 1.3 Consumer Limit: In rules.creation set the consumerLimit value to 1, ensuring each wallet cannot receive this offer more than once.
- 1.4 Redemption Locations: In partners.redemption, add the unitId for any banners where the coupon can be redeemed
- 1.5 Campaign Type: Select type, class and offerType:
- type: BEHAVIOURAL_ACTION
- class: COUPON
- offerType: NON_TRANSACTIONAL
- 1.7 Set the offer.actions.reference and offer.actions.description
- reference is a value to be used on the services/trigger API to award the points. This must not contain spaces.
- 1.8 Coupon Reward: Set the offer.reward.standard.coupon.campaignId[0] with the campaignId of the offer the customer will receive as a reward
Step 2: Call POST /campaigns
{
"type": "BEHAVIOURAL_ACTION",
"status": "ACTIVE",
"class": "COUPON",
"details": {
"name": "Get a 10 off 50 coupon for submitting a product review",
"alternativeName": null,
"description": "",
"alternativeDescription": null,
"printerMessage": null,
"screenMessage": null,
"tags": [],
"startDate": "2026-05-01T00:00:00+00:00",
"endDate": "2026-12-31T23:59:00+00:00",
"mode": "OPEN"
},
"settings": {
"tokenProvider": "EES",
"tokenFormat": "000000001",
"walletEnabled": true,
"issuanceMethod": null,
"accountClientType": "BEHAVIOURAL_ACTION",
"defaultAccountClientState": "LOADED"
},
"partners": {
"creation": [],
"redemption": []
},
"rules": {
"creation": {
"campaignLimit": null,
"consumerLimit": null,
"consumerLimitActive": null,
"windows": {
"active": false
}
},
"verification": {
"lock": false,
"lockOnVerify": true
},
"redemption": {
"maxRedemptionsPerPeriod": null,
"campaignLimit": null,
"couponLimit": null,
"allowOverride": null,
"allowAccountOverride": null,
"maximumAccountUsage": null,
"maximumDiscountableRelatedContents": null,
"maximumAccountsPerTransaction": null,
"windows": {
"active": false
},
"dates": {
"exclusion": {
"active": false
}
},
"timeBetweenRedemptions": null,
"timeBetweenStamps": null,
"allowMultipleRedeem": null,
"isHiddenFromRelatedWallets": false,
"redeemableOutsideOwningWalletWithIdentity": false,
"redeemableOutsideOwningWalletWithoutIdentity": false
},
"refund": [],
"locations": null,
"expiry": {
"type": "NEVER",
"valueType": null,
"value": null,
"date": null
},
"start": null,
"graceAmount": null,
"useLocalTime": null,
"maxCreditsPerPeriod": null
},
"windows": {
"creation": [],
"redemption": []
},
"dates": {
"redemption": {
"redemption": [],
"exclusion": []
}
},
"relationships": null,
"offer": {
"offerType": "NON_TRANSACTIONAL",
"reward": {
"standard": {
"coupon": {
"campaignId": [
"{campaignId}"
]
}
}
},
"qualification": {
"tenders": null,
"identityTypes": null
},
"actions": [
{
"reference": "productReviewSubmit",
"description": "Csutomer submitted a review"
}
],
"promoId": null
},
"version": 2
}{
"id": "{id}",
"type": "BEHAVIOURAL_ACTION",
"status": "ACTIVE",
"class": "COUPON",
"details": {
"name": "Get a 10 off 50 coupon for submitting a product review",
"alternativeName": null,
"description": "",
"alternativeDescription": null,
"printerMessage": null,
"screenMessage": null,
"tags": [],
"startDate": "2026-05-01T00:00:00+00:00",
"endDate": "2026-12-31T23:59:00+00:00",
"mode": "OPEN"
},
"settings": {
"tokenProvider": "EES",
"tokenFormat": "000000001",
"walletEnabled": true,
"issuanceMethod": null,
"accountClientType": "BEHAVIOURAL_ACTION",
"defaultAccountClientState": "LOADED"
},
"partners": {
"creation": [],
"redemption": []
},
"rules": {
"creation": {
"campaignLimit": null,
"consumerLimit": null,
"consumerLimitActive": null,
"windows": {
"active": false
}
},
"adjudication": {
"excludedProducts": null
},
"verification": {
"lock": false,
"lockOnVerify": true
},
"redemption": {
"maxRedemptionsPerPeriod": null,
"campaignLimit": null,
"couponLimit": null,
"allowOverride": null,
"allowAccountOverride": null,
"maximumAccountUsage": null,
"maximumDiscountableRelatedContents": null,
"maximumAccountsPerTransaction": null,
"windows": {
"active": false
},
"dates": {
"exclusion": {
"active": false
}
},
"timeBetweenRedemptions": null,
"timeBetweenStamps": null,
"allowMultipleRedeem": null,
"isHiddenFromRelatedWallets": false,
"redeemableOutsideOwningWalletWithIdentity": false,
"redeemableOutsideOwningWalletWithoutIdentity": false
},
"refund": [],
"locations": null,
"expiry": {
"type": "NEVER",
"valueType": null,
"value": null,
"date": null
},
"start": null,
"graceAmount": null,
"useLocalTime": null,
"maxCreditsPerPeriod": null
},
"windows": {
"creation": [],
"redemption": []
},
"dates": {
"redemption": {
"redemption": [],
"exclusion": []
}
},
"relationships": null,
"reference": "{reference}",
"offer": {
"offerType": "NON_TRANSACTIONAL",
"reward": {
"standard": {
"coupon": {
"campaignId": [
"{campaignId}"
]
}
}
},
"qualification": {
"tenders": null,
"identityTypes": null
},
"promoId": null,
"actions": [
{
"reference": "productReviewSubmit",
"description": "Csutomer submitted a review"
}
]
},
"version": 2,
"dateCreated": "2026-05-01T17:35:16+00:00",
"lastUpdated": "2026-05-01T17:35:16+00:00",
"lastUpdatedBy": 1
}ā
Business Readiness Checklist
Use these steps to validate the setup of your scheme:
- Retrieve the campaign via GET /campaigns/campaignId to validate setup
- Start and end dates are set as expected
- actions.reference is correctly set to "productReviewSubmit"
- Redemption banners are correctly listed by unitId and incomingIdentifier
- Reward setup reflects the correct campaignid
- Trigger the behavioral action using POST trigger to test and validate this action triggers the correct reward
š§ Troubleshooting Tips
| Issue | Possible Cause & Resolution |
|---|---|
| 400 Bad Request | Check all required fields, including description and alternativeDescription. These can be null but must be present. |
| Invalid redemption partner | Confirm each unitId is correct and belongs to a valid redemption partner under your companyās clientId. Use GET /units/unitId to verify. |
Updated 8 days ago
