# Custom Quests

### Dashboard configuration

A Custom Quest is configured in the dashboard and (similar to all other point rewards) requires a **title**, **description** and **amount** of points to transfer to the user eligible for the reward.

<figure><img src="https://1499671166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fda0CPvFjFKQsHDL5o9xa%2Fuploads%2FGD11cggXTtRk423rZs3D%2FScreenshot%202023-03-15%20at%2010.04.40.png?alt=media&#x26;token=5d097081-3779-46f4-9da4-a6b0f63b42b7" alt=""><figcaption><p>Example of a milestone rewards</p></figcaption></figure>

Custom Quests are a very flexible quest type that allows to reward specific user behaviour in your application. This means that (after adding a little bit of code to your app) you can incentivize all sort of user interactions in your app!

Examples of important customer touch points that could be incentivised:

* **User completes profile**
* **Client purchases product**
* **Player levels up**
* And more...

### Create Events

Using THX SDK you will be able to register system events for an Identity connected to your user. You can use these events for custom quest purposes.

```javascript
await thx.events.create({ name: 'level_up', identity: 'a6021617-9aab-4194-b2af-a4dd0cc96f84' })
```

{% content-ref url="../../developers/js-sdk/identity" %}
[identity](https://docs.thx.network/developers/js-sdk/identity)
{% endcontent-ref %}

{% content-ref url="../../developers/js-sdk" %}
[js-sdk](https://docs.thx.network/developers/js-sdk)
{% endcontent-ref %}

### Widget appearance

The Custom Quest card in the widget will show a *Not available* state for unauthenticated users or users that are not eligible for the reward.

<figure><img src="https://1499671166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fda0CPvFjFKQsHDL5o9xa%2Fuploads%2FW4Ggq64Vl6fcRs4J8wJG%2FScreenshot%202023-03-15%20at%2010.18.09.png?alt=media&#x26;token=262f700d-04c6-4e01-b8f3-4e2b4cfb8ac4" alt=""><figcaption><p>Milestone rewards not available for authenticated user</p></figcaption></figure>

As soon as your app runs the webhook for a particular user the card will show that user a progress bar for the amount of reward claims available and the amount of rewards claimed.

<figure><img src="https://1499671166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fda0CPvFjFKQsHDL5o9xa%2Fuploads%2Fae8ObXfb5BDS3BnpiGdM%2FScreenshot%202023-03-15%20at%2010.19.02.png?alt=media&#x26;token=8b884176-15c1-4531-8b01-67ab813fc488" alt=""><figcaption><p>2 out of 3 milestoned rewards claimed for authenticated user</p></figcaption></figure>


---

# 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://docs.thx.network/campaign-managers/quests/custom-quests.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.
