Campaign Optimization Engine - Investor Demo
Simple percentage-based cashback
{"percentage": 15.0, "eligibleCategory": "RESTAURANT"}
Percentage cashback with monthly/annual caps
{"percentage": 10.0, "cap": 500.0, "eligibleCategory": "MARKET"}
Fixed amount reward per qualifying purchase
{"rewardAmount": 50.0, "eligibleCategory": "TRAVEL"}
Interest-free installment benefits
{"installmentCount": 6, "minAmount": 1000.0}
Non-financial benefits (e.g., "Buy 1 Get 1")
{"benefitDescription": "Free coffee", "eligibleCategory": "RESTAURANT"}
Rules determine if a purchase qualifies for campaign benefits.
Purchase amount thresholds
[
{"type": "MinAmount", "config": {"minAmount": 250.0}},
{"type": "MaxAmount", "config": {"maxAmount": 5000.0}}
]
Include or exclude specific categories
[
{"type": "Category", "config": {"categories": ["RESTAURANT", "TRAVEL"]}},
{"type": "CategoryExclusion", "config": {"excludedCategories": ["FUEL"]}}
]
Target specific merchants
[
{"type": "Merchant", "config": {"merchants": ["Starbucks", "Costa Coffee"]}}
]
Specific days of the week (1=Monday, 7=Sunday)
[
{"type": "DayOfWeek", "config": {"daysOfWeek": [6, 7]}}
]
This example: Saturdays and Sundays only
Time windows (24-hour format)
[
{"type": "TimeOfDay", "config": {"startTime": "18:00", "endTime": "23:00"}}
]
This example: 6 PM to 11 PM only
Requires exact progress count (for milestone rewards)
[
{"type": "ProgressCompleted", "config": {"requiredCount": 4}}
]
This example: Reward triggers on exactly 4th qualifying purchase
Progress rules determine what activity counts toward campaign goals.
Each purchase must be on a different day
[
{"type": "DifferentDay", "config": {}}
]
Use for "Make 4 purchases on different days" campaigns
Minimum amount for purchase to count
[
{"type": "MinAmountProgress", "config": {"minAmount": 100.0}}
]
Only specific categories count toward progress
[
{"type": "CategoryProgress", "config": {"categories": ["RESTAURANT"]}}
]
Only specific merchants count toward progress
[
{"type": "MerchantProgress", "config": {"merchants": ["McDonald's"]}}
]
Calculator: PercentageCashback
{"percentage": 15.0, "eligibleCategory": "RESTAURANT"}
Rules:
[
{"type": "MinAmount", "config": {"minAmount": 250.0}},
{"type": "Category", "config": {"categories": ["RESTAURANT"]}}
]
Progress Rules: Empty (no progress tracking)
Calculator: FixedReward
{"rewardAmount": 50.0, "eligibleCategory": "GENERAL"}
Rules:
[
{"type": "DayOfWeek", "config": {"daysOfWeek": [6, 7]}},
{"type": "MinAmount", "config": {"minAmount": 500.0}}
]
Result: 50 TL reward for purchases over 500 TL on weekends
Calculator: FixedReward
{"rewardAmount": 100.0, "eligibleCategory": "GENERAL"}
Rules:
[
{"type": "ProgressCompleted", "config": {"requiredCount": 4}}
]
Progress Rules:
[
{"type": "DifferentDay", "config": {}}
]
Result: 100 TL reward after making 4 purchases on different days
Calculator: CappedPercentageCashback
{"percentage": 20.0, "cap": 300.0, "eligibleCategory": "MARKET"}
Rules:
[
{"type": "Category", "config": {"categories": ["MARKET"]}}
]
Result: 20% cashback on groceries, max 300 TL per month
RESTAURANT
MARKET
TRAVEL
FUEL
ENTERTAINMENT
FASHION
ELECTRONICS
HEALTH
GENERAL
[] if you don't need rulesCreate the user first in the Users tab
Make sure the Bank ID is correct when creating campaigns
Check your JSON syntax - missing quotes, brackets, or commas
Check if the user is enrolled and if purchase meets campaign rules