Create a Challenge
Go to Gamified Campaigns β Challenges β New Challenge.
Configurationβ
Creating a challenge is a three-part setup: first define the data that measures progress, then create the challenge (format, levels, and prizes), and finally test the customer experience.
| Phase | Owner App area | What you configure | Example |
|---|---|---|---|
| 1. Create the Calculated Attribute | Customers β Calculated Attributes | The numeric value that tracks customer progress | monthly_cart_count, monthly_spend, category_units_bought, sport_minutes |
| 2. Create the Challenge | Gamified Campaigns β Challenges | Format, visibility, enrollment, levels/thresholds, prizes per level, countries, and status | Progressive "Monthly Spender": β¬50 / β¬120 / β¬200 with prizes per level |
| 3. Test the flow | Streaming API + customer app | Verify the customer appears in the challenge catalogue, progress updates after attribute calculation, and prizes fire when thresholds are crossed | Progress moves from level 1 to level 2; both prizes granted if one calc jumps two thresholds |
The challenge does not calculate progress by itself. It reads the selected Calculated Attribute and compares its latest value against each level threshold. Progress freshness depends on that attribute's execution schedule.
Challenge formatβ
Before Definition, pick the Challenge format:
| Format | Behavior |
|---|---|
| Single milestone | One threshold and its prizes β the classic one finish line. |
| Progressive | Same metric, 2β5 strictly increasing thresholds; each level can have its own prizes. Progress is cumulative. |
| Multi-action | Several distinct actions in one challenge β coming soon (not configurable yet). |
Step 1: Basic Fieldsβ
| Field | Required | Description |
|---|---|---|
| Name | Yes | Display name; supports multiple languages |
| Description | No | Customer-facing explanation of the challenge goal |
| Partner | No | Associates the challenge with a specific partner |
| Image | No | Visual asset shown to customers |
| Type | No | Category set up per company via Customer Success |
Select a Customerβ
Controls who can see and participate in the challenge (audience), independently of enrollment and prizes.
| Option | Description |
|---|---|
| Loyalty Club | The challenge is available to loyalty club members (subject to countries, dates, and enrollment policy). Optional customer conditions can further narrow who qualifies. |
| Targeted | The challenge is restricted to customers who receive it through a Targeted Delivery. It does not appear in the catalogue and cannot be won until a delivery assigns it (via voucher). Only challenges marked Targeted appear in the Targeted Delivery challenge selector. |
Targeted + enrollment: if the challenge is Targeted and enrollment is required, the customer needs both an active assignment from Targeted Delivery and a completed enrollment to win. If enrollment is not required, the Targeted Delivery assignment alone is enough to participate.
Use Loyalty Club for open club-wide challenges. Use Targeted when only a specific Audience should see and play the challenge β then send it from Campaign Personalization β Targeted Delivery.
Step 2: Availability Datesβ
| Field | Description |
|---|---|
| Available from / to | Window during which the challenge is active and can be won |
| Display from / to | Window during which the challenge is visible via the Streaming API β may differ from availability, allowing the challenge to appear before it is active |
Targeted Delivery recurrenceβ
If the Challenge is sent through Targeted Delivery, the send dates do not replace the Challenge dates. Targeted Delivery controls when the Audience receives the Challenge communication or assignment; the Challenge availability controls whether the Customer can actually win it.
| Scenario | Configuration guidance |
|---|---|
| One-off send | Set availability so the Challenge is active when the send happens and remains active for the full participation window. |
| Weekly recurrent send | Keep the Challenge available for the whole recurrence period. If Customers should win once per week, align the calculated attribute period and expiration policy with the weekly reset. |
| Monthly recurrent send (e.g. 6 months) | Keep availability open for the full six months. Targeted Delivery sends once a month; it does not extend availability. For once-per-month wins, use a monthly attribute period and expire at the end of the calculation window. For one continuous goal across six months, use an attribute period that covers the whole window. |
| Reminder sends | Keep display and availability dates open for the reminder period, otherwise Customers may receive a reminder for a Challenge they cannot see or win. |
A recurrent Targeted Delivery does not extend Challenge availability. If the Challenge availability ends before the recurrence ends, later sends may still run, but Customers will not be able to win the Challenge outside its active window.
See How Challenges Work for a full worked example (6-month Challenge + monthly Targeted Delivery + progress/expiration).
Step 3: Customer Attributeβ
Select the customer attribute that tracks progress. Only numeric attributes are available (e.g. total spend this month, number of visits this quarter). The platform auto-derives:
- Period β the calculation window (e.g.
current_month,last_30_days) - Calculation frequency β how often the value is recalculated (determines progress update cadence)
Customer attributes must be created before setting up a challenge. See Calculated Attributes for details on how to create numeric attributes.
Example calculated attributes for challengesβ
| Challenge goal | Calculated Attribute example | Data type | Threshold |
|---|---|---|---|
| Make 3 carts of at least β¬50 this month | Count carts where total >= 50 in the current month | Integer | 3 |
| Spend β¬500 in November | Sum cart totals for the selected period | Number | 500 |
| Progressive monthly spend ladder | Sum cart totals for the current month | Number | 50 / 120 / 200 |
| Buy 10 units from a product category | Sum qualifying line quantities for that category | Integer | 10 |
| Complete 100 sport minutes | Sum custom event minutes sent by a partner app | Integer | 100 |
The attribute must represent the same metric that the challenge communicates to the customer. If the challenge says "Visit 3 times", the attribute should count visits/carts, not total spend.
Step 4: Enrollment Policyβ
| Mode | Behavior |
|---|---|
| Open to all | All customers whose attribute is calculated automatically participate β no action required from the customer. |
| Enrollment required | Customers must explicitly subscribe via POST /challenges/:id/enroll before they can win. Optionally set a maximum enrollment cap. |
When enrollment required is enabled, you can configure the enrollment limit:
| Enrollment limit | Description |
|---|---|
| Unlimited | No cap β any eligible customer can join at any time during the challenge window. |
| Max enrollments quantity | Sets a hard cap on total subscribers (e.g. 2,000). Once reached, no further enrollments are accepted. |
A customer can enroll before the challenge start date, but never after the end date. If enrollment is required, only customers who explicitly subscribed can win β customers who reach the goal without enrolling are not awarded the prize.
Progress follows the Calculated Attribute, not the enrollment date. By default, enrollment does not filter which carts or events count: the challenge compares the attribute value as calculated. Whether activity before enrollment (or between enrollment and challenge start) is included depends on how you define the progression metric. To exclude pre-enrollment or pre-start activity, configure the attribute accordingly β the challenge does not apply that cut-off on its own.
Step 5: Levels and Thresholdβ
Configure the level(s) β each level has a name, a threshold value the customer's attribute must reach or exceed, and the prizes for that level.
Single milestoneβ
One level: name + threshold + prizes for that finish line.
| Field | Description |
|---|---|
| Name | Customer-facing label for the level (e.g. "Gold level"). Max 50 characters. |
| Threshold | The numeric value the customer's attribute must reach or exceed to win. |
| Prizes | Selected on the challenge for this level β see Step 7. |
Progressiveβ
Same metric, multiple escalating thresholds (ladder). Progress is shared across levels; reaching a higher level does not reset progress toward the next.
| Field | Description |
|---|---|
| Level | Auto-numbered in order (1, 2, 3β¦). Numbers are not skipped. |
| Name | Customer-facing label for the milestone. Max 50 characters. |
| Threshold | Must be strictly greater than the previous level and strictly less than the next. Values cannot be repeated. |
| Prizes | Per level β each rung can unlock different rewards. |
| Add / edit / delete level | Add up to 5 levels. Progressive challenges require at least 2 levels. |
If a single attribute recalculation already exceeds several thresholds (for example the customer's first qualifying purchase jumps past level 3), the customer wins every level crossed in that calculation and receives all corresponding prizes β not only the highest level.
If you only need one goal and one prize set, use Single milestone. Progressive needs at least two levels; deleting down to one level is blocked with a reminder to switch format.
Expiration Policyβ
The expiration policy defines when a won challenge resets so the customer can attempt it again. The challenge cannot be won a second time until after it has expired.
| Option | Behavior |
|---|---|
| Months after winning | The challenge resets the same calendar day N months after the win date. If the resulting date is invalid (e.g. February 30th), it rolls to the first day of the following month. |
| Days after winning | The challenge resets exactly N days after the win date. |
| At the end of the calculation window | Resets at the end of the current period. For example, if the attribute window is current_month and the customer wins in April, the challenge resets on May 1st. |
| At the end of the next calculation window | Resets at the end of the following period. Using the same example, the challenge would reset on June 1st. |
Example: choosing an expiration policyβ
Challenge: βMake 3 carts this monthβ β Calculated Attribute period = current_month. Customer wins on 15 April.
| Policy | When the challenge resets | When they can win again |
|---|---|---|
| Days after winning (e.g. 30) | 15 May | After 15 May |
| Months after winning (e.g. 1) | 15 May | After 15 May |
| At the end of the calculation window | 1 May (end of April) | From May β aligned with the monthly attribute reset |
| At the end of the next calculation window | 1 June (end of May) | From June β skips the rest of the current window and the next full period |
Use end of the calculation window when the goal is meant to match the attribute period (e.g. once per month with current_month). Use days/months after winning when you want a cool-down from the win date, regardless of calendar periods. Until the challenge expires, the customer cannot win it again even if the attribute value still meets the threshold.
Step 6: Countries and Statusβ
Optionally restrict the challenge to specific countries. Set Status to Enabled.
Countries control visibility, not prize logic. Country filters determine which customers can see and enroll in the challenge (based on their registration country). Whether a customer actually wins depends on the customer attribute configuration and the prizes attached to the challenge. Align country filters on the challenge with any country restrictions on the selected prize campaigns.
Status vs. availability dates are independent controls. If a challenge is Enabled but outside its availability dates, it cannot be won. If a challenge is Disabled but within its availability dates, it will not be available to win. Both conditions must be satisfied simultaneously.
Step 7: Define the Prizeβ
Prizes are selected on the challenge form when you create or edit levels β not as a separate rule with trigger βAfter winning a challengeβ. Points campaigns no longer offer Challenges as an event; that link is only created from the challenge.
For each level you can attach prizes. At most one prize of each type per level (for example one points prize, one discount, and one reward β never two different discount campaigns on the same level).
| Prize type | What you select | Delivery when the level is won |
|---|---|---|
| Points | Points campaign | If injection is on: the selector shows only Direct assignment points campaigns; points are credited directly. If injection is off: targeted points campaigns; a points voucher is delivered. |
| Discount | Coupon or discount campaign | Legacy coupon companies: select a coupon. New-engine companies: select a targeted discount campaign; a discount voucher is delivered. |
| Reward / Gift | Catalog + targeted reward only | Auto-redeemed rewards cannot be selected. On win, the gift is not redeemed automatically β it appears in the customer's personalized catalog for them to redeem. |
| Game | Targeted game | A game voucher is delivered so the customer can play. |
Reward / Gift prizes are never auto-redeemed. Only rewards configured as catalog and targeted are available in the selector. When the customer wins the challenge level, the gift shows up in their personalized catalog as something they can redeem. If the gift should be free, set its cost to 0 points; otherwise the points cost is deducted when the customer redeems it (not when they win the challenge).
Configure the same countries (and eligibility) on both the challenge and the campaigns you pick as prizes.
See Prizes for full prize-type detail.
How It Worksβ
- You define the challenge with one customer attribute as the progress metric, a format (single or progressive), and one or more levels with thresholds and prizes.
- Customers participate β automatically or by enrolling via
POST /challenges/:id/enroll. - As carts or custom events arrive, the tracked attribute updates on its configured execution schedule.
- When the attribute value reaches a level threshold, that level is marked as won (all crossed levels in one calculation, for progressive).
- The prizes configured on each newly won level are delivered automatically.