# Achievements

{% hint style="warning" %}
**Achievements will be replaced with Challenges!**

Challenges replace and extend the previous Achievements feature, combining milestone tracking with the ability to define effects directly — such as adding or removing units, updating member attributes, and granting rewards — all in one place.

**What this means for existing Achievements:** \
Your previously configured Achievements are still available and continue to work. They are now presented in a new structure that supports more advanced configuration.

To find out more about **Challenges**, please refer to this article: [challenges](https://help.openloyalty.io/main-features/challenges "mention")
{% endhint %}

## **Overview**&#x20;

The Achievements module allows members to participate in campaign-based challenges, which, once completed, give users additional benefits in the form of extra units, coupons, and other rewards.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FnicRhMmh3uzUAzVTquaj%2Fimage.png?alt=media&#x26;token=4201a1da-5ad8-415f-9dba-c77faa27795d" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
You can have a maximum of 50 active achievements per tenant.
{% endhint %}

Achievement-based rules can be especially effective in boosting buying frequency and delighting your customers. This feature enables loyalty managers to define different types of achievements and configure campaigns using a new set of conditions and triggers.&#x20;

Examples of challenges for users to complete include:

* *Finalizing 4 transactions per month 4 months in a row with a minimum transaction value of $20.*
* *Transactions/actions done in a row e.g. logging into the mobile application seven days in a row, or purchasing a product every day of the weekend;*
* *Reaching a specific milestone e.g. placing five orders above $100 or adding a minimum of 10 product reviews.*
* *Buy 10 products from your favorite brands ( Quantity of products with given Custom Attribute)*
* *Spend a total of 100$ on products with the given SKU*
* *Track a workout of at least 30 minutes every day for 5 days in a row*

***

### &#x20;Difference between Achievement and [Campaign](https://help.openloyalty.io/main-features/campaigns)

|                                                          Campaign                                                          |                                                       Achievements                                                       |
| :------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: |
|      Processes and makes decisions based on only one trigger - Transaction/ Internal event/ Custom event/ Achievement.     |                        Processes and makes decisions based on multiple triggers spread over time.                        |
| Example: A transaction is sent to the system. Once the conditions are met, the system assigns units to the member account. | Several transactions are sent to the system over the month. If the final condition is met, the achievement is completed. |

{% hint style="info" %}
It’s worth noting that the Achievements module itself doesn’t assign units to members’ accounts. For Achievements to be able to issue units to an account, it has to be assigned to at least one campaign. Customers then receive rewards after completing the set challenge.

The achievements module supports cases where we want to aggregate event attributes, rather than the event itself. e.g:&#x20;

* Buy 10 products from your favorite brands ( Quantity of products with given Custom Attribute)
* Spend a total of 100$ on products with the given SKU
  {% endhint %}

***

### Assigning achievements to campaigns

Assigning Achievements to campaigns is done in the ‘Campaign trigger’ section of the [Campaign ](https://help.openloyalty.io/main-features/campaigns/creating-campaigns)editor. To do so, select Achievements from the list of different triggers.

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2FMybSxFStV2pg7uu5w5P2%2Fimage.png?alt=media&#x26;token=4741b2b2-c3ec-42a4-8319-d5ae4c0cbd6c" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If we assign an achievement to a referral campaign, the trigger will always be the action of a new member.
{% endhint %}

***

### Multi-dimensional Achievements

The Achievements module provides the ability to create, monitor, and award members for completing specific challenges. One of the unique features of the Achievements module is the capability to define multi-dimensional achievements. These achievements are composed of several rules and each can be based on different types of actions - triggers. Members must satisfy all of these conditions over time to complete the achievement and get the badge, units, or reward.

An example of multi-dimensional achievement:&#x20;

*A member must walk 10 kilometers and purchase 3 products in the sports category (The custom event is sent with a distance attribute).*

* This achievement combines two actions - physical exercise tracked via the custom event, and shopping behavior tracked via the transactions sent to the system.
* To transform the achievement into a multi-dimensional achievement simply click the **+ADD RULE** button.

<table><thead><tr><th width="149">Settings</th><th width="293" align="center">RULE #1</th><th align="center">RULE #2</th></tr></thead><tbody><tr><td><strong>Achievement type</strong></td><td align="center">Direct</td><td align="center">Direct</td></tr><tr><td><strong>Achievement trigger</strong></td><td align="center">Transaction</td><td align="center">Custom event (walk)</td></tr><tr><td><strong>Achievement counting</strong></td><td align="center">Number of specific event attributes</td><td align="center">Number of specific event attributes</td></tr><tr><td><strong>Achievement goal</strong></td><td align="center"><p><strong>Occurrence:</strong> Overall</p><p> <strong>Target attribute:</strong> transaction.category('sport').qty</p><p><strong>Goal:</strong> 3</p></td><td align="center"><p></p><p><strong>Occurrence:</strong> Overall</p><p><strong>Target attribute</strong>: event.body.distance_km</p><p><strong>Goal:</strong> 10</p></td></tr></tbody></table>

## Learn more about

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Creating achievement</strong></td><td>Learn how to create achievements in Open Loyalty</td><td></td><td><a href="achievements/creating-achievement">creating-achievement</a></td></tr><tr><td><strong>Sample achievements</strong></td><td>Discover how basic scenarios may look in the loyalty program</td><td></td><td><a href="../sample-setups/sample-achievements">sample-achievements</a></td></tr></tbody></table>


---

# 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/achievements.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.
