> For the complete documentation index, see [llms.txt](https://docs.hackle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hackle.io/en/crm-marketing/message-personalization/properties.md).

# Property-Based Personalization

Property-based personalization is a method of inserting different values into messages for each user.

You can insert values such as name, tier, recently viewed products, and preferred category into text and links.

### Basic Syntax

Hackle uses Liquid syntax.

```liquid
{{ user_properties["name"] | default: "Customer" }}
```

If a value exists, it displays that value.

If there is no value, it displays the fallback text after `default`.

If needed, you can use event properties in the same way.

```liquid
{{ event_properties["product_name"] | default: "A recommended product" }}
```

### Where can I use it?

* Message title and body
* Button links and landing URLs
* Deep links and query parameters

You can easily add personalization text by pressing the **`{...}`** button on the right side of the text input field.

![Personalized message detail settings](/files/uFnzcUQSBnf0hMAZmeL2)

### Examples

#### Message content

```liquid
{{ user_properties["name"] | default: "Customer" }}, the product you saved is back in stock.
```

#### Link

```liquid
https://example.com/cart?user_id={{ user_properties["user_id"] }}
```

#### Deep link

```liquid
myapp://products/{{ user_properties["last_viewed_product_id"] }}
```

### Be sure to set fallback text

Users without a property value occur more often than you might think.

For values that can look awkward when displayed, such as name, product name, and tier, it is good to include a `default`.

```liquid
Check out the exclusive benefits for {{ user_properties["membership_level"] | default: "members" }}.
```

### Check with preview

After verifying the personalization text you set in the popup, enter values in the **user message preview**.

You can immediately check the actual displayed text and links before sending.

![Personalized message verification and preview](/files/PILn5sgFtC96s4IeQVyM)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.hackle.io/en/crm-marketing/message-personalization/properties.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
