> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://docs.bloy.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to create a custom way to earn points

Custom ways to earn let you create your own earning actions beyond the default options. This is useful when you want to reward behaviors such as learning about your loyalty program, visiting a specific page, or completing a custom action. Depending on how the action is set up, points can be granted **automatically** or **after manual approval**.

**1. Add a Custom Way to Earn**
* From the BLOY Admin, go to **Rewards program** and click **Add way to earn**.
* Under **Custom way to earn**, click **Add**.
![](https://storage.crisp.chat/users/helpdesk/website/-/5/9/c/9/59c9b009a3f42400/image_1d0pc9y.png)

### 2. Configure the Custom Earning Action
### 2.1. **Configure earning settings**
In this section, configure:
* **Earning name**: the name shown to customers in the loyalty popup and loyalty page
* **Status**: set to Active to make the action available to customers
* **Points awarded:** the number of points customers will receive when the earning condition is met

### 2.2. Button Settings
The button defines how the earning action appears on the storefront (popup and loyalty page).
* **Button label**: The text customers see (for example, *Complete* or *Learn more*)
* **Button URL**: Where customers are redirected after clicking the button
![](https://storage.crisp.chat/users/helpdesk/website/-/5/9/c/9/59c9b009a3f42400/image_10yq766.png)

### 2.3. Earning Conditions
Earning conditions define **when points are granted** for this custom action. You can choose one of the following:

###### Clicking button
Points are granted automatically when the customer clicks the action button.

###### Visit specific store URL
Points are granted only when the customer visits a specific page on your store. This option is useful when you want customers to complete an action after clicking the button, such as:
* Reading a specific page
* Completing a guided flow
* Visiting a confirmation or completion page
The **Button URL** controls where customers are redirected when they click the button, while the **Visit specific store URL** defines which page visit is required to earn points.
You can enter either:
* A page path (for example, `/pages/loyalty`), or
* A full URL (for example, `https://yourstore.com/pages/loyalty`)

###### Get approved manually
Points are granted only after you manually approve the customer’s action in the admin. This option is recommended for actions that require verification, such as external reviews or offline activities.
![](https://storage.crisp.chat/users/helpdesk/website/-/5/9/c/9/59c9b009a3f42400/image_g85ydy.png)

### 3. Approve Custom Earning Actions (Admin Side)
This section applies only to custom earning actions that use **Get approved manually**. You can review customer actions directly from the **Customers** tab.
In the top-right corner, check the **Pending approvals** button:
* If there are **no pending actions**, the button is disabled
* If there **are pending actions**, click the button to review them
From the approval modal, you can **approve** or **reject** each customer action. 
Once an action is approved, points are granted automatically. Rejected actions do not receive points.

![](https://storage.crisp.chat/users/helpdesk/website/-/5/9/c/9/59c9b009a3f42400/image_1dvrn7d.png)

### 4. Storefront experience
###### Automatic earning conditions (Clicking button / Visit specific store URL)
Once the condition is met and points are granted:
* The button becomes disabled
* A checkmark (✓) icon is shown
###### Manual approval (Get approved manually)
After the customer completes the action: The button shows a **pending** state and points **are not granted** yet
* If the merchant **approves** the action: Points are granted and the button updates to a checkmark (✓)
* If the merchant **rejects** the action: Points are not granted and the button becomes clickable again so the customer can retry the action
![](https://storage.crisp.chat/users/helpdesk/website/-/5/9/c/9/59c9b009a3f42400/image_23jz3r.png)
---
If you have questions about setting up custom ways to earn or need help choosing the right earning condition, contact us via in-app Live Chat or at support@bloy.io.