# Magic tags

{% hint style="info" %}
This feature is available on the **Advanced and above**.
{% endhint %}

### Introduction

With our new **Magic Tagging** feature, we drew inspiration from Shopify Flow, which allows actions to be triggered based on conditions and events. However, while Shopify Flow can automate actions like adding tags to customers, it doesn’t support dynamic value extraction from the tag content for loyalty activities.

<figure><img src="/files/EJTEQxcet249vrxj2PL7" alt=""><figcaption></figcaption></figure>

To bridge this gap, we’ve introduced Magic Tagging within the Joy Loyalty app, providing an alternative way to manipulate customer point balances without needing to use [our API.](https://devdocs.joy.so/joy-rest-api/customers)

### How Magic Tagging works

Magic Tagging allows you to add or remove points from a customer's balance by simply adding a tag to their profile. For example, you can use a tag like: **"Joy: Add 500 - Place order #111 via POS"** This format will adjust the customer's balance by 500 points, and the comment section helps track the reason for the adjustment.

This feature gives you an alternate method for managing customer balances, especially useful if you're looking for flexibility beyond the [Joy API](https://devdocs.joy.so/joy-rest-api/customers).

### How to set up Magic Tagging

To enable this feature, you’ll need to first turn on the **Manage Tags** option in your settings:

{% stepper %}
{% step %}
Navigate to **Settings > Developer** within the Joy Loyalty app
{% endstep %}

{% step %}
Enable the **Manage Tags** feature

<figure><img src="/files/tPz5G7J6U7RNvqwU6X5X" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

Once enabled, you can add a tag to a customer using the following format: **"Joy: Add 100 - Place order #111 via POS".** This will add 100 points to the customer’s balance and include a comment for easy tracking.

<figure><img src="/files/WzAW5GG0jFQcLwImrG8x" alt=""><figcaption></figcaption></figure>

### **Magic tag supported types**

<table data-header-hidden><thead><tr><th width="144.5999755859375">Type</th><th width="193.80007934570312">Goal</th><th width="530.8001098632812">Syntax</th></tr></thead><tbody><tr><td><strong>Type</strong></td><td><strong>Goal</strong></td><td><strong>Syntax</strong></td></tr><tr><td><strong>Add/Subtract point</strong></td><td>Add/ subtract customer's point balance</td><td><p><mark style="color:$success;">Joy: Add &#x3C;Points> - &#x3C;comment reason></mark></p><p>For example: <mark style="color:$success;">Joy: Add 100 - Place order #111 via POS</mark></p></td></tr><tr><td><strong>Exclude customer</strong></td><td>Exclude customer out of loyalty program</td><td><p><mark style="color:$success;">Joy: Exclude - &#x3C;comment reason></mark></p><p>For example: <mark style="color:$success;">Joy: Exclude - Internal staff</mark></p></td></tr><tr><td><strong>Change tier</strong></td><td>Change customer's VIP tier</td><td><p>Syntax: <mark style="color:$success;">Joy: Tier = &#x3C;New Tier name></mark><br></p><p>For example: <mark style="color:$success;">Joy: Tier = Gold</mark></p><p>By default, Customer will receive new tier's entry rewards. If you don't want to give entry rewards, try this syntax:<br><mark style="color:$success;">Joy: Tier = &#x3C;New tier name> (No entry reward)</mark></p><p>For example: <mark style="color:$success;">Joy: Tier = Gold (No entry reward)</mark></p></td></tr></tbody></table>

### **Important usage notes**

* **Triggering the Action**: The tag will only trigger the balance adjustment when you add the tag and hit save on the customer profile.
* **Handling Duplicate Tags**: If the customer already has a tag like **"Joy: Add 100"**, and you want to add another 100 points, make sure to include a unique comment. This ensures that the system recognizes it as a new tag. Alternatively, you can remove the previous tag, save it, and then add the new tag.
* **Programmatic Usage**: If you’re using this feature programmatically, it’s best to remove all **"Joy:"** tags from the customer once the action has been triggered to keep the system clean.

### **Wrap up**

Magic Tagging provides a flexible way to adjust customer point balances without relying on the API, making it a useful tool for store owners looking to streamline loyalty management. Whether you’re manually adding tags or integrating them programmatically, this feature offers an easy way to manipulate points and keep track of customer activities.


---

# 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.joy.so/settings/developers/magic-tags.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.
