--- title: "Configure Quests" slug: "configure-quests" updated: 2026-09-25T11:55:36Z published: 2026-09-25T11:55:36Z canonical: "docs.xtremepush.com/configure-quests" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Configure Quests > [!NOTE] > For each quest, you must specify the following mandatory fields: > > - **Completion Conditions**: The event(s) the user must trigger to complete the quest. > - **Occurrence**: If the event must be triggered once, over consecutive days, or over consecutive weeks. > - **Rewards**: The reward your users get for completing the quest. > - **Title**: The internal and external name of the quest. To create a quest, go to **Ways to Earn** > **Quests** > **Create**. The sections below describe how to configure a quest. ## Configure Complete Conditions In the **Completion Conditions** section, specify the actions your user must perform to complete the quest. This involves configuring the user action (**Desired Action**) and the frequency of that action (**Occurrence**) . 1. Specify Desired Action: Under **Desired Action**, specify one or more user actions (events) and the number of times a user must complete that action to complete the quest. For example, a user logs in to your website three times. You can further refine these triggers using the following options: - **Requirements**: Use event properties to refine the user action. See the image below for an example quest that requires users to save 500€. ![](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/Screenshot 2026-09-23 at 13.27.50.png?sv=2026-02-06&spr=https&st=2026-10-28T09%3A57%3A04Z&se=2026-10-28T10%3A57%3A04Z&sr=c&sp=r&sig=qtRYJhkVlHjdyyehX0WHRK0r1ZrQWgnYUeW4Hr6Vbyg%3D) - **Reset when requirements aren’t met**: Use this toggle to require that events are completed in a specific sequence or condition. For example, if a user must place five 20€ bets in a row and one bet does not meet the specified bet amount, their progress resets to zero. - **Progress**: The **Progress Counter** defines how each event that meets your requirements increases the user's progress toward the **Target**. Set it to one of the following options: - **+1 with every event**: Progress increases by 1 each time the user triggers an event that meets the requirements. This is the default option. For example, if the **Desired Action** is `bet_executed` and the **Target** is 5, the user completes the challenge after five qualifying bets. (what does does +1 here mean then) - **Accumulative (by event field)**: Progress increases by the value of a numeric field in the event. Specify the path to this field under **Event field path**. For example, if the **Desired Action** is `move_savings`, the **Event field path** is `$.body.amount`, and the **Target** is 500, the user completes the challenge when the amounts from all their savings events add up to 500. - **Custom expression**: Progress is calculated by a mathjs formula you write yourself. The formula runs each time a qualifying event occurs. It combines the user's current progress with details from that event to calculate the new progress value. - **Event handling:** The field in the **Desired Action** event payload that uniquely identifies each event. If Xtremepush receives an event with an ID it has already processed for this challenge, it ignores the event, so the same action does not count twice. For example, if the **Event ID path** is `$.body.betId` and Xtremepush receives the following event twice, only the first counts toward progress: ```json  {    "body": {      "betId": "BET-1001",      "amount": 50    }  } ``` - **Challenge Visibility**: Use this eye icon to specify if a user can see this quest on your loyalty widget. 2. Specify Occurrence: Specify how the event conditions must be met: > [!NOTE] > The occurrence option is different from the overall quest timeframe, which you configure under the **Restrictions** section of a quest. - **Once**: The user must completes the **Desired Action** only once. - **Over Consecutive Days**: The user must complete the **Desired Action** every day for a set period between 1 and 15 days. For example, a user logs in to your website twice a day for five consecutive days to complete the quest. - **Over Consecutive Weeks**: The user must complete the **Desired Action** every week for a set period between 1 and 15 weeks. For example, a user places at least one bet of 20€ every week for four consecutive weeks to complete the quest. ## Specify Quest Restrictions Under **Restrictions**, you can specify the following for each quest: - **Start this quest automatically on first matching event**: Use this toggle to accept users into the quest automatically. When a user triggers the **Desired Action** event, they are accepted into the quest and the event counts toward their progress. Users do not need to accept the quest first. Without this toggle, Xtremepush discards any events a user triggers before they accept the quest. You cannot use this toggle on a quest with a token price. > [!NOTE] > This toggle is not only available on every project. Reach out to your Account Manager if you want this feature enabled on your project. - **Completion Period**: Set the timeframe within which a user must finish the quest. You can select durations up to one month or choose to have no restriction. - **Additional Restrictions**: - **Add Requirement**: Restrict the quest to specific user segments. - **Unlocks after completing**: Use this option if you want this quest to only be available after a user has completed an existing quest. This option is useful if you want to create quest chains. - **Quest Distribution**: Define the dates when the quest is active. If your quest doesn’t have any defined dates, use the checkboxes **Immediately** and **Until Canceled**. This ensures your quest remains active until you deactivate it in the **Quests** tab. - **can user do this quest only once**: Use this option to specify if a user can complete the quest more than once. If you allow multiple completions, you can set limits such as once per day, once per week, or once per month. ## Specify Quest Reward Under **Rewards**, specify one or more rewards that the user receives when they trigger the quest. See [Loyalty Reward Types](/documentation/docs/loyalty-reward-types) for more information on the different reward types and how to configure them. Use the **Pay to Accept** option to configure a token entry fee for the quest. If enabled, you must specify the price in tokens that a user must pay to start the quest. Only tokens can be used as quest entry fees. ## Manage Quest Visibility In this **Overview** section, you define the internal name and appearance of the quest in your widget. - **Title**: The title of the quest as it appears to users in the loyalty widget. - **Description**: Add an optional description to provide more context about the quest. - **Can the user cancel this quest**: Specify if users are allowed to opt out of a quest once they have started it. If a user opts out, a *quest_canceled* event is recorded for that user. - **Group**: You can organise quests into specific groups, such as *Onboarding Quests*. These groups appear internally in the **Quest List** section of the widget in the **Customize** tab. - **Payload for event on click:** Provide a URL to direct users to a specific location on your website or app. For example, if your quest requires users to make a referral, you can add a link that takes them directly to your referral page. We recommend adding any links in the quest **Description**, rather than using this option.