# Creating Challenges

To create a challenge, navigate to **Loyalty Modules → Challenges** in the sidebar and click the **Create Challenge** button in the top-right corner. The creation wizard guides you through five steps:

1. Challenge info
2. Milestones
3. Rules & Effects
4. Limitation & Budget
5. Summary

***

### Step 1: Challenge info

The first step collects the challenge's basic information. It is divided into six collapsible sections.

#### 1.1. Title and description

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FXYizxoJr9lCvcTSqw0ir%2Fimage.png?alt=media&#x26;token=8bb45cb6-7312-4ea9-af14-00b8b19e4288" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="165">Field</th><th width="107">Required</th><th>Description</th></tr></thead><tbody><tr><td><strong>Name (en)</strong></td><td>Yes</td><td>The challenge name displayed to members. Supports multiple languages via <strong>+ Add translation</strong>.</td></tr><tr><td><strong>Description (en)</strong></td><td>No</td><td>An optional description of the challenge.</td></tr><tr><td><strong>Display order</strong></td><td>No</td><td>A numeric value that controls the sorting position of the challenge in lists.</td></tr></tbody></table>

#### 1.2. Start & end date

Define the period when the challenge is active in the system.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FnE3LORSy9bQmQvbtGhsH%2Fimage.png?alt=media&#x26;token=a5346da8-1d87-446c-bae0-5351c42a3ffe" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="173">Field</th><th width="106">Required</th><th>Description</th></tr></thead><tbody><tr><td><strong>Start at</strong></td><td>Yes</td><td>The date and time when the challenge becomes active.</td></tr><tr><td><strong>End at</strong></td><td>No</td><td>The date and time when the challenge ends. If no end date is set, the challenge stays active all the time.</td></tr></tbody></table>

#### 1.3. Availability

Define when members can make progress toward completing the challenge — for example, limiting it to certain days of the week or a specific date range.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FZ1zQCNf4anS8xwaRZeSt%2Fimage.png?alt=media&#x26;token=c56ae79b-fb90-499a-a2e5-929d9578e4e1" alt=""><figcaption></figcaption></figure>

The **Timeframe** dropdown offers the following options:

<table><thead><tr><th width="222">Option</th><th>Description</th></tr></thead><tbody><tr><td><strong>Always available</strong></td><td>No time restrictions; members can progress at any time.</td></tr><tr><td><strong>Is after</strong></td><td>Members can progress after a selected date.</td></tr><tr><td><strong>Is before</strong></td><td>Members can progress until a selected date.</td></tr><tr><td><strong>Is day of week</strong></td><td>Progress counts only on selected days of the week.</td></tr><tr><td><strong>Is nth day of the month</strong></td><td>Progress counts only on a specific day of the month (e.g., the 1st or 15th).</td></tr><tr><td><strong>Is month of year</strong></td><td>Progress counts only during selected months.</td></tr><tr><td><strong>Is between</strong></td><td>Progress counts only between two specific dates.</td></tr><tr><td><strong>Is not between</strong></td><td>Progress counts at any time <em>except</em> between two specific dates.</td></tr><tr><td><strong>Is time between</strong></td><td>Progress counts only during a specific time-of-day window.</td></tr></tbody></table>

#### 1.4. Visibility

Choose which member groups will be able to see this challenge.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FwHW3C0jIWjkH1kcYL5J1%2Fimage.png?alt=media&#x26;token=61d1897c-9997-4b0c-a60f-e1494475e315" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="273">Option</th><th>Description</th></tr></thead><tbody><tr><td><strong>Visible for everyone</strong></td><td>All members can see the challenge.</td></tr><tr><td><strong>Visible for a specific segment</strong></td><td>Only members in the selected segment can see it.</td></tr><tr><td><strong>Visible for a specific tier</strong></td><td>Only members in the selected tier can see it.</td></tr><tr><td><strong>Hidden</strong></td><td>The challenge is not visible to any member.</td></tr></tbody></table>

{% hint style="warning" %}
Visibility only affects who can **see** the challenge. It does not prevent other members from progressing. To restrict who can progress, use trigger conditions in the Milestones step.
{% endhint %}

#### 1.5. Custom attributes

Custom attributes are data fields used to store additional details about the challenge. Click **New custom attribute** to add key-value pairs.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2F1zQ9UVSQshP5CBgjqvnD%2Fimage.png?alt=media&#x26;token=81318dfe-ad49-48f9-9f9a-4b8b08005066" alt=""><figcaption></figcaption></figure>

#### 1.6. Status

A member can progress only when the challenge is active. Use the toggle to activate or deactivate the challenge.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FXmY5bwFMXP4UchuJ3HvZ%2Fimage.png?alt=media&#x26;token=41b3ce91-8a0e-40df-b006-d87f60661b53" alt=""><figcaption></figcaption></figure>

Once you have filled in the basic information, click **Next: Milestones** to proceed.

***

### Step 2: Milestones

Milestones are the individual tasks a member must complete within the challenge. A challenge can have up to **six milestones**, each with its own conditions, triggers, and types representing a unique goal. Each milestone is tracked independently, and members can complete milestones in any order.

Click **+ Add milestone** to add additional milestones. Use the three-dot menu (⋮) on a milestone tab to rename or remove it.

Each milestone is configured through six sections:

#### 2.1. Title and description

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FHvZYSQvVKGY5n4o8Geak%2Fimage.png?alt=media&#x26;token=41d85a0b-1c6f-4de9-9a05-19766228d60a" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="212">Field</th><th width="122">Required</th><th>Description</th></tr></thead><tbody><tr><td><strong>Milestone name</strong></td><td>No</td><td>A descriptive name for the milestone.</td></tr><tr><td><strong>Milestone description</strong></td><td>No</td><td>An optional description.</td></tr></tbody></table>

#### 2.2. Type and trigger

This section determines **who** can progress the milestone and **what event** triggers it.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FY3UGLFePp4Tegt4Cnqcf%2Fimage.png?alt=media&#x26;token=207385d1-2a27-449e-85d6-ad2a0368eee2" alt=""><figcaption></figcaption></figure>

**Type** defines who can progress a milestone. There are two options:

<table><thead><tr><th width="208">Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Direct milestone</strong></td><td>The member themselves progresses the challenge by performing the trigger action.</td></tr><tr><td><strong>Referral milestone</strong></td><td>A referee (a user referred by a member) progresses the member's challenge.</td></tr></tbody></table>

**Trigger** defines which event will activate the milestone. There are two trigger types:

<table><thead><tr><th width="210">Trigger</th><th>Description</th></tr></thead><tbody><tr><td><strong>Purchase transaction</strong></td><td>The milestone is triggered automatically based on purchase transactions matched with a member.</td></tr><tr><td><strong>Custom event</strong></td><td>The milestone is triggered by a custom event performed by a member. When selected, an <strong>Event type</strong> dropdown appears to choose the specific custom event schema.</td></tr></tbody></table>

#### 2.3. Trigger conditions *(Optional)*

Set detailed conditions for the chosen trigger to determine when the milestone progresses. If no conditions are set, all transactions or selected custom events will count toward challenge progress.

* **For transactions**, conditions are based on attributes such as where the purchase was made, transaction value, item categories, and more.
* **For custom events**, conditions depend on your custom event's specific parameters.
* Conditions related to **members** are available for both triggers.
* You can also use **Expressions** to create more tailored setups.

Click **Add condition** to define one or more conditions.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2Fh7YuEnYMbn5yD2RWblL0%2Fimage.png?alt=media&#x26;token=e93479ee-8eb6-4ede-87bf-21a2a947957f" alt=""><figcaption></figcaption></figure>

#### 2.4. Progress tracking

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FqMBKaQ45q5TGYROdhJ3v%2Fimage.png?alt=media&#x26;token=582ea8de-faa7-44bd-8edd-f4eb89cfbc66" alt=""><figcaption></figcaption></figure>

Select how progress is tracked toward completing the milestone. There are two methods:

<table><thead><tr><th width="273">Method</th><th>Description</th></tr></thead><tbody><tr><td><strong>Number of event occurrences</strong></td><td>Tracks how many times the trigger event happens. Examples: "place 5 transactions above $50", "add 10 product reviews", "place 5 transactions in June".</td></tr><tr><td><strong>Value of event attributes</strong></td><td>Tracks the value of a specific attribute. Examples: "spend $10 in February", "spend $100 on 'ACME' products", "walk 1,000 steps".</td></tr></tbody></table>

#### 2.5. Goals

Set the target to complete this milestone. The goal configuration depends on the **Occurrence** type you select:

**Overall** — The member must reach the goal target at any time, with no streak requirement.

<table><thead><tr><th width="180">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Goal</strong></td><td>The target number of events or attribute value.</td></tr></tbody></table>

**Streak** — The member must reach the goal consistently over consecutive time periods.

<table><thead><tr><th width="219">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Streak type</strong></td><td>Daily streak, Weekly streak, Monthly streak, or Yearly streak.</td></tr><tr><td><strong>Goal (per period)</strong></td><td>The target number per streak period (e.g., events per week).</td></tr><tr><td><strong>Streak period (Value)</strong></td><td>How many consecutive periods the member must maintain the goal (e.g., "3 weeks in a row").</td></tr></tbody></table>

When the streak type is selected, the system displays a summary sentence: *"The member must log X events every \[period], for Y \[period] in a row."*

**Count only unique custom event attributes** — An optional toggle available for both occurrence types. When enabled, progress increases only for unique values. For example, when considering the attribute "brand": a member purchasing products from three different brands advances progress three times, while purchasing three products from the same brand advances progress only once.

#### 2.6. Event limit

Restrict how many times an event can count toward progress within a specified timeframe.&#x20;

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2F43zqCEW3AWx4MbWzl3O4%2Fimage.png?alt=media&#x26;token=91a21905-40a3-4a35-b7c3-b832fb70d5cd" alt=""><figcaption></figcaption></figure>

The **Timeframe** dropdown offers:

<table><thead><tr><th width="156">Option</th><th>Description</th></tr></thead><tbody><tr><td><strong>Unlimited</strong></td><td>No restriction; every qualifying event counts.</td></tr><tr><td><strong>Per hour</strong></td><td>Only a set number of events count per hour.</td></tr><tr><td><strong>Per day</strong></td><td>Only a set number of events count per day.</td></tr><tr><td><strong>Per week</strong></td><td>Only a set number of events count per week.</td></tr><tr><td><strong>Per month</strong></td><td>Only a set number of events count per month.</td></tr><tr><td><strong>Per year</strong></td><td>Only a set number of events count per year.</td></tr><tr><td><strong>In total</strong></td><td>A fixed total number of events that can ever count.</td></tr></tbody></table>

***

### Step 3: Rules & Effects

Rules define the conditions participants must meet to trigger an outcome in the challenge. Effects define what happens once those conditions are met — such as granting rewards, updating units, or modifying member data.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FkvooiIeUCjjUbEpPkDFf%2Fimage.png?alt=media&#x26;token=a3db4a2d-a903-4ea9-9701-99825e645814" alt=""><figcaption></figcaption></figure>

Click **+ Add rule** to create additional rules. Each rule has a name, description, and three components:

#### Trigger type

The trigger type determines **when** the rule fires. There are two options:

<table><thead><tr><th width="236">Trigger type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Challenge completion</strong></td><td>The rule fires only after the <strong>entire challenge</strong> is completed — meaning all required milestones are finished.</td></tr><tr><td><strong>Milestone progression</strong></td><td>The rule fires each time a member reaches a <strong>specific milestone</strong>, even if the challenge is not yet completed.</td></tr></tbody></table>

**Challenge completion** example: If a challenge requires 5 purchases, the reward is granted only after all 5 purchases are made.

**Milestone progression** example: If a challenge requires 5 purchases, you can grant a reward after 2 purchases while progress continues.

#### Conditions

Optional conditions that further refine when the rule applies. Click **+ Add condition** to add criteria such as member attributes, spending thresholds, or other data.

#### Effects

Click **+ Add effect** to define what happens when the rule triggers. Effects can include adding or removing units from a wallet, granting a reward, or assigning/removing custom member attributes.

{% hint style="info" %}
If at least one effect is triggered — for example, one out of five possible effects — the challenge is counted as completed.
{% endhint %}

***

### Step 4: Limitation & Budget

This step controls how often members can complete the challenge and the total reward budget.

#### 4.1. Challenge limit

Defines how many times a member can complete this challenge within a selected timeframe.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FSbe3XTmRjyHi9hfQeteU%2Fimage.png?alt=media&#x26;token=a6203c5c-b6aa-4fd3-b8a3-d03a82ac1e8c" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="328">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Challenge completion per member</strong></td><td>How often a single member can complete the challenge.</td></tr><tr><td><strong>Timeframe</strong></td><td>The period for the completion limit (see below).</td></tr></tbody></table>

The **Challenge completion per member** dropdown and the **Timeframe** dropdown both offer the same options: **Unlimited**, **Per hour**, **Per day**, **Per week**, **Per month**, **Per year**, and **In total**.

For example, setting a limit of **2 per month** means a member can complete the challenge no more than twice each month.

{% hint style="info" %}
How completion is counted depends on the trigger type used in the challenge rule:

* If the rule uses **milestone progression**, each reached milestone triggers the configured effects and increases the challenge completion count.
* If the rule uses **challenge completion**, the completion count increases only after all required milestones in the challenge are completed.
  {% endhint %}

#### 4.2. Challenge budget

Controls the total availability of rewards issued by the challenge.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FWI7XYX4g0vOF6rkstlAN%2Fimage.png?alt=media&#x26;token=50dbaa87-48ef-4611-b735-93572008124c" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="263">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Units issued by the challenge</strong></td><td>The maximum total units that can be distributed across all members. Options: Unlimited, or a cap with a timeframe (Per hour / Per day / Per week / Per month / Per year / In total).</td></tr><tr><td><strong>Units issued per member</strong></td><td>The maximum units a single member can receive. Same timeframe options as above.</td></tr></tbody></table>

***

### Step 5: Summary

The final step presents a read-only review of the entire challenge configuration, organized into collapsible sections:

* **Basic info summary** — Challenge name, description, start and end date, availability, visibility, and status.
* **Milestones summary** — For each milestone: title, description, type, trigger, progress tracking method, goal, and event limit.
* **Rules summary** — Each rule with its trigger type, conditions, and effects.
* **Limitations summary** — Challenge limit and budget settings.

Each section has an **edit** (pencil) icon that takes you back to the relevant step to make changes.

{% hint style="warning" %}
Editing certain challenge settings after activation will reset member progress.
{% endhint %}

{% hint style="info" %}
After creating a challenge, you can **duplicate** it to quickly create a similar one with minor adjustments.
{% endhint %}

Once you are satisfied with the configuration, confirm to save the challenge. If the status is set to **Active**, it becomes available to members immediately based on the configuration you've set.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.openloyalty.io/main-features/challenges/creating-challenges.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
