Skip to content

Wunderkind (Signals)

Wunderkind는 독자적인 Identity 기술을 사용하여 익명 웹사이트 방문자를 인식하고 실행 가능한 이메일 주소로 확인하는 이커머스 성과 플랫폼입니다. Wunderkind는 평균적으로 웹사이트 트래픽의 3~5%에 불과한 식별률을 40~60%까지 확장하여, 브랜드가 기존 이메일 서비스 공급자를 통해 개인화된 1:1 메시지를 대규모로 트리거할 수 있도록 합니다.

이 통합은 Wunderkind에서 유지 관리합니다. 고객지원이 필요한 경우 support.wunderkind.co를 방문하세요.

통합 소개

Wunderkind Signals 통합을 사용하면 장바구니 유기, 제품 유기, 가격 하락 등 높은 구매 의도를 나타내는 행동 신호가 Braze에서 실시간 Canvas 여정을 트리거할 수 있습니다. Wunderkind는 웹사이트의 익명 사용자를 식별하고, 해당 사용자의 신원을 전달 가능한 이메일 주소로 확인한 후, Canvas Entry API를 통해 구조화된 신호 페이로드를 Braze에 전달하여 사전 구성된 이메일 플로우를 자동으로 시작합니다.

필수 조건

요구 사항 설명
Wunderkind 계정 Signals가 활성화된 Wunderkind 계정이 필요합니다. 자격 여부를 확인하려면 Wunderkind 담당자에게 문의하세요.
Braze 계정 Canvas 접근 권한이 있는 Braze 계정이 필요합니다. Wunderkind 팀에 계정 내 시트를 부여해야 합니다. 자세한 내용은 Braze 계정에 Wunderkind 접근 권한 부여를 참조하세요.
Braze REST API 키 설정 중에 특정 권한이 있는 전용 API 키를 생성합니다(1단계 참조).
사용자 식별 Wunderkind는 일반적으로 user_aliasalias_label: "wknd_email_id"를 사용하여 소비자를 Braze에서 확인합니다(이메일을 alias_name으로 사용하는 경우가 많습니다). 각 /canvas/trigger/send 수신자는 external_user_id, user_alias, braze_id, email 중 정확히 하나를 포함해야 합니다(수신자 오브젝트). email을 사용하는 경우 prioritization을 포함하세요. user_alias를 사용하는 경우 트리거 전에 프로필이 이미 Braze에 존재해야 합니다. /users/track 또는 /users/identify를 사용하여 먼저 사용자와 별칭을 생성하거나 업데이트하세요. 자세한 내용은 제한 사항을 참조하세요.

작동 방식

Wunderkind가 높은 구매 의도를 가진 익명 사용자를 식별하고 신원을 확인하면, /canvas/trigger/send 엔드포인트를 사용하여 Braze에 신호 페이로드를 전송하고, 해당 사용자에 대한 관련 Canvas 여정을 실시간으로 트리거합니다.

전체 기술 개요는 Wunderkind 개발자 포털을 참조하세요.

통합

1단계: Wunderkind용 Braze API 키 생성

Braze 대시보드에서:

  1. Settings > API Keys로 이동하여 Create New API Key를 클릭합니다.
  2. 키에 설명이 포함된 이름을 지정합니다(예: Wunderkind Signals).
  3. Braze 계정에 Wunderkind 접근 권한 부여에 나열된 권한을 부여합니다.
  4. API 키를 복사하여 다음 섹션에서 Wunderkind 플랫폼에 입력합니다.

2단계: Wunderkind 플랫폼에 Braze 연결

  1. Wunderkind 플랫폼에 로그인하고 Integrations Hub로 이동합니다.
  2. Braze 타일을 선택한 다음 Connect를 선택합니다.
  3. Braze REST API 키를 입력하고 클러스터를 선택합니다.
  4. Save를 선택합니다.

3단계: 새 Braze 자산 검토

활성화 시 Wunderkind는 Wunderkind 담당자와 합의한 전략에 따라 Braze 워크스페이스에 새로운 구현 자산을 프로비저닝합니다:

자산 유형 Wunderkind 생성 방법
Content Blocks 자동
API 트리거 Canvases 매니지드 서비스
태그, 커스텀 속성, 링크 템플릿 매니지드 서비스

4단계: Canvas 설정 완료

각 Signals Canvas에 대해 Braze의 드래그 앤 드롭 에디터 또는 HTML을 사용하여 이메일 템플릿을 구축합니다.

  • Wunderkind는 전송 시 /canvas/trigger/send에서 각 수신자의 context 오브젝트에 제품 및 세션 데이터를 채웁니다.
  • 템플릿에서 해당 페이로드와 함께 Liquid를 사용하는 방법에 대한 자세한 지침은 Wunderkind 도움말 센터의 Canvas 설정 완료를 참조하세요.

5단계: Canvas 자격 검토

각 Signals Canvas에서 Target Audience 설정으로 이동하여 Wunderkind의 기본 진입 오디언스 및 종료 기준을 검토합니다.

  • 사용자에게 너무 자주 메시지를 보내지 않도록 하려면 사용자 중심 사용량 제한을 참조하세요.
  • 사용자가 구매 후에도 계속 Canvas 메시지를 받지 않도록 설정을 조정합니다. 예를 들어, Make Purchase 예외를 추가합니다.
  • 특정 Signals Canvases는 사용자가 가장 높은 의도의 메시지를 받을 수 있도록 커스텀 속성 필터가 사전 구성되어 있습니다.
  • Canvas 자격 및 우선순위에 대한 자세한 내용은 Wunderkind 도움말 센터의 Canvas 자격 검토를 참조하세요.

6단계: 테스트 및 시작

Wunderkind는 라이브 전에 엔드투엔드 QA를 수행합니다:

  • 신호가 API 오류 없이 올바른 Canvas ID로 전달되는지 확인합니다.
  • context 필드(제품명, 이미지, URL)가 렌더링된 이메일 템플릿에 올바르게 채워지는지 확인합니다.
  • 모의 Wunderkind 제품으로 템플릿을 미리보기하는 방법은 Wunderkind 도움말 센터의 Braze용 Signals 테스트 및 시작을 참조하세요.

QA가 통과되면 Wunderkind 구현 매니저가 팀과 함께 프로덕션 출시를 조율합니다.

Canvas 컨텍스트 페이로드

Wunderkind는 6가지 신호 유형을 지원합니다. 각 유형은 /canvas/trigger/send에서 해당 수신자의 context 오브젝트 내에 고유한 키와 값 세트를 전달합니다(API 트리거 전달을 사용하여 Canvas 메시지 보내기 참조). WkPurpose 필드는 해당 페이로드 내에서 신호 유형을 식별합니다.

공통 필드(모든 Canvas 유형)

등록정보 유형 설명
Origin String 항상 "wunderkind"
DataOnly String 항상 "Y" — Wunderkind가 데이터 레이어로만 작동하며, Braze가 전송을 실행함을 나타냅니다
UserType String "prospect" 또는 "customer"
WkChannel String 이 통합에서는 항상 "email"
WkPurpose String 신호 유형 식별자(아래 Canvas별 값 참조)
WKCouponCode String 쿠폰 코드(해당하는 경우, 사용하지 않으면 빈 문자열)
WKCouponPurpose String 쿠폰 제안 설명(사용하지 않으면 빈 문자열)
Items Array 제품 오브젝트 배열(아래 제품 필드 참조)
WkOpen String 보고서 목적으로 사용 가능한 추적 픽셀

제품 항목 필드

등록정보 유형 설명
WkCopy String 제품명
WkId String 제품 ID
WkImageUrl String 제품 이미지 URL
WkUrl String 제품 상세 페이지 URL
WkPrice String 원래 가격(가격 하락 Canvas에만 해당)
WKSalePrice String 할인 가격(가격 하락 Canvas에만 해당)
WkQuantity String 남은 수량(재고 부족 Canvas에만 해당)

Canvas별 필드 및 WkPurpose

Canvas 유형 WkPurpose 추가 필드
장바구니 유기 "cart abandonment" WkCartReplenUrl — 장바구니 복원 URL
제품 유기 "product abandonment"
카테고리 요약 "category recap" WkCategoryUrl — 탐색한 카테고리 URL
재입고 "back in stock"
가격 하락 "price drop" 각 항목의 WkPrice, WKSalePrice
재고 부족 "low stock" 각 항목의 WkQuantity

예시 페이로드

recipients의 각 오브젝트는 external_user_id, user_alias, braze_id, email 중 정확히 하나를 포함해야 합니다. 자세한 내용은 수신자 오브젝트를 참조하세요.

다음 예시는 Wunderkind가 신원을 확인하는 방식에 맞춰 wknd_email_id와 함께 user_alias를 사용합니다.

장바구니 유기 예시 페이로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "user_alias": {
        "alias_name": "[email protected]",
        "alias_label": "wknd_email_id"
      },
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/cart",
        "WkPurpose": "cart abandonment",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "WkCartReplenUrl": "https://example.com/cart/replenish",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product"
          }
        ]
      }
    }
  ]
}
제품 유기 예시 페이로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "user_alias": {
        "alias_name": "[email protected]",
        "alias_label": "wknd_email_id"
      },
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/product",
        "WkPurpose": "product abandonment",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product"
          }
        ]
      }
    }
  ]
}
카테고리 요약 예시 페이로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "user_alias": {
        "alias_name": "[email protected]",
        "alias_label": "wknd_email_id"
      },
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/category",
        "WkPurpose": "category recap",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "WkCategoryUrl": "https://example.com/category",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product"
          }
        ]
      }
    }
  ]
}
재입고 예시 페이로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "user_alias": {
        "alias_name": "[email protected]",
        "alias_label": "wknd_email_id"
      },
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/product",
        "WkPurpose": "back in stock",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product"
          }
        ]
      }
    }
  ]
}
가격 하락 예시 페이로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "user_alias": {
        "alias_name": "[email protected]",
        "alias_label": "wknd_email_id"
      },
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/product",
        "WkPurpose": "price drop",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product",
            "WkPrice": "49.99",
            "WKSalePrice": "39.99"
          }
        ]
      }
    }
  ]
}
재고 부족 예시 페이로드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "user_alias": {
        "alias_name": "[email protected]",
        "alias_label": "wknd_email_id"
      },
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/product",
        "WkPurpose": "low stock",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product",
            "WkQuantity": "1"
          }
        ]
      }
    }
  ]
}
이메일 식별자 예시(대안)

user_alias 대신 Braze의 email 필드로 Canvas를 트리거하는 경우, 수신자에는 emailprioritization만 포함해야 합니다(API 트리거 전달을 사용하여 Canvas 메시지 보내기 참조). context 오브젝트는 다른 예시와 동일합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "canvas_id": "<your_canvas_id>",
  "recipients": [
    {
      "email": "[email protected]",
      "prioritization": ["unidentified", "most_recently_updated"],
      "context": {
        "Origin": "wunderkind",
        "DataOnly": "Y",
        "UserType": "prospect",
        "WkOpen": "https://example.com/product",
        "WkPurpose": "product abandonment",
        "WKCouponCode": "",
        "WKCouponPurpose": "",
        "Items": [
          {
            "WkCopy": "Product name",
            "WkId": "012345",
            "WkImageUrl": "https://example.com/image.jpg",
            "WkUrl": "https://example.com/product"
          }
        ]
      }
    }
  ]
}

Liquid 사용 예시

Wunderkind가 /canvas/trigger/send를 호출하면, 각 수신자의 context 오브젝트에 전달한 키와 값이 Canvas 진입 데이터가 됩니다. 메시지 단계에서는 context Liquid 네임스페이스로 참조합니다. 예를 들어 {{context.${WkPurpose}}}와 같이 사용하며, 이는 Canvas 컨텍스트 오브젝트메시지에 설명되어 있습니다. 올바른 Liquid 구문을 사용하는 것 외에 추가 구성은 필요하지 않습니다.

Braze 출력 태그를 for 태그 조건 내에 중첩하지 마세요. Liquid 사용하기에 설명된 대로 먼저 contextItems 배열을 변수에 할당한 다음 루프를 실행하세요. assign 줄은 Braze의 Canvas 진입 형식 {{context.${Items}}}를 사용합니다(지원되는 개인화 태그 참조).

1
2
3
4
5
6
7
8
9
10
11
{% assign wk_items = {{context.${Items}}} %}
{% for item in wk_items %}
  <tr>
    <td>
      <a href="{{ item.WkUrl }}">
        <img src="{{ item.WkImageUrl }}" />
        <p>{{ item.WkCopy }}</p>
      </a>
    </td>
  </tr>
{% endfor %}

보고서

Wunderkind는 Braze 커런츠를 사용하여 Braze에서 성과 데이터를 수집하며, 커런츠는 원시 이벤트를 Google Cloud Storage로 스트리밍합니다. 그런 다음 Wunderkind는 이러한 이벤트를 원래 신호와 대조하여 정규화하고 집계하여 1:1 기여도 보고서를 제공합니다.

다음 측정기준은 곧 Wunderkind 보고서 대시보드에서 사용할 수 있습니다:

측정기준 소스
전달된 발송 수 Braze 커런츠
이메일 열기 Braze 커런츠
클릭 수 Braze 커런츠
전환 Braze 커런츠(설정 시 정의된 이벤트)
가입 취소 Braze 커런츠

제한 사항

  • 수신 거부/옵트아웃 동기화 없음. 수신 거부는 Braze에서 기본적으로 관리해야 합니다. 참고: Braze Signals로 마이그레이션하는 기존 Wunderkind 고객의 경우, Wunderkind가 팀과 협력하여 현재 설정을 유지합니다.
  • 이메일 채널만 지원. SMS는 현재 이 통합을 통해 지원되지 않습니다.
  • Canvas 트리거 전에 고객 프로필이 존재해야 합니다. user_alias 수신자를 사용하는 /canvas/trigger/send는 해당 별칭이 이미 있는 기존 Braze 프로필만 확인합니다. 별칭에 send_to_existing_only를 사용할 수 없으며, Canvas 트리거는 별칭만으로 새 프로필을 생성하지 않습니다. 먼저 사용자를 생성하거나 업데이트하고 wknd_email_id 별칭을 설정해야 합니다(예: /users/track 또는 /users/identify 사용). Wunderkind는 Braze가 처리를 완료할 수 있도록 해당 업서트 후 잠시 대기한 다음 트리거를 실행할 수 있습니다.
  • 이메일을 식별자로 사용하는 경우. Canvas 트리거가 user_alias 대신 email로 수신자를 식별하는 경우, Braze에서 요구하는 대로 해당 수신자 오브젝트에 prioritization을 포함하세요.

추가 리소스

New Stuff!