장바구니 상품, 주문 항목 또는 추천과 같은 여러 항목을 사용하기 위해 객체 배열을 전달합니다. 배열은 직접 접근(인덱싱)과 반복(루프)을 모두 지원합니다.사용 사례: 상품 목록, 리더보드, 주문 요약 또는 다중 항목 데이터를 표시하는 경우.인덱싱 템플릿 (첫 번째 항목 접근):
Liquid
Your {{message.custom_data.cart_items[0].item_name}} is waiting for you!Image: {{message.custom_data.cart_items[0].img_url}}
배열 인덱싱은 0부터 시작합니다, 1이 아닙니다. 첫 번째 항목은 [0], 두 번째는 [1] 등입니다. 존재하지 않는 인덱스에 접근하면 빈 값이 반환됩니다 (오류가 발생하지 않음).
루프 템플릿 (모든 항목 접근):
Liquid
{% for item in message.custom_data.cart_items %}- {{ item.item_name }} — {{ item.img_url }}{% endfor %}
단일 API 요청으로 여러 사용자에게 메시지를 전송하며, 각 수신자는 자신의 external_id를 기반으로 개인화된 콘텐츠를 확인합니다.작동 방식:
custom_data를 키가 external_id이고 값이 사용자별 데이터인 객체로 구성합니다
템플릿에서 subscription.external_id를 사용하여 현재 수신자의 데이터를 조회합니다
OneSignal은 각 수신자의 특정 데이터로 수신자당 한 번 템플릿을 렌더링합니다
템플릿:
{% assign user = message.custom_data.users[subscription.external_id] %}Hi {{ user.first_name }}, you have {{ user.points }} points. Your level is {{ user.level }}.
동작 설명:
subscription.external_id에는 현재 수신자의 external_id가 포함됩니다 (예: “user123”)
message.custom_data.users[subscription.external_id]는 custom_data 객체에서 해당 사용자의 데이터를 조회합니다
Messages > Templates > New Email Template로 이동하여 드래그 앤 드롭 편집기를 엽니다.
2
레이아웃 구조 추가
5개의 행을 생성합니다:
행 1, 2, 4: Paragraph 블록이 있는 단일 열
행 3: HTML | Paragraph | Paragraph | Paragraph의 4열
행 5: Button 블록이 있는 단일 열
장바구니 이탈용 기본 이메일 템플릿
3
항목 수 표시
행 1에 다음을 추가합니다:
Liquid
We're holding onto {{message.custom_data.cart.size}} items in your cart, but don't wait too long, other squirrels are getting ahead!
더 나은 문법을 위해 “1 item”과 “2 items”를 구분하는 조건문을 사용할 수 있지만, 장바구니 이탈 이메일에서는 보통 복수형이 허용됩니다.
Liquid
{% assign cart = message.custom_data.cart %}{% assign item_count = cart.size | plus: 0 %}{% if item_count == 1 %}We're holding onto {{item_count}} item in your cart, but don't wait too long, other squirrels are getting ahead!{% endif %}{% if item_count > 1 %}We're holding onto {{item_count}} items in your cart, but don't wait too long, other squirrels are getting ahead!{% endif %}
4
루프 시작
for 루프를 사용하여 장바구니의 각 항목에 대해 상품 표시 행을 반복합니다.행 2(루프 시작)의 텍스트 블록에 다음을 추가합니다:
Text
{% for product in message.custom_data.cart %}
동작 설명:
cart 배열의 각 객체를 반복하는 루프를 시작합니다
현재 항목을 나타내는 product라는 임시 변수를 생성합니다
{% for %}와 {% endfor %} 사이의 모든 내용이 장바구니 항목당 한 번 반복됩니다
product 대신 아무 이름이나 사용할 수 있습니다 (예: item, cartItem) — 일관되게만 유지하세요
For 루프 배치: {% for %} 구문이 자체 텍스트 블록 행에 있는지 확인하세요. 다른 콘텐츠가 있는 다중 열 행 안에 넣지 마세요. 일부 이메일 클라이언트에서 렌더링이 깨질 수 있습니다.
5
상품 세부 정보 표시
이 4열 행은 이미지, 이름, 수량, 가격을 표시합니다. 루프 내부에 있으므로 모든 장바구니 항목에 대해 반복됩니다.행 3(상품 세부 정보)에서 구성합니다:열 1 - HTML 블록 (상품 이미지):
푸시 알림은 문자 수 제한과 운영체제 제한이 있으므로, 모든 항목을 표시하는 대신 첫 번째 상품을 표시하고 적절한 문법으로 총 수를 나타냅니다.다음은 구축할 푸시 알림 예시입니다:
장바구니 이탈 푸시 템플릿 예시
메시지 필드:
Liquid
{% assign cart = message.custom_data.cart %}{% assign item_count = cart.size | plus: 0 %}{% if item_count == 1 %}You left {{cart.first.product_name}} in your cart.{% endif %}{% if item_count == 2 %}You left {{cart.first.product_name}} and {{item_count | minus: 1}} more item in your cart.{% endif %}{% if item_count > 2 %}You left {{cart.first.product_name}} and {{item_count | minus: 1}} more items in your cart.{% endif %}
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneSignal Documentation","description":"OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard.","colors":{"primary":"#3A3DB3","light":"#E54B4D","dark":"#3A3DB3"},"logo":{"light":"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107","dark":"https://mintcdn.com/onesignal/s4WC_KzLxf8ornqq/logo/OneSignal-Logo-White.svg?fit=max\u0026auto=format\u0026n=s4WC_KzLxf8ornqq\u0026q=85\u0026s=2573a53b5aea961e18c82b3af8f31925"},"favicon":"https://mintcdn.com/onesignal/SGduBFHpiRdg5l6h/favicon.ico?fit=max\u0026auto=format\u0026n=SGduBFHpiRdg5l6h\u0026q=85\u0026s=c0a99fadc0553c658a83741c5611cef4","api":{"examples":{"languages":["curl","typescript","python","php","go","ruby","java","csharp","rust"],"autogenerate":true}},"navbar":{"links":[{"href":"mailto:support@onesignal.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.onesignal.com"}},"footer":{"socials":{"github":"https://github.com/OneSignal","linkedin":"https://linkedin.com/company/onesignal","youtube":"https://www.youtube.com/@onesignalofficial/playlists"}},"seo":{"metatags":{"apple-mobile-web-app-title":"OneSignal Docs"}},"fonts":{"family":"Nunito Sans"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"G-2DGWL0VYP5"},"posthog":{"apiKey":"phc_vZpvE0f5eyzcOt30FHer34yddVmNdo9kmlMVRBzLMtn","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"docs/en/home"},{"language":"cn","href":"docs/cn/home"},{"language":"ko","href":"docs/ko/home"},{"language":"ja","href":"docs/ja/home"},{"language":"tr","href":"docs/tr/home"},{"language":"pt-BR","href":"docs/pt-BR/home"},{"language":"es","href":"docs/es/home"},{"language":"fr","href":"docs/fr/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"onesignal","hasAudioNarration":false,"actualSubdomain":"onesignal","customDomains":["documentation.onesignal.com"],"gitSource":{"type":"github","owner":"onesignal","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3b762ba298f9b99480a99","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"User Guides","count":204},{"language":"es","tag":"Guías del Usuario","count":178},{"language":"fr","tag":"Guides utilisateur","count":178},{"language":"ja","tag":"ユーザーガイド","count":178},{"language":"ko","tag":"사용자 가이드","count":178},{"language":"pt-BR","tag":"Guia do Usuário","count":178},{"language":"tr","tag":"Kullanıcı Kılavuzları","count":178},{"language":"cn","tag":"用户指南","count":176},{"language":"en","tag":"Message channels","count":90},{"language":"es","tag":"Canales de mensajería","count":84},{"language":"fr","tag":"Canaux de messagerie","count":84},{"language":"ja","tag":"メッセージングチャネル","count":84},{"language":"ko","tag":"메시지 채널","count":84},{"language":"pt-BR","tag":"Canais de mensagem","count":84},{"language":"tr","tag":"Mesaj kanalları","count":84},{"language":"cn","tag":"消息渠道","count":83},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"API reference","count":64},{"language":"en","tag":"Analytics \u0026 Integrations","count":53},{"language":"es","tag":"Analítica \u0026 Integraciones","count":52},{"language":"fr","tag":"Analyses et intégrations","count":52},{"language":"ja","tag":"分析 \u0026 統合","count":52},{"language":"ko","tag":"분석 \u0026 통합","count":52},{"language":"pt-BR","tag":"Análises \u0026 Integrações","count":52},{"language":"tr","tag":"Analitik ve Entegrasyonlar","count":52},{"language":"cn","tag":"分析和集成","count":51},{"language":"cn","tag":"开发者指南","count":48},{"language":"es","tag":"Guías del desarrollador","count":48},{"language":"fr","tag":"Guides développeur","count":48},{"language":"ja","tag":"開発者ガイド","count":48},{"language":"ko","tag":"개발자 가이드","count":48},{"language":"tr","tag":"Geliştirici Kılavuzları","count":48},{"language":"en","tag":"Developer Guides","count":47},{"language":"pt-BR","tag":"Guia de desenvolvedor","count":47},{"language":"en","tag":"Integrations","count":37},{"language":"es","tag":"Integraciones","count":37},{"language":"fr","tag":"Intégrations","count":37},{"language":"ja","tag":"統合","count":37},{"language":"ko","tag":"통합","count":37},{"language":"pt-BR","tag":"Integrações","count":37},{"language":"tr","tag":"Entegrasyonlar","count":37},{"language":"cn","tag":"集成","count":36},{"language":"en","tag":"Tutorials","count":35},{"language":"cn","tag":"推送通知","count":31},{"language":"cn","tag":"OneSignal 作为目的地","count":31},{"language":"en","tag":"Push","count":31},{"language":"en","tag":"OneSignal as destination","count":31},{"language":"es","tag":"Push notificaciones","count":31},{"language":"es","tag":"OneSignal como destino","count":31},{"language":"fr","tag":"Push","count":31},{"language":"fr","tag":"OneSignal comme destination","count":31},{"language":"ja","tag":"プッシュ通知","count":31},{"language":"ja","tag":"OneSignal as 宛先","count":31},{"language":"ko","tag":"푸시","count":31},{"language":"ko","tag":"OneSignal을 데이터 목적지로 사용","count":31},{"language":"pt-BR","tag":"Push notificações","count":31},{"language":"pt-BR","tag":"OneSignal como destino","count":31},{"language":"tr","tag":"Anlık bildirimler","count":31},{"language":"tr","tag":"OneSignal hedef","count":31},{"language":"en","tag":"Mobile SDKs","count":26},{"language":"cn","tag":"移动SDK","count":25},{"language":"es","tag":"SDKs móviles","count":25},{"language":"fr","tag":"SDK mobiles","count":25},{"language":"ja","tag":"モバイルSDK","count":25},{"language":"ko","tag":"모바일 SDKs","count":25},{"language":"pt-BR","tag":"SDKs móveis","count":25},{"language":"tr","tag":"Mobil SDK'lar","count":25},{"language":"cn","tag":"教程","count":24},{"language":"es","tag":"Tutoriales","count":24},{"language":"fr","tag":"Tutoriels","count":24},{"language":"ja","tag":"チュートリアル","count":24},{"language":"ko","tag":"튜토리얼","count":24},{"language":"pt-BR","tag":"Tutoriais","count":24},{"language":"tr","tag":"Eğitimler","count":24},{"language":"en","tag":"Mobile SDK setup","count":19},{"language":"cn","tag":"移动SDK设置","count":18},{"language":"es","tag":"Configuración del SDK móvil","count":18},{"language":"fr","tag":"Configuration SDK mobile","count":18},{"language":"ja","tag":"モバイルSDKセットアップ","count":18},{"language":"ko","tag":"모바일 SDK 설정","count":18},{"language":"pt-BR","tag":"Configuração do SDK móvel","count":18},{"language":"tr","tag":"Mobil SDK kurulumu","count":18},{"language":"default","tag":"Messages","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"Organization","count":9},{"language":"default","tag":"Journeys","count":8},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Subscriptions","count":6},{"language":"default","tag":"Segments","count":5}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@onesignal.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/ko/personalization-api-custom-data","slug":"/docs/ko/personalization-api-custom-data","pageMetadata":{"title":"API custom_data로 메시지 개인화하기","description":"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.","keywords":["custom_data","Create Message API","API 개인화","Liquid 구문","동적 콘텐츠","트랜잭션 메시징","배열","대량 개인화"],"href":"/docs/ko/personalization-api-custom-data"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Card,Check,CodeBlock,Columns,Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!Check)_missingMdxReference(`Check`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/reference/create-message`,children:`Create Message API`}),`에서 `,_jsx(_components.code,{children:`custom_data`}),` 필드를 사용하여 백엔드에서 동적 데이터를 전송하고 `,_jsx(_components.a,{href:`/docs/ko/using-liquid-syntax`,children:`Liquid 구문`}),`을 사용하여 템플릿 내에서 렌더링합니다.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`custom_data`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`메시지별`}),` 데이터입니다`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`저장되지 않습니다`})}),`\n`,_jsx(_components.li,{children:`API 요청 중에만 존재합니다`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`template_id`}),`와 함께 사용해야 합니다`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`템플릿에서 다음과 같이 값을 참조합니다:`}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`key_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`custom_data`}),`는 임시 데이터입니다. 데이터는 사용자 프로필에 저장되지 않으며 향후 메시지에서 재사용할 수 없습니다. 영구 데이터가 필요한 경우 `,_jsx(_components.a,{href:`/docs/ko/message-personalization`,children:`메시지 개인화`}),`를 참조하세요.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(Heading,{level:`2`,id:`custom_data-사용-시기`,children:[_jsx(_components.code,{children:`custom_data`}),` 사용 시기`]}),`\n`,_jsxs(_components.p,{children:[`다음과 같은 경우 `,_jsx(_components.code,{children:`custom_data`}),`를 사용합니다:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`메시지마다 데이터가 변경되는 경우 (주문 합계, 장바구니 항목, 잔액)`}),`\n`,_jsx(_components.li,{children:`배열이 필요한 경우 (상품 목록, 항목 목록, 추천)`}),`\n`,_jsx(_components.li,{children:`데이터가 지속되지 않아야 하는 경우 (일회용 코드, 임시 URL)`}),`\n`,_jsx(_components.li,{children:`백엔드에서 트리거되는 메시지를 전송하는 경우`}),`\n`,_jsx(_components.li,{children:`하나의 API 요청으로 대량 개인화를 원하는 경우`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsxs(Heading,{level:`2`,id:`custom_data-개인화-작동-방식`,children:[_jsx(_components.code,{children:`custom_data`}),` 개인화 작동 방식`]}),`\n`,_jsxs(_components.p,{children:[`메시지에 `,_jsx(_components.code,{children:`custom_data`}),`를 추가하려면 몇 가지 단계가 필요합니다:`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`템플릿 생성`,children:_jsxs(_components.p,{children:[`대시보드에서 또는 `,_jsx(_components.a,{href:`/reference/create-template`,children:`Create Template API`}),`를 통해 Push, Email 또는 SMS `,_jsx(_components.a,{href:`/docs/ko/templates`,children:`Template`}),`을 생성합니다.`]})}),_jsxs(Step,{title:`Liquid 플레이스홀더 추가`,children:[_jsx(_components.p,{children:`필수 접두사를 사용하여 참조를 삽입합니다:`}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`2`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Hi `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`first_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Order `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`order_id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` is confirmed.`})]}),`\n`]})})})]}),_jsxs(Step,{title:`API 요청에 custom_data 전송`,children:[_jsxs(_components.p,{children:[`다음 항목과 함께 `,_jsx(_components.a,{href:`/reference/create-message`,children:`Create Message API`}),`를 호출합니다:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`template_id`}),` - 템플릿의 ID`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`custom_data`}),` - 데이터 객체`]}),`\n`,_jsxs(_components.li,{children:[`대상 지정 (`,_jsx(_components.code,{children:`include_player_ids`}),`, `,_jsx(_components.code,{children:`include_aliases`}),`, 또는 세그먼트)`]}),`\n`]}),_jsx(_components.p,{children:`OneSignal은 전송 시점에 사용자의 데이터를 사용하여 템플릿을 렌더링합니다.`}),_jsx(_components.p,{children:`Liquid 구문이 유효하지 않거나 키가 존재하지 않는 경우, 해당 필드는 빈 문자열로 렌더링되지만 메시지는 계속 전송됩니다.`})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`데이터-패턴`,children:`데이터 패턴`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`custom_data`}),`와 함께 사용할 수 있는 일반적인 데이터 패턴 예시입니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`플랫-json-예시`,children:`플랫 JSON 예시`}),`\n`,_jsx(_components.p,{children:`이름, ID, URL 또는 단일 값 데이터와 같은 기본 개인화를 위해 간단한 키-값 쌍을 사용합니다.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`사용 사례:`}),` 각 필드에 단일 값이 포함되는 트랜잭션 메시지 (청구서, 영수증, 확인서).`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`템플릿:`})}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Invoice `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`invoice_id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` for `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` is ready.`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`API 요청:`})}),`\n`,_jsx(CodeBlock,{filename:`JSON`,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"app_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_APP_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"template_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_TEMPLATE_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"include_email_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"invoice_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"463246732\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Widget\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`고객에게 표시되는 내용:`})}),`\n`,_jsx(CodeBlock,{filename:`Text`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Invoice 463246732 for Widget is ready.`})}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`3`,id:`배열-데이터-예시`,children:`배열 데이터 예시`}),`\n`,_jsx(_components.p,{children:`장바구니 상품, 주문 항목 또는 추천과 같은 여러 항목을 사용하기 위해 객체 배열을 전달합니다. 배열은 직접 접근(인덱싱)과 반복(루프)을 모두 지원합니다.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`사용 사례:`}),` 상품 목록, 리더보드, 주문 요약 또는 다중 항목 데이터를 표시하는 경우.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`인덱싱 템플릿 (첫 번째 항목 접근):`})}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`2`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Your `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[0].`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` is waiting for you!`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Image: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[0].`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`img_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`배열 인덱싱은 0부터 시작합니다`}),`, 1이 아닙니다. 첫 번째 항목은 `,_jsx(_components.code,{children:`[0]`}),`, 두 번째는 `,_jsx(_components.code,{children:`[1]`}),` 등입니다. 존재하지 않는 인덱스에 접근하면 빈 값이 반환됩니다 (오류가 발생하지 않음).`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`루프 템플릿 (모든 항목 접근):`})}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`3`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` — `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`img_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`API 요청:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"app_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_APP_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"template_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_TEMPLATE_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"include_email_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_items\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"item_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sweater\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"img_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://.../sweater.png\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"item_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"socks\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"img_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://.../socks.png\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`고객에게 표시되는 내용:`})}),`\n`,_jsx(CodeBlock,{filename:`Text`,numberOfLines:`5`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Your sweater is waiting for you!`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Image: https://.../sweater.png`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- sweater — https://.../sweater.png`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- socks — https://.../socks.png`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`유용한 배열 속성:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{message.custom_data.cart_items.size}}`}),` — 배열의 항목 수 (이 예시에서는 `,_jsx(_components.code,{children:`2`}),` 반환)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{message.custom_data.cart_items.first.item_name}}`}),` — 첫 번째 항목의 이름 (`,_jsx(_components.code,{children:`[0]`}),`과 동일)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{message.custom_data.cart_items.last.item_name}}`}),` — 마지막 항목의 이름`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`3`,id:`대량-개인화-예시`,children:`대량 개인화 예시`}),`\n`,_jsxs(_components.p,{children:[`단일 API 요청으로 여러 사용자에게 메시지를 전송하며, 각 수신자는 자신의 `,_jsx(_components.code,{children:`external_id`}),`를 기반으로 개인화된 콘텐츠를 확인합니다.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`작동 방식:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`custom_data`}),`를 `,_jsx(_components.strong,{children:`키가 external_id`}),`이고 `,_jsx(_components.strong,{children:`값이 사용자별 데이터`}),`인 객체로 구성합니다`]}),`\n`,_jsxs(_components.li,{children:[`템플릿에서 `,_jsx(_components.code,{children:`subscription.external_id`}),`를 사용하여 현재 수신자의 데이터를 조회합니다`]}),`\n`,_jsx(_components.li,{children:`OneSignal은 각 수신자의 특정 데이터로 수신자당 한 번 템플릿을 렌더링합니다`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`템플릿:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` assign`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`users`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[subscription.external_id] `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`%}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Hi `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`first_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, you have `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`points`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` points. Your level is `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` user`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`level`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` }}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`동작 설명:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`subscription.external_id`}),`에는 현재 수신자의 external_id가 포함됩니다 (예: “user123”)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`message.custom_data.users[subscription.external_id]`}),`는 custom_data 객체에서 해당 사용자의 데이터를 조회합니다`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`user`}),`는 해당 사용자 데이터의 단축 변수가 됩니다`]}),`\n`,_jsx(_components.li,{children:`각 수신자는 자신의 개인화된 콘텐츠만 볼 수 있습니다`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`API 요청:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"app_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_APP_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"template_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_TEMPLATE_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"include_aliases\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"users\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"user123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"first_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"John\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"points\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"150\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"level\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Gold\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"user456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"first_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Sarah\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"points\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"200\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"level\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Platinum\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`각 사용자에게 표시되는 내용:`})}),`\n`,_jsx(Check,{children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`John`}),` (user123): “Hi John, you have 150 points. Your level is Gold.”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sarah`}),` (user456): “Hi Sarah, you have 200 points. Your level is Platinum.”`]}),`\n`]})}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`대량 개인화 요구 사항:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`모든 수신자는 OneSignal에 `,_jsx(_components.code,{children:`external_id`}),`가 설정되어 있어야 합니다`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`include_aliases`}),`의 각 `,_jsx(_components.code,{children:`external_id`}),`는 `,_jsx(_components.code,{children:`custom_data.users`}),`에 일치하는 키가 있어야 합니다`]}),`\n`,_jsxs(_components.li,{children:[`수신자의 external_id가 `,_jsx(_components.code,{children:`custom_data`}),`에 없으면 해당 메시지의 필드가 비어 있게 됩니다`]}),`\n`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`예시-custom_data를-사용한-장바구니-이탈-메시지`,children:`예시: custom_data를 사용한 장바구니 이탈 메시지`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`custom_data`}),`를 사용하여 이메일과 푸시 모두에 대한 장바구니 이탈 메시지를 구축하는 방법입니다.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`이 접근 방식을 사용하는 경우:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`서버가 장바구니 이탈을 감지하는 경우 (예: 마지막 활동 후 1시간)`}),`\n`,_jsx(_components.li,{children:`실시간 장바구니 데이터가 데이터베이스에 있는 경우`}),`\n`,_jsx(_components.li,{children:`이미지, 이름, 가격이 포함된 여러 상품을 표시하려는 경우`}),`\n`,_jsx(_components.li,{children:`각 사용자가 다른 항목과 수량을 가질 수 있는 경우`}),`\n`,_jsx(_components.li,{children:`백엔드에서 메시지를 조율하려는 경우`}),`\n`]}),`\n`,_jsxs(Heading,{level:`3`,id:`custom_data-페이로드-예시`,children:[_jsx(_components.code,{children:`custom_data`}),` 페이로드 예시`]}),`\n`,_jsxs(_components.p,{children:[`이 예시의 `,_jsx(_components.a,{href:`/reference/create-message`,children:`Create Message API`}),` 요청입니다.`]}),`\n`,_jsx(CodeBlock,{filename:`JSON`,numberOfLines:`24`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://yourdomain.com/cart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"24 Pack of Acorns\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://i.imgur.com/ssPCfbC.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$12.99\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_quantity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Fancy Sweater\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://i.imgur.com/8QWTfV4.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$9.99\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"product_quantity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"app_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_APP_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"template_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_TEMPLATE_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"include_aliases\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_EXTERNAL_ID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`필드 설명:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`필드`}),_jsx(_components.th,{children:`유형`}),_jsx(_components.th,{children:`용도`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cart_url`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`고객의 고유 장바구니 링크 (버튼/실행 URL용)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cart`})}),_jsx(_components.td,{children:`array`}),_jsx(_components.td,{children:`상품 목록 — 카운팅, 루프 및 상세 표시 지원`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_image`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`상품 이미지 (배열 내 항목별)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`상품 이름 (항목별)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_quantity`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`수량 (항목별)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_price`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`형식이 지정된 가격 (항목별)`})]})]})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`필드 이름은 원하는 대로 지정할 수 있습니다. 단, 템플릿의 Liquid 구문과 일치하는지 확인하세요.`})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`2KB 이하로 유지하세요:`}),` 장바구니에 항목이 많은 경우, 크기 제한을 초과하지 않도록 처음 3-5개 항목으로 제한하거나 필수 필드만 전송하는 것을 고려하세요.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`이메일-템플릿`,children:`이메일 템플릿`}),`\n`,_jsx(_components.p,{children:`이 예시는 다음을 표시하는 이메일 템플릿을 구축하는 방법을 보여줍니다:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`장바구니 항목 수`}),`\n`,_jsx(_components.li,{children:`for 루프를 사용하여 이미지, 이름, 수량, 가격이 포함된 각 상품`}),`\n`,_jsx(_components.li,{children:`고객의 고유 장바구니 URL로 연결되는 버튼`}),`\n`]}),`\n`,_jsx(Frame,{caption:`장바구니 이탈 이메일 템플릿 예시`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=4128b15d8d53d69c6626e129eee538fa`,\"data-og-width\":`693`,width:`693`,\"data-og-height\":`1477`,height:`1477`,\"data-path\":`images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?w=280\u0026fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=e179a97f74b995c14f30ed0336f5ee9d 280w, https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?w=560\u0026fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=ee76963c227a0d47904daaf942266e44 560w, https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?w=840\u0026fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=394261bf5617c2c85d0893b5338c298c 840w, https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?w=1100\u0026fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=cac7b1b4a525c2b2b703bc3cd3a8a65d 1100w, https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?w=1650\u0026fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=82aa715e31c76a1916797bc89b0e6fdd 1650w, https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/fd61543-Screenshot_2023-08-28_at_10.52.05_AM.png?w=2500\u0026fit=max\u0026auto=format\u0026n=KSCNwSpBCNSQ8xdF\u0026q=85\u0026s=d0611f61c6be56bcd4b5922b8d51479a 2500w`})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`이메일 템플릿 생성`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Messages > Templates > New Email Template`}),`로 이동하여 드래그 앤 드롭 편집기를 엽니다.`]})}),_jsxs(Step,{title:`레이아웃 구조 추가`,children:[_jsx(_components.p,{children:`5개의 행을 생성합니다:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`행 1, 2, 4: `,_jsx(_components.strong,{children:`Paragraph`}),` 블록이 있는 단일 열`]}),`\n`,_jsxs(_components.li,{children:[`행 3: `,_jsx(_components.strong,{children:`HTML | Paragraph | Paragraph | Paragraph`}),`의 4열`]}),`\n`,_jsxs(_components.li,{children:[`행 5: `,_jsx(_components.strong,{children:`Button`}),` 블록이 있는 단일 열`]}),`\n`]}),_jsx(Frame,{caption:`장바구니 이탈용 기본 이메일 템플릿`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=551e9ec4618f64fdc0b6ab610a537c48`,\"data-og-width\":`2968`,width:`2968`,\"data-og-height\":`2124`,height:`2124`,\"data-path\":`images/email/starter-template-abandoned-cart.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?w=280\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=fdc7ea348eb5582d3d0568a8fc563360 280w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?w=560\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=4b099824a48312786b83dd94bb99efba 560w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?w=840\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=5b2942747d767baeefed0cf36e1f9d50 840w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?w=1100\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=e7cbee879ad0f9623090b3eb36467763 1100w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?w=1650\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=a6d7cf9cc7dc3178d0559f97cdd0088a 1650w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/starter-template-abandoned-cart.png?w=2500\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=1268921a4ac01fd50e5ad42958393231 2500w`})})]}),_jsxs(Step,{title:`항목 수 표시`,children:[_jsx(_components.p,{children:`행 1에 다음을 추가합니다:`}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`We're holding onto `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`size`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` items in your cart, but don't wait too long, other squirrels are getting ahead!`})]}),`\n`]})})}),_jsx(_components.p,{children:`더 나은 문법을 위해 “1 item”과 “2 items”를 구분하는 조건문을 사용할 수 있지만, 장바구니 이탈 이메일에서는 보통 복수형이 허용됩니다.`}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`8`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` assign`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` assign`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`size`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`plus:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` ==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`We're holding onto `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item_count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` item in your cart, but don't wait too long, other squirrels are getting ahead!`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` >`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`We're holding onto `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item_count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` items in your cart, but don't wait too long, other squirrels are getting ahead!`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`]})})})]}),_jsxs(Step,{title:`루프 시작`,children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/docs/ko/using-liquid-syntax#for-loops`,children:`for 루프`}),`를 사용하여 장바구니의 각 항목에 대해 상품 표시 행을 반복합니다.`]}),_jsx(_components.p,{children:`행 2(루프 시작)의 텍스트 블록에 다음을 추가합니다:`}),_jsx(CodeBlock,{filename:`Text`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` product`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`동작 설명:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`cart`}),` 배열의 각 객체를 반복하는 루프를 시작합니다`]}),`\n`,_jsxs(_components.li,{children:[`현재 항목을 나타내는 `,_jsx(_components.code,{children:`product`}),`라는 임시 변수를 생성합니다`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{% for %}`}),`와 `,_jsx(_components.code,{children:`{% endfor %}`}),` 사이의 모든 내용이 장바구니 항목당 한 번 반복됩니다`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`product`}),` 대신 아무 이름이나 사용할 수 있습니다 (예: `,_jsx(_components.code,{children:`item`}),`, `,_jsx(_components.code,{children:`cartItem`}),`) — 일관되게만 유지하세요`]}),`\n`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`For 루프 배치: `,_jsx(_components.code,{children:`{% for %}`}),` 구문이 자체 텍스트 블록 행에 있는지 확인하세요. 다른 콘텐츠가 있는 다중 열 행 안에 넣지 마세요. 일부 이메일 클라이언트에서 렌더링이 깨질 수 있습니다.`]})})]}),_jsxs(Step,{title:`상품 세부 정보 표시`,children:[_jsx(_components.p,{children:`이 4열 행은 이미지, 이름, 수량, 가격을 표시합니다. 루프 내부에 있으므로 모든 장바구니 항목에 대해 반복됩니다.`}),_jsx(_components.p,{children:`행 3(상품 세부 정보)에서 구성합니다:`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`열 1 - HTML 블록`}),` (상품 이미지):`]}),_jsx(CodeBlock,{filename:`HTML`,numberOfLines:`1`,language:`html`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`html`,children:_jsxs(_components.code,{language:`html`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`img`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{{product.product_image}}\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` alt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Product image\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` style`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"max-width:100%;\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` />`})]}),`\n`]})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`열 2-4 - 텍스트 블록`}),` (상품 이름, 수량, 가격):`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`열 2: `,_jsx(_components.code,{children:`{{product.product_name}}`})]}),`\n`,_jsxs(_components.li,{children:[`열 3: `,_jsx(_components.code,{children:`{{product.product_quantity}}`})]}),`\n`,_jsxs(_components.li,{children:[`열 4: `,_jsx(_components.code,{children:`{{product.product_price}}`})]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`루프 동작 방식:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`첫 번째 반복에서 `,_jsx(_components.code,{children:`product`}),` = 장바구니 배열의 첫 번째 객체`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{product.product_image}}`}),`은 첫 번째 항목의 이미지 URL을 가져옵니다`]}),`\n`,_jsxs(_components.li,{children:[`두 번째 반복에서 `,_jsx(_components.code,{children:`product`}),` = 두 번째 객체`]}),`\n`,_jsx(_components.li,{children:`이 행은 모든 장바구니 항목에 대해 자동으로 반복됩니다`}),`\n`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`필드 이름 매칭:`}),` `,_jsx(_components.code,{children:`product_image`}),`와 같은 키는 이벤트 페이로드와 정확히 일치해야 합니다 (대소문자 구분). 불일치 시 빈 문자열로 렌더링됩니다.`]})})]}),_jsxs(Step,{title:`루프 종료`,children:[_jsx(_components.p,{children:`반복이 멈추는 위치를 표시하기 위해 루프를 닫습니다.`}),_jsx(_components.p,{children:`행 4(루프 종료)에 다음을 추가합니다:`}),_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`]})})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`모든 `,_jsx(_components.code,{children:`{% for %}`}),`에는 대응하는 `,_jsx(_components.code,{children:`{% endfor %}`}),`가 있어야 합니다. 이를 누락하면 이메일 렌더링이 깨집니다.`]})})]}),_jsxs(Step,{title:`장바구니 링크 버튼 추가`,children:[_jsxs(_components.p,{children:[`행 5의 `,_jsx(_components.strong,{children:`Button`}),` 블록에서 Action URL을 다음과 같이 설정합니다:`]}),_jsx(CodeBlock,{filename:`Text`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),_jsx(Frame,{caption:`스타일 없는 장바구니 이탈용 완성된 기본 이메일 템플릿`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=d26b638eb17878bb51c28a5e08f77724`,\"data-og-width\":`2968`,width:`2968`,\"data-og-height\":`1716`,height:`1716`,\"data-path\":`images/email/finished-template-abandoned-cart-custom-data.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?w=280\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=3b4f3cd69839c8fb61667d184dd3fef7 280w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?w=560\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=a43879ab6c7ea7961d2439090b8492c7 560w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?w=840\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=ad98ec92a1d9d44bd3e47bf5824829d2 840w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?w=1100\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=23a0deac3c3d7afa759f1d5cb3b17d44 1100w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?w=1650\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=68ecb84aa3737103e4ab76a80f6520cb 1650w, https://mintcdn.com/onesignal/v-hm59YoewwF90UX/images/email/finished-template-abandoned-cart-custom-data.png?w=2500\u0026fit=max\u0026auto=format\u0026n=v-hm59YoewwF90UX\u0026q=85\u0026s=e0c829ebb12e4c37f628a3bf8188c98f 2500w`})})]}),_jsxs(Step,{title:`템플릿 테스트`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.a,{href:`#example-custom-data-payload`,children:[`예시 `,_jsx(_components.code,{children:`custom_data`}),` 페이로드`]}),`를 사용하여 API 요청을 설정합니다.`]}),`\n`,_jsx(_components.li,{children:`자신에게 이메일을 전송합니다.`}),`\n`,_jsx(_components.li,{children:`데이터가 올바르게 표시되는지 확인합니다.`}),`\n`]}),_jsxs(Check,{children:[`성공! 이제 템플릿에 자신만의 스타일을 적용할 수 있습니다. `,_jsx(_components.a,{href:`/docs/ko/design-emails-with-drag-and-drop`,children:`드래그 앤 드롭으로 이메일 디자인하기`}),`를 참조하세요.`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`푸시-템플릿`,children:`푸시 템플릿`}),`\n`,_jsx(_components.p,{children:`푸시 알림은 문자 수 제한과 운영체제 제한이 있으므로, 모든 항목을 표시하는 대신 첫 번째 상품을 표시하고 적절한 문법으로 총 수를 나타냅니다.`}),`\n`,_jsx(_components.p,{children:`다음은 구축할 푸시 알림 예시입니다:`}),`\n`,_jsx(Frame,{caption:`장바구니 이탈 푸시 템플릿 예시`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=6cf03ce9b622ba399656f2b14fb055f3`,\"data-og-width\":`688`,width:`688`,\"data-og-height\":`656`,height:`656`,\"data-path\":`images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?w=280\u0026fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=de6c9cf6ba6e338841357c56e5df545b 280w, https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?w=560\u0026fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=446a56d5c96f6169769df4b89da92623 560w, https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?w=840\u0026fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=678f0c3acb7cf6f037335adc1d5d6f89 840w, https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=cbafde32c0e68206226b06c10a8dcf9b 1100w, https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=bc732f92ac5fd46d18a7e04f193f9240 1650w, https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0db985-Screenshot_2023-08-28_at_9.30.23_AM.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4HyuQPBpu-4xjmQC\u0026q=85\u0026s=d7771acac5dc1359a513d0c189b11014 2500w`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`메시지 필드:`})}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`11`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` assign`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` assign`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`size`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`plus:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` ==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`You left `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`first`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` in your cart.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` ==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`You left `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`first`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` and `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item_count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`minus:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` more item in your cart.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item_count`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` >`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`You left `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`first`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` and `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item_count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`minus:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` more items in your cart.`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`]})})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`자세한 정보는 `,_jsx(_components.a,{href:`/docs/ko/using-liquid-syntax#if-elsif-else`,children:`Liquid 구문 사용하기`}),`를 참조하세요.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`이미지 필드:`})}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`cart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`first`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`product_image`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://i.imgur.com/ssPCfbC.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`자세한 정보는 `,_jsx(_components.a,{href:`/docs/ko/rich-media`,children:`알림 이미지 및 리치 미디어`}),`를 참조하세요.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`실행 URL 필드:`})}),`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cart_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://yourdomain.com/cart\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[`성공! 템플릿을 저장하고 `,_jsx(_components.code,{children:`custom_data`}),` 속성과 함께 `,_jsx(_components.a,{href:`/reference/create-message`,children:`Create message`}),` API 요청에서 해당 `,_jsx(_components.code,{children:`template_id`}),`를 사용하여 테스트합니다.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`문제-해결-및-모범-사례`,children:`문제 해결 및 모범 사례`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`간단하게 유지하세요`}),`: 템플릿에서 실제로 사용할 데이터만 포함하세요`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`2KB 이하로 유지하세요`}),`: 특히 배열을 사용할 때 페이로드 크기를 모니터링하세요`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`일관된 네이밍을 사용하세요`}),`: 전체적으로 `,_jsx(_components.code,{children:`snake_case`}),` 또는 `,_jsx(_components.code,{children:`camelCase`}),`를 일관되게 사용하세요`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`전송 전 검증하세요`}),`: null 값, 빈 배열 및 필수 필드를 확인하세요`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`템플릿 디자인:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`선택적 필드에는 `,_jsx(_components.strong,{children:`항상 기본값 필터를 사용하세요`}),`:`,`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`1`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`user_name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` | `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`default:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"there\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`루프 전에 배열 크기를 확인하세요`}),`:`,`\n`,_jsx(CodeBlock,{filename:`Liquid`,numberOfLines:`5`,language:`liquid`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`liquid`,children:_jsxs(_components.code,{language:`liquid`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`size`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` >`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` {%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` item`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` {{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`}}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` {%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`{%`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` endif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` %}`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`엣지 케이스로 테스트하세요`}),`: 빈 배열, 누락된 필드, 최대 항목 수`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`오류 처리:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`검증 오류를 잡기 위해 서버 측에서 API 응답을 로깅하세요`}),`\n`,_jsx(_components.li,{children:`메시지 전달률을 모니터링하세요 — 급격한 감소는 Liquid 오류를 나타낼 수 있습니다`}),`\n`,_jsx(_components.li,{children:`중요한 트랜잭션 메시지에 대비하여 대체 템플릿을 준비하세요`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`성능:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`복잡한 Liquid 로직을 사용하는 대신 백엔드에서 `,_jsx(_components.strong,{children:`복잡한 데이터를 사전 포맷하세요`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`템플릿을 캐시하고`}),` 여러 API 호출에서 재사용하세요`]}),`\n`,_jsx(_components.li,{children:`대량 트랜잭션 메시지를 마케팅 캠페인과 분리하는 것을 고려하세요`}),`\n`]}),`\n`,_jsxs(Accordion,{title:`메시지가 전송되지만 내용이 비어 있음`,id:`%EC%9B%90%EC%9D%B8%3A-liquid-%EA%B5%AC%EB%AC%B8-%EC%98%A4%EB%A5%98-%EB%98%90%EB%8A%94-%ED%95%84%EB%93%9C-%EC%9D%B4%EB%A6%84-%EB%B6%88%EC%9D%BC%EC%B9%98%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95%3A-custom_data%EC%99%80-%ED%85%9C%ED%94%8C%EB%A6%BF-%EA%B0%84%EC%9D%98-%ED%95%84%EB%93%9C-%EC%9D%B4%EB%A6%84%EC%9D%B4-%EC%A0%95%ED%99%95%ED%9E%88-%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%EC%A7%80-%ED%99%95%EC%9D%B8%ED%95%98%EC%84%B8%EC%9A%94-(%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90-%EA%B5%AC%EB%B6%84)-%EC%98%A4%ED%83%80%EB%A5%BC-%ED%99%95%EC%9D%B8%ED%95%98%EC%84%B8%EC%9A%94%3A-%7B%7Bmessage.custom_data.name%7D%7D%EC%9D%B4%EC%A7%80-%7B%7Bmessage.custm_data.name%7D%7D%EC%9D%B4-%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4-%EB%88%84%EB%9D%BD%EB%90%9C-%ED%95%84%EB%93%9C%EB%A5%BC-%EC%9E%A1%EA%B8%B0-%EC%9C%84%ED%95%B4-%EA%B8%B0%EB%B3%B8%EA%B0%92-%ED%95%84%ED%84%B0%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%84%B8%EC%9A%94-%ED%94%84%EB%A1%9C%EB%8D%95%EC%85%98-%EC%A0%84%EC%97%90-%EC%8B%A4%EC%A0%9C-custom_data-%EA%B5%AC%EC%A1%B0%EB%A1%9C-%ED%85%9C%ED%94%8C%EB%A6%BF%EC%9D%84-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EC%84%B8%EC%9A%94`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`원인:`}),` Liquid 구문 오류 또는 필드 이름 불일치`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`해결 방법:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`custom_data`}),`와 템플릿 간의 필드 이름이 정확히 일치하는지 확인하세요 (대소문자 구분)`]}),`\n`,_jsxs(_components.li,{children:[`오타를 확인하세요: `,_jsx(_components.code,{children:`{{message.custom_data.name}}`}),`이지 `,_jsx(_components.code,{children:`{{message.custm_data.name}}`}),`이 아닙니다`]}),`\n`,_jsxs(_components.li,{children:[`누락된 필드를 잡기 위해 `,_jsx(_components.a,{href:`/docs/ko/using-liquid-syntax#default`,children:`기본값 필터`}),`를 사용하세요`]}),`\n`,_jsxs(_components.li,{children:[`프로덕션 전에 실제 `,_jsx(_components.code,{children:`custom_data`}),` 구조로 템플릿을 테스트하세요`]}),`\n`]})]}),`\n`,_jsxs(Accordion,{title:`API 오류: 요청 본문이 너무 큼`,id:`api`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`원인:`}),` `,_jsx(_components.code,{children:`custom_data`}),`가 2KB 제한을 초과함`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`해결 방법:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`페이로드에서 불필요한 필드를 제거하세요`}),`\n`,_jsx(_components.li,{children:`가능한 경우 필드 이름과 값을 줄이세요`}),`\n`,_jsx(_components.li,{children:`배열을 처음 3-5개 항목으로 제한하세요`}),`\n`,_jsx(_components.li,{children:`큰 정적 콘텐츠(전체 HTML 등)를 대신 템플릿으로 이동하세요`}),`\n`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`관련-페이지`,children:`관련 페이지`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`메시지 개인화`,href:`/docs/ko/message-personalization`,icon:`sparkles`,children:_jsx(_components.p,{children:`Tags, 사용자 속성 및 세그먼테이션을 포함한 OneSignal의 모든 개인화 옵션 개요입니다.`})}),_jsx(Card,{title:`Create Message API`,href:`/reference/create-message`,icon:`code`,children:_jsx(_components.p,{children:`custom_data, 타겟팅 옵션 및 사용 가능한 모든 필드를 포함한 메시지 전송을 위한 전체 API 레퍼런스입니다.`})}),_jsx(Card,{title:`Liquid 구문 사용하기`,href:`/docs/ko/using-liquid-syntax`,icon:`droplet`,children:_jsx(_components.p,{children:`필터, 조건문, 루프 및 문자열 조작을 포함한 전체 Liquid 구문 레퍼런스입니다.`})}),_jsx(Card,{title:`Templates`,href:`/docs/ko/templates`,icon:`file`,children:_jsx(_components.p,{children:`Push, Email, SMS 및 인앱 채널을 위한 재사용 가능한 메시지 템플릿을 생성하고 관리합니다.`})})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:`도움이 필요하신가요?`}),_jsxs(_components.p,{children:[`지원 팀과 채팅하거나 `,_jsx(_components.code,{children:`support@onesignal.com`}),`으로 이메일을 보내주세요.`]}),_jsx(_components.p,{children:`다음을 포함해 주세요:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`발생한 문제의 세부 정보 및 재현 단계(가능한 경우)`}),`\n`,_jsx(_components.li,{children:`OneSignal 앱 ID`}),`\n`,_jsx(_components.li,{children:`External ID 또는 Subscription ID(해당하는 경우)`}),`\n`,_jsx(_components.li,{children:`OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)`}),`\n`,_jsxs(_components.li,{children:[`관련 `,_jsx(_components.a,{href:`/docs/ko/capturing-a-debug-log`,children:`로그 또는 오류 메시지`})]}),`\n`]}),_jsx(_components.p,{children:`기꺼이 도와드리겠습니다!`})]}),`\n`,_jsx(_components.hr,{})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"API custom_data로 메시지 개인화하기","description":"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.","keywords":["custom_data","Create Message API","API 개인화","Liquid 구문","동적 콘텐츠","트랜잭션 메시징","배열","대량 개인화"],"href":"/docs/ko/personalization-api-custom-data"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"custom_data 사용 시기","slug":"custom_data-사용-시기","depth":2,"children":[]},{"title":"custom_data 개인화 작동 방식","slug":"custom_data-개인화-작동-방식","depth":2,"children":[]},{"title":"데이터 패턴","slug":"데이터-패턴","depth":2,"children":[{"title":"플랫 JSON 예시","slug":"플랫-json-예시","depth":3,"children":[]},{"title":"배열 데이터 예시","slug":"배열-데이터-예시","depth":3,"children":[]},{"title":"대량 개인화 예시","slug":"대량-개인화-예시","depth":3,"children":[]}]},{"title":"예시: custom_data를 사용한 장바구니 이탈 메시지","slug":"예시-custom_data를-사용한-장바구니-이탈-메시지","depth":2,"children":[{"title":"custom_data 페이로드 예시","slug":"custom_data-페이로드-예시","depth":3,"children":[]},{"title":"이메일 템플릿","slug":"이메일-템플릿","depth":3,"children":[]},{"title":"푸시 템플릿","slug":"푸시-템플릿","depth":3,"children":[]}]},{"title":"문제 해결 및 모범 사례","slug":"문제-해결-및-모범-사례","depth":2,"children":[]},{"title":"관련 페이지","slug":"관련-페이지","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/onesignal/e069c1b9f3157e14/hotjar-koala.js","/_mintlify/custom/onesignal/3e5d03885ab32f49/intercom.js","/_mintlify/custom/onesignal/dbb7af4794d1b586/munchkin-marketo.js"],"subdomain":"onesignal","siteName":"OneSignal Documentation","title":"API custom_data로 메시지 개인화하기 - OneSignal Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/personalization-api-custom-data","matchLevel":1},"cn":{"href":"/docs/cn/personalization-api-custom-data","matchLevel":1},"ko":{"href":"/docs/ko/personalization-api-custom-data","matchLevel":0},"ja":{"href":"/docs/ja/personalization-api-custom-data","matchLevel":1},"tr":{"href":"/docs/tr/personalization-api-custom-data","matchLevel":1},"pt-BR":{"href":"/docs/pt-BR/personalization-api-custom-data","matchLevel":1},"es":{"href":"/docs/es/personalization-api-custom-data","matchLevel":1},"fr":{"href":"/docs/fr/personalization-api-custom-data","matchLevel":1}}},"lastModified":"2026-03-16T20:24:15.111Z","originalFileLocation":"docs/ko/personalization-api-custom-data.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"API custom_data로 메시지 개인화하기 - OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=%EB%A9%94%EC%8B%9C%EC%A7%80+%EA%B0%9C%EC%9D%B8%ED%99%94\u0026amp;title=API+custom_data%EB%A1%9C+%EB%A9%94%EC%8B%9C%EC%A7%80+%EA%B0%9C%EC%9D%B8%ED%99%94%ED%95%98%EA%B8%B0\u0026amp;description=Create+Message+API%EC%9D%98+custom_data%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8F%99%EC%A0%81%EC%9D%B8+%EB%A9%94%EC%8B%9C%EC%A7%80%EB%B3%84+%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC+%EC%A0%84%EC%86%A1%ED%95%A9%EB%8B%88%EB%8B%A4.+Liquid+%EA%B5%AC%EB%AC%B8%EC%9C%BC%EB%A1%9C+%ED%85%9C%ED%94%8C%EB%A6%BF%EC%97%90%EC%84%9C+%EA%B0%92%EC%9D%84+%EC%B0%B8%EC%A1%B0%ED%95%98%EC%97%AC+%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B0%9C%EC%9D%B8%ED%99%94%EB%A5%BC+%EA%B5%AC%ED%98%84%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=7c50ea54c0a66111f355447372f585d33b29cca128aec2f7e8f69ec564e34c19\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"API custom_data로 메시지 개인화하기 - OneSignal Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=%EB%A9%94%EC%8B%9C%EC%A7%80+%EA%B0%9C%EC%9D%B8%ED%99%94\u0026amp;title=API+custom_data%EB%A1%9C+%EB%A9%94%EC%8B%9C%EC%A7%80+%EA%B0%9C%EC%9D%B8%ED%99%94%ED%95%98%EA%B8%B0\u0026amp;description=Create+Message+API%EC%9D%98+custom_data%EB%A5%BC+%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC+%EB%8F%99%EC%A0%81%EC%9D%B8+%EB%A9%94%EC%8B%9C%EC%A7%80%EB%B3%84+%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC+%EC%A0%84%EC%86%A1%ED%95%A9%EB%8B%88%EB%8B%A4.+Liquid+%EA%B5%AC%EB%AC%B8%EC%9C%BC%EB%A1%9C+%ED%85%9C%ED%94%8C%EB%A6%BF%EC%97%90%EC%84%9C+%EA%B0%92%EC%9D%84+%EC%B0%B8%EC%A1%B0%ED%95%98%EC%97%AC+%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B0%9C%EC%9D%B8%ED%99%94%EB%A5%BC+%EA%B5%AC%ED%98%84%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=7c50ea54c0a66111f355447372f585d33b29cca128aec2f7e8f69ec564e34c19\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneSignal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3A3DB3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ko/personalization-api-custom-data.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://documentation.onesignal.com/docs/en/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://documentation.onesignal.com/docs/cn/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://documentation.onesignal.com/docs/ja/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://documentation.onesignal.com/docs/tr/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://documentation.onesignal.com/docs/pt-BR/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://documentation.onesignal.com/docs/es/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://documentation.onesignal.com/docs/fr/personalization-api-custom-data\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://documentation.onesignal.com/docs/en/personalization-api-custom-data\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://documentation.onesignal.com/#organization\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107\"}},{\"@type\":\"WebSite\",\"@id\":\"https://documentation.onesignal.com#website\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data#webpage\",\"url\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data\",\"name\":\"API custom_data로 메시지 개인화하기\",\"description\":\"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.\",\"dateModified\":\"2026-03-16T20:24:15.111Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"메시지 채널\",\"item\":\"https://documentation.onesignal.com/docs/ko/channel-setup\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"기능\",\"item\":\"https://documentation.onesignal.com/docs/ko/ab-testing\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"메시지 개인화\",\"item\":\"https://documentation.onesignal.com/docs/ko/message-personalization\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"API custom_data로 메시지 개인화하기\",\"item\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data#article\",\"headline\":\"API custom_data로 메시지 개인화하기\",\"name\":\"API custom_data로 메시지 개인화하기\",\"description\":\"Create Message API의 custom_data를 사용하여 동적인 메시지별 데이터를 전송합니다. Liquid 구문으로 템플릿에서 값을 참조하여 실시간 개인화를 구현합니다.\",\"url\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/personalization-api-custom-data#webpage\"},\"dateModified\":\"2026-03-16T20:24:15.111Z\",\"keywords\":\"custom_data, Create Message API, API 개인화, Liquid 구문, 동적 콘텐츠, 트랜잭션 메시징, 배열, 대량 개인화\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneSignal Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"OneSignal Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/ko/personalization-api-custom-data.md","siteName":"OneSignal Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/docs/en/personalization-api-custom-data"}]},{"language":"cn","pages":[{"title":"cn","href":"/docs/cn/personalization-api-custom-data"}]},{"language":"ko","tabs":[{"tab":"홈","pages":[{"title":"홈","href":"/docs/ko/home"}]},{"tab":"사용자 가이드","groups":[{"group":"시작하기 \u0026 설정","pages":[{"title":"OneSignal 시작하기","href":"/docs/ko/quickstart-guide"},{"group":"OneSignal 대시보드","pages":[{"title":"앱, 조직 및 계정","href":"/docs/ko/apps-organizations"},{"title":"팀 멤버","href":"/docs/ko/manage-team-members"},{"title":"키 및 ID","href":"/docs/ko/keys-and-ids"},{"title":"감사 로그","href":"/docs/ko/audit-logs"},{"title":"사용량 및 청구","href":"/docs/ko/billing-faq"},{"title":"비활성화된 앱 및 조직","href":"/docs/ko/disabled-apps"}]},{"title":"OneSignal로 마이그레이션","href":"/docs/ko/migrating-to-onesignal"}]},{"group":"메시지 채널","pages":[{"title":"채널 설정","href":"/docs/ko/channel-setup"},{"group":"푸시","pages":[{"title":"푸시 개요","href":"/docs/ko/push"},{"group":"모바일 푸시","pages":[{"title":"모바일 푸시 설정","href":"/docs/ko/mobile-push-setup"},{"title":"푸시 권한 요청","href":"/docs/ko/prompt-for-push-permissions"},{"title":"iOS 임시 푸시 알림","href":"/docs/ko/ios-provisional-push-notifications"},{"title":"Android 알림 카테고리","href":"/docs/ko/android-notification-categories"},{"title":"데이터 및 백그라운드 알림","href":"/docs/ko/data-notifications"},{"title":"VoIP 푸시 알림","href":"/docs/ko/voip-notifications"}]},{"group":"웹 푸시","pages":[{"title":"웹 푸시 설정","href":"/docs/ko/web-push-setup"},{"title":"Web 권한 프롬프트","href":"/docs/ko/permission-requests"},{"title":"웹 푸시 FAQ","href":"/docs/ko/web-push-setup-faq"},{"title":"웹 푸시 브라우저 동작","href":"/docs/ko/browser-behavior-and-unsubscribes"},{"title":"Shopify 웹 푸시 통합","href":"/docs/ko/shopify"},{"title":"웹 푸시를 위한 OneSignal WordPress 플러그인 설정","href":"/docs/ko/wordpress"},{"title":"WordPress 문제 해결","href":"/docs/ko/troubleshooting-wordpress-web-push"}]},{"group":"푸시 기능","pages":[{"title":"알림 아이콘","href":"/docs/ko/notification-icons"},{"title":"알림 이미지 및 리치 미디어","href":"/docs/ko/rich-media"},{"title":"알림 사운드","href":"/docs/ko/notification-sounds"},{"title":"알림 배지","href":"/docs/ko/badges"},{"title":"푸시 알림용 액션 버튼","href":"/docs/ko/action-buttons"},{"title":"푸시 빈도 제한","href":"/docs/ko/frequency-capping"},{"title":"푸시 제한","href":"/docs/ko/throttling"},{"title":"iOS: 집중 모드 및 중단 수준","href":"/docs/ko/ios-focus-modes-and-interruption-levels"},{"title":"iOS: 관련성 점수","href":"/docs/ko/ios-relevance-score"}]},{"group":"푸시 분석 \u0026 문제 해결","pages":[{"title":"푸시 메시지 리포트","href":"/docs/ko/push-notification-message-reports"},{"title":"확인된 전달","href":"/docs/ko/confirmed-delivery"},{"title":"알림 CTR","href":"/docs/ko/notification-ctr"},{"title":"모바일 푸시: 알림이 표시되지 않거나 지연됨","href":"/docs/ko/notifications-show-successful-but-are-not-being-shown"},{"title":"Web push: 알림이 표시되지 않음","href":"/docs/ko/notifications-not-shown-web-push"},{"title":"알림 이미지가 표시되지 않음","href":"/docs/ko/notification-images-not-showing"},{"title":"중복 알림","href":"/docs/ko/duplicated-notifications"},{"title":"FCM 만료 토큰 FAQ","href":"/docs/ko/fcm-expired-token-faq"}]}]},{"group":"인앱 메시지","pages":[{"title":"인앱 개요","href":"/docs/ko/in-app-messages-setup"},{"title":"인앱 트리거","href":"/docs/ko/iam-triggers"},{"title":"인앱 클릭 작업","href":"/docs/ko/iam-click-actions"},{"group":"인앱 디자인","pages":[{"title":"드래그 앤 드롭으로 인앱 메시지 디자인하기","href":"/docs/ko/design-your-in-app-message"},{"title":"HTML로 인앱 메시지 디자인하기","href":"/docs/ko/design-your-in-app-message-with-html"},{"title":"인앱 메시지 템플릿 및 퀵스타트","href":"/docs/ko/in-app-html-templates"},{"title":"인앱 메시지 JavaScript API 레퍼런스","href":"/docs/ko/in-app-message-api"}]},{"title":"인앱 메시지 보고서","href":"/docs/ko/in-app-message-reports"},{"title":"인앱 문제 해결","href":"/docs/ko/in-app-message-troubleshooting"}]},{"group":"이메일","pages":[{"title":"이메일 개요","href":"/docs/ko/email-messaging"},{"group":"Email setup","pages":[{"title":"이메일 설정","href":"/docs/ko/email-setup"},{"title":"이메일 DNS 구성","href":"/docs/ko/email-dns-configuration"},{"title":"발신자","href":"/docs/ko/senders"},{"title":"트랜잭션 이메일","href":"/docs/ko/setup-transactional-emails"},{"title":"사용자 지정 이메일 수신 거부 페이지 만들기","href":"/docs/ko/create-custom-unsubscribe-page"}]},{"group":"이메일 전달 가능성","pages":[{"title":"이메일 메시지 보고서","href":"/docs/ko/email-message-reports"},{"title":"이메일 전달 가능성","href":"/docs/ko/email-deliverability"},{"title":"이메일 평판 모범 사례","href":"/docs/ko/email-reputation-best-practices"},{"title":"이메일 주소 유효성 검사","href":"/docs/ko/email-address-validation"},{"title":"이메일 준비 가이드","href":"/docs/ko/email-warm-up"},{"title":"Google Postmaster Tools","href":"/docs/ko/google-postmaster-tools"},{"title":"차단 목록","href":"/docs/ko/suppressions"},{"title":"이메일 문제 해결","href":"/docs/ko/email-troubleshooting"}]},{"group":"이메일 메시지","pages":[{"title":"드래그 앤 드롭으로 이메일 디자인하기","href":"/docs/ko/design-emails-with-drag-and-drop"},{"title":"HTML로 이메일 디자인하기","href":"/docs/ko/design-emails-with-html"},{"title":"이메일 구독 취소 링크 및 헤더","href":"/docs/ko/unsubscribe-links-email-subscriptions"},{"title":"이메일 템플릿 전달","href":"/docs/ko/email-template-forwarding"}]}]},{"group":"SMS 및 RCS","pages":[{"title":"SMS, MMS, RCS 개요","href":"/docs/ko/sms-messaging"},{"title":"Rich Communication Services (RCS)","href":"/docs/ko/rcs-messaging"},{"group":"SMS 설정","pages":[{"title":"SMS 설정","href":"/docs/ko/sms-setup"},{"title":"발신자 리소스 신청 및 국가별 요구사항","sidebarTitle":"발신자 리소스 신청","href":"/docs/ko/sms-registration-requirements"},{"title":"SMS 옵트인 및 수집","href":"/docs/ko/sms-opt-in-and-collection"},{"title":"SMS 동의 키워드 관리","href":"/docs/ko/sms-consent-keyword-management"},{"title":"SMS 키워드","href":"/docs/ko/keywords"}]},{"group":"SMS 메시지","pages":[{"title":"SMS 메시지 리포트","href":"/docs/ko/sms-message-reports"},{"title":"일회용 비밀번호(OTP)","sidebarTitle":"일회용 비밀번호","href":"/docs/ko/sms-verify"}]}]},{"group":"실시간 현황","pages":[{"title":"Live Activities","href":"/docs/ko/live-activities"},{"title":"Live Activities 분석","href":"/docs/ko/live-activities-analytics"}]},{"group":"기능","pages":[{"title":"A/B 테스팅","href":"/docs/ko/ab-testing"},{"title":"다국어 메시징","href":"/docs/ko/multi-language-messaging"},{"group":"메시지 개인화","pages":[{"title":"개인화","href":"/docs/ko/message-personalization"},{"title":"Liquid 구문 사용","href":"/docs/ko/using-liquid-syntax"},{"title":"데이터 피드","href":"/docs/ko/data-feeds"},{"title":"Custom Events로 개인화하기","href":"/docs/ko/personalization-custom-event"},{"title":"속성을 사용한 개인화","description":"미리 정의된 속성과 사용자 정의 데이터 Tags를 사용하여 OneSignal 메시지를 개인화하세요. Liquid 구문을 통해 이메일, 푸시, SMS, 웹훅 전반에서 사용자, 구독, Journey, 메시지, 템플릿, 앱 수준의 데이터를 활용할 수 있습니다.","href":"/docs/ko/personalization-properties-and-tags"},{"title":"API custom_data로 메시지 개인화하기","href":"/docs/ko/personalization-api-custom-data"},{"title":"CSV를 사용한 동적 콘텐츠","description":"OneSignal에서 CSV 업로드와 Liquid 구문을 사용하여 대규모로 푸시, 이메일 및 SMS 메시지를 개인화합니다.","href":"/docs/ko/dynamic-content"}]},{"group":"URL, 링크, 딥 링크","pages":[{"title":"URL, 링크 및 딥 링크","href":"/docs/ko/links"},{"title":"딥 링킹","href":"/docs/ko/deep-linking"},{"title":"이메일 구독 취소 링크 및 헤더","href":"/docs/ko/unsubscribe-links-email-subscriptions"}]},{"title":"리타겟팅 메시지","href":"/docs/ko/retargeting"},{"title":"템플릿","href":"/docs/ko/templates"},{"title":"레이블","href":"/docs/ko/labels"}]}]},{"group":"Journeys","pages":[{"title":"Journey 개요","href":"/docs/ko/journeys-overview"},{"group":"Journey 기능","pages":[{"title":"Journey 설정","href":"/docs/ko/journeys-settings"},{"title":"Journey 메시지","href":"/docs/ko/journeys-messages"},{"title":"Journey 액션","href":"/docs/ko/journeys-actions"},{"title":"Journey Webhook","href":"/docs/ko/journeys-webhook"},{"title":"Journey Webhook을 통해 WhatsApp 메시지 보내기","href":"/docs/ko/sending-whatsapp-messages-via-journey-webhooks"},{"title":"Journeys 관리","href":"/docs/ko/managing-journeys"},{"title":"Journey 분석","href":"/docs/ko/journeys-analytics"}]},{"title":"Journey 예시","href":"/docs/ko/journeys-examples"}]},{"group":"오디언스 \u0026 사용자 지정 이벤트","pages":[{"title":"세그먼트","href":"/docs/ko/segmentation"},{"group":"Users \u0026 Subscriptions","pages":[{"title":"사용자","href":"/docs/ko/users"},{"title":"구독","href":"/docs/ko/subscriptions"},{"title":"별칭","href":"/docs/ko/aliases"},{"title":"테스트 사용자","href":"/docs/ko/test-users"},{"title":"사용자 삭제","href":"/docs/ko/delete-users"}]},{"group":"사용자 지정 이벤트","pages":[{"title":"사용자 지정 이벤트","href":"/docs/ko/custom-events"},{"title":"사용자 지정 이벤트 저장 및 보존","href":"/docs/ko/custom-event-storage"}]},{"group":"태그","pages":[{"title":"태그","href":"/docs/ko/add-user-data-tags"},{"title":"태그: 시간 연산자","href":"/docs/ko/time-operators"}]},{"title":"가져오기","href":"/docs/ko/import"}]},{"group":"분석 \u0026 통합","pages":[{"group":"분석","pages":[{"title":"분석 개요","href":"/docs/ko/analytics-overview"},{"title":"목표","sidebarTitle":"목표","href":"/docs/ko/goals"},{"title":"템플릿 분석","href":"/docs/ko/template-analytics"},{"title":"데이터 내보내기","href":"/docs/ko/exporting-data"},{"title":"사용자 지정 Outcomes","href":"/docs/ko/custom-outcomes"},{"title":"전환 지표","href":"/docs/ko/conversion-metrics"},{"title":"참여 트렌드","href":"/docs/ko/engagement-analytics"},{"title":"구독 트렌드","href":"/docs/ko/subscription-trends"},{"group":"리텐션 지표","pages":[{"title":"리텐션 지표","href":"/docs/ko/retention-metrics"},{"title":"리텐션 곡선 해석","href":"/docs/ko/interpreting-retention-curves"}]},{"title":"지표 용어집","href":"/docs/ko/analytics-metrics-glossary"}]},{"group":"이벤트 스트림","pages":[{"title":"이벤트 스트림","href":"/docs/ko/event-streams"},{"title":"이벤트 스트림 데이터 참조","sidebarTitle":"이벤트 스트림 데이터","href":"/docs/ko/event-streams-data"},{"title":"인앱 메시지 이벤트 스트림","href":"/docs/ko/iam-event-streams"},{"title":"Event Streams와 Google Sheets 통합","href":"/docs/ko/google-sheets-integration-with-event-streams"}]},{"group":"통합","pages":[{"title":"통합 개요","href":"/docs/ko/integrations"},{"title":"데이터 웨어하우스, DMP 및 CRM 통합","href":"/docs/ko/database-dmp-crm-integration"},{"group":"OneSignal을 데이터 소스로 사용","pages":[{"title":"Amplitude","href":"/docs/ko/amplitude"},{"title":"Databricks","href":"/docs/ko/databricks"},{"title":"Google BigQuery","href":"/docs/ko/bigquery"},{"title":"Mixpanel","href":"/docs/ko/mixpanel"},{"title":"Snowflake","href":"/docs/ko/snowflake"},{"title":"Segment (Twilio)","href":"/docs/ko/segment-onesignal-integration"}]},{"group":"OneSignal을 데이터 목적지로 사용","pages":[{"title":"Adobe Audience Manager","href":"/docs/ko/adobe-audience-manager"},{"title":"AlloyDB","href":"/docs/ko/alloydb"},{"title":"Amazon Athena","href":"/docs/ko/amazon-athena"},{"title":"Amazon S3","href":"/docs/ko/s3"},{"title":"Amplitude","href":"/docs/ko/amplitude"},{"title":"Apache Kafka","href":"/docs/ko/kafka"},{"title":"Amazon Redshift","href":"/docs/ko/amazon-redshift"},{"title":"Azure Synapse","href":"/docs/ko/azure-synapse"},{"title":"ClickHouse","href":"/docs/ko/clickhouse"},{"title":"Confluent Cloud","href":"/docs/ko/confluent-cloud"},{"title":"Databricks","href":"/docs/ko/databricks"},{"title":"Elasticsearch","href":"/docs/ko/elasticsearch"},{"title":"Google BigQuery","href":"/docs/ko/bigquery"},{"title":"Google Cloud SQL","href":"/docs/ko/google-cloud-sql"},{"title":"Google Sheets","href":"/docs/ko/google-sheets"},{"title":"Greenplum","href":"/docs/ko/greenplum"},{"title":"HubSpot","href":"/docs/ko/hubspot"},{"title":"Materialize","href":"/docs/ko/materialize"},{"title":"Microsoft Fabric","href":"/docs/ko/microsoft-fabric"},{"title":"Mixpanel","href":"/docs/ko/mixpanel"},{"title":"MotherDuck","href":"/docs/ko/motherduck"},{"title":"MySQL","href":"/docs/ko/mysql"},{"title":"PostgreSQL","href":"/docs/ko/postgresql"},{"title":"Pub/Sub","href":"/docs/ko/google-pubsub"},{"title":"SingleStore","href":"/docs/ko/singlestore"},{"title":"Snowflake","href":"/docs/ko/snowflake"},{"title":"SQL Server","href":"/docs/ko/sql-server"},{"title":"Starburst Enterprise","href":"/docs/ko/starburst-enterprise"},{"title":"Starburst Galaxy","href":"/docs/ko/starburst-galaxy"},{"title":"Trino","href":"/docs/ko/trino"},{"title":"Segment (Twilio)","href":"/docs/ko/segment-onesignal-integration"}]},{"group":"소비자 추적","pages":[{"title":"RevenueCat","href":"/docs/ko/revenuecat"},{"title":"Adjust","href":"/docs/ko/adjust"},{"title":"BlueConic","href":"/docs/ko/blueconic"}]},{"title":"OneSignal과 통합 구축: 파트너 가이드","href":"/docs/ko/building-an-integration-with-onesignal-partner-guide"}]}]},{"group":"개인 정보 보호 \u0026 보안","pages":[{"group":"보안 자격 증명","pages":[{"title":"SOC 2 Type II","href":"/docs/ko/soc-2-type-ii"},{"title":"ISO 27001","href":"/docs/ko/iso27001"},{"title":"HIPAA","href":"/docs/ko/hipaa"}]},{"group":"데이터 개인 정보 보호 \u0026 규정 준수","pages":[{"title":"GDPR 및 개인 권리","href":"/docs/ko/gdpr-compliance"},{"title":"EU-US 데이터 개인 정보 보호 프레임워크","href":"/docs/ko/eu-us-data-privacy-framework"},{"title":"이메일 규정 준수","href":"/docs/ko/email-compliance"},{"title":"SMS 규제 준수","href":"/docs/ko/sms-regulatory-compliance"},{"title":"Apple 앱 개인정보 보호 요구 사항","href":"/docs/ko/apple-app-privacy-requirements"},{"title":"Google Play 데이터 보안 요구 사항","href":"/docs/ko/google-play-data-safety-requirements"},{"title":"데이터 수집 및 보안 FAQ","href":"/docs/ko/data-questions"},{"title":"OneSignal SDK가 수집하는 데이터","href":"/docs/ko/data-collected-by-the-onesignal-sdk"},{"title":"개인 데이터 처리","href":"/docs/ko/handling-personal-data"}]},{"group":"인증 및 보안","pages":[{"title":"2단계 인증","href":"/docs/ko/2-step-authentication"},{"title":"Single Sign-On (SSO)","href":"/docs/ko/sso"}]}]}]},{"tab":"개발자 가이드","pages":[{"title":"개발자 가이드","href":"/docs/ko/developers"}]},{"tab":"튜토리얼","pages":[{"title":"튜토리얼","href":"/docs/ko/tutorials"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/rest-api-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/changelog"}]}],"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://onesignal.com/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/OneSignal"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@onesignalofficial/playlists"}]}},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/personalization-api-custom-data"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/personalization-api-custom-data"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/personalization-api-custom-data"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/personalization-api-custom-data"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/personalization-api-custom-data"}]}]},"basePath":"","title":"API custom_data로 메시지 개인화하기 - OneSignal Documentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BXrZabKK.js","DynamicMarkdown-CtasenyM.js","zoom-image-lightbox-C5F0mVLH.js","lightbox-handle-r17bVUz3.js"]}