# 메시지 개인화

메시지 개인화는 수신자마다 다른 텍스트와 링크를 보여주는 기능입니다. 개인화 메시지를 활용하면 같은 캠페인이라도 사용자별 관심사와 맥락에 맞는 내용을 전달할 수 있습니다. 그 결과 오픈율, 클릭률, 전환율을 높이고 불필요한 메시지 발송을 줄여 CRM 운영 효율과 고객 경험을 함께 개선할 수 있습니다.

핵클에서는 두 가지 방식을 제공합니다.

1. **속성 기반 개인화** 사용자 속성을 Liquid 문법으로 메시지에 삽입합니다.
2. **커넥티드 콘텐츠** 발송 직전에 외부 API를 호출해 실시간 값을 메시지에 채웁니다.

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

#### 어떤 방식을 쓰면 좋나요?

* 이름, 등급, 선호 카테고리처럼 이미 저장된 값은 **속성 기반 개인화**를 사용하세요.
* 쿠폰, 재고, 가격, 추천 결과처럼 발송 시점에 바뀌는 값은 **커넥티드 콘텐츠**를 사용하세요.
* 두 방식은 함께 사용할 수 있습니다.

***

## 속성 기반 개인화

속성 기반 개인화는 사용자별로 다른 문구를 텍스트와 링크에 넣을 때 적합합니다.

```liquid
{{ user_properties["name"] | default: "고객" }}님, 오늘만 사용할 수 있는 쿠폰이 도착했어요.
```

링크에도 같은 방식으로 값을 넣을 수 있습니다.

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

값이 비어 있을 수 있다면 `default` 로 대체 문구를 함께 설정하세요.

{% hint style="info" %}
자세한 사용법은 [속성 기반 개인화](/crm-marketing/message-personalization/properties.md)에서 확인할 수 있습니다.
{% endhint %}

#### Use case

**1. 회원 등급별 혜택 안내**

회원 등급에 따라 다른 혜택 문구를 보여줄 수 있습니다.

```liquid
{{ user_properties["membership_level"] | default: "회원" }} 전용 혜택을 확인해보세요.
```

**2. 관심 카테고리 기반 재방문 유도**

사용자가 선호하는 카테고리를 넣어 메시지 관련도를 높일 수 있습니다.

```liquid
{{ user_properties["favorite_category"] | default: "인기" }} 상품을 지금 확인해보세요.
```

**3. 최근 본 상품 리마인드**

최근 본 상품명을 넣어 클릭과 구매 전환을 유도할 수 있습니다.

```liquid
{{ user_properties["last_viewed_product_name"] | default: "추천 상품" }}이 아직 기다리고 있어요.
```

## 커넥티드 콘텐츠 (Connected Content)

커넥티드 콘텐츠는 메시지를 발송하기 직전에 외부 API를 호출하여 그 응답을 메시지 본문에 동적으로 끼워 넣을 수 있게 해주는 Liquid 태그입니다.

발송 시점의 재고, 가격, 주문 상태, 개인화 추천 결과 등 실시간 데이터를 메시지에 그대로 반영할 수 있습니다.

자체 서버든 공개된 외부 API든 출처를 가리지 않고 콘텐츠를 끌어올 수 있습니다.

또한 여러 기술 파트너사와 연동해 함께 쓸 수 있습니다.

> **Liquid 문법이 처음이라면** Shopify의 공식 Liquid 가이드를 먼저 가볍게 훑어보시길 권장합니다.
>
> 변수 출력, 태그, 필터, 조건문 등 이 문서에서 사용하는 기본 문법이 정리되어 있습니다.
>
> 👉 <https://shopify.github.io/liquid/basics/introduction/>

#### 메시지 내용과 링크에 함께 사용하기

메시지 본문과 링크를 같은 API 응답으로 함께 구성할 수 있습니다.

```liquid
{% connected_content https://api.example.com/coupons/{{user_properties["id"]}} :save coupon %}
{{ user_properties["name"] | default: "고객" }}님, 오늘 쿠폰 코드는 {{coupon.code}}입니다.
https://example.com/coupons/{{coupon.code}}
```

이 방식은 쿠폰, 추천 상품, 주문 조회 링크처럼 사용자마다 달라지는 링크를 만들 때 유용합니다.

{% hint style="info" %}
더 자세한 문법은 [Connected Content 작성하기](/crm-marketing/message-personalization/connected-content.md)에서 확인할 수 있습니다.
{% endhint %}

#### Use Case

**1. 실시간 상품 정보 동기화**

* 캠페인을 미리 만들어 두어도 발송 직전에 자사 상품 API에서 현재 가격, 재고, 할인율을 가져와 메시지에 반영합니다. 가격 변동이나 품절 상품을 잘못 안내하는 사고를 막을 수 있고, 같은 캠페인을 길게 돌려도 항상 최신 정보가 노출됩니다.

```liquid
"찜하신 [에어맥스 95]가 지금 78,000원으로 할인 중이에요. 재고 3개 남았어요."
```

**2. 포인트 / 리워드 실시간 조회**

* 고객의 포인트, 적립금, 쿠폰 잔액을 발송 시점에 API로 조회해 메시지에 그대로 노출합니다. 항상 정확한 잔액을 보여줄 수 있습니다.

```liquid
"회원님이 작성하신 리뷰가 등록되었습니다. 500포인트가 적립되어 현재 12,300포인트를 사용하실 수 있어요."
```

**3. 개인화 추천 콘텐츠 노출**

* 사내 ML 추천 시스템이나 큐레이션 API를 호출해, 사용자마다 다른 상품·콘텐츠·이벤트를 메시지 본문에 채워 넣습니다. 같은 캠페인을 보내도 받는 사람별로 노출되는 항목이 달라집니다.

```liquid
"회원님을 위한 오늘의 추천: 화이트 데일리 셔츠, 면 카고 바지, 캔버스 스니커즈. 지금 모두 회원가로 만나보세요."
```

#### 작성할 때 꼭 확인하세요

* 값이 비어 있을 때를 대비해 `default` 를 설정하세요.
* 미리보기와 테스트 발송으로 실제 노출 값을 확인하세요.


---

# 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.hackle.io/crm-marketing/message-personalization.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.
