본 문서는 UMS-SDK를 이용하여 네이버 톡톡 메시지를 발송하는 방법을 설명합니다.
발송 전 승인받은 네이버 톡톡 템플릿 정보를 조회한 후, 템플릿 유형에 맞게 SDK 파라미터를 설정해야 합니다.
| 템플릿 유형 | 템플릿 타입 |
|---|---|
| 정보성 기본형 | INFORMATION_MESSAGE |
| 정보성 선물전달형 | INFORMATION_GIFT |
| 정보성 테이블형 | INFORMATION_TABLE_CAROUSEL_1 ~ INFORMATION_TABLE_CAROUSEL_6 |
| 템플릿 유형 | 템플릿 타입 |
|---|---|
| 광고성 기본형 | BENEFIT |
| 광고성 LMS형 | BENEFIT_LMS |
| 광고성 캐러셀 커머스형 | BENEFIT_CAROUSEL_COMMERCE |
| 광고성 리스트 커머스형 | BENEFIT_LIST_COMMERCE |
| 광고성 리스트 피드형 | BENEFIT_LIST_FEED |
| 광고성 캐러셀 피드형 | BENEFIT_CAROUSEL_FEED |
발송하려는 승인 완료 템플릿을 다음 테이블에서 조회합니다.
T_UMS_NAVER_TEMPL
조회한 템플릿 정보를 기준으로 SDK 발송 파라미터를 설정합니다.
| 컬럼명 | 설명 | 사용 대상 |
|---|---|---|
TMPL_CD |
템플릿 코드 | 공통 |
MSG |
발송 메시지 내용 | 정보성 기본형, 정보성 선물전달형 |
PARTNERKEY |
공급사 파트너키 또는 서비스 번호 | 공통 |
NAVER_PROFILE |
네이버 톡톡 프로필 | 공통 |
BUTTONS |
템플릿에 등록된 버튼 정보 | 버튼이 포함된 템플릿 |
PRODUCT_CODE |
메시지 상품 구분 | INFORMATION 또는 BENEFIT |
TEMPL_TYPE |
템플릿 유형 | 공통 |
COUPON |
쿠폰 정보 | 정보성 선물전달형 |
COUPON_DESC |
쿠폰 상세 정보 | 정보성 선물전달형 |
TABLEINFO |
테이블 구성 정보 | 정보성 테이블형 |
PUSH_NOTI |
수신자의 네이버 앱에 노출할 앱 푸시 문구 | 정보성 테이블형 |
BENEFIT |
광고성 메시지 구성 정보 | 광고성 템플릿 |
확인 사항
템플릿 유형별로 필수로 사용해야 하는 컬럼이 다르므로,
TEMPL_TYPE을 기준으로 필요한 값을 확인해야 합니다.
INFORMATION_MESSAGE
[테스트] 정보성 기본형 템플릿을 등록합니다3.
#{고객명}님 오늘은 #{날자} 입니다3.
umsPotalParamVo.setNAVER_PROFILE("w5zwfn");
umsPotalParamVo.setNAVER_PARTNERKEY("2600113442");
// LGCNS를 사용하는 경우 정보성 발송용으로 등록된 서비스 번호여야 합니다.
템플릿 메시지에 #{...} 형식의 치환 변수가 포함되어 있다면 REPLACE_VARS에 JSON 형식으로 값을 설정합니다.
umsPotalParamVo.setREPLACE_VARS(
"{"
+ "\"#{고객명}\":\"홍길동\","
+ "\"#{날자}\":\"2026-06-18\","
+ "\"#{PRODUCT}\":\"PROD001\""
+ "}"
);
치환 결과 예시는 다음과 같습니다.
[테스트] 정보성 기본형 템플릿을 등록합니다3.
홍길동님 오늘은 2026-06-18 입니다3.
DB 테이블(T_UMS_NAVER_TEMPL) 등록된 템플릿 버튼 정보가 다음과 같다고 가정합니다.
[
{
"buttonName": "누적 포인트 확인",
"buttonCode": "WEB-LINK-BTN-001",
"type": "WEB_LINK"
}
]
발송 시 템플릿에 등록된 buttonCode와 실제 이동 URL을 함께 설정해야 합니다.
umsPotalParamVo.setNAVER_BUTTONS(
"["
+ "{"
+ "\"buttonCode\":\"WEB-LINK-BTN-001\","
+ "\"pcUrl\":\"https://www.naver.com/#{PRODUCT}\","
+ "\"mobileUrl\":\"https://m.naver.com\""
+ "}"
+ "]"
);
주의
buttonCode는 승인된 템플릿에 등록된 버튼 코드와 정확히 일치해야 합니다.
umsPotalParamVo.setNAVER_PROFILE("w5zwfn");
umsPotalParamVo.setNAVER_PARTNERKEY("2600113442");
// LGCNS를 사용하는 경우 정보성 발송용으로 등록된 서비스 번호여야 합니다.
umsPotalParamVo.setREPLACE_VARS(
"{"
+ "\"#{고객명}\":\"홍길동\","
+ "\"#{날자}\":\"2026-06-18\","
+ "\"#{PRODUCT}\":\"PROD001\""
+ "}"
);
umsPotalParamVo.setNAVER_BUTTONS(
"["
+ "{"
+ "\"buttonCode\":\"WEB-LINK-BTN-001\","
+ "\"pcUrl\":\"https://www.naver.com/#{PRODUCT}\","
+ "\"mobileUrl\":\"https://m.naver.com\""
+ "}"
+ "]"
);
INFORMATION_GIFT
[테스트] 정보성 선물전달 템플릿을 등록합니다.
#{발송자}님께서 선물을 보내셨습니다.
umsPotalParamVo.setNAVER_PROFILE("w5zwfn");
umsPotalParamVo.setNAVER_PARTNERKEY("2600113442");
// LGCNS를 사용하는 경우 정보성 발송용으로 등록된 서비스 번호여야 합니다.
umsPotalParamVo.setREPLACE_VARS(
"{"
+ "\"#{발송자}\":\"홍길동\","
+ "\"#{PRODUCT}\":\"키보드\""
+ "}"
);
LGCNS를 사용하는 경우, 기프트 이미지는 LGCNS 발송 에이전트가 접근할 수 있는 서버의 절대 경로로 설정해야 합니다.
umsPotalParamVo.setNAVER_IMGHASH(
"/server/MPushAgentNAVER/test-image/598_300.jpg"
);
주의
로컬 PC의 파일 경로가 아니라 실제 발송 에이전트가 파일을 읽을 수 있는 서버 경로여야 합니다.
{
"code": "TEST_COUPON_NO_20260326001",
"endDate": "2026-03-26",
"imageUrl": "https://bizmsg.lgcns.com/common/img/logo_talkdream-white.png",
"name": "유라클 커피 쿠폰",
"publisher": "유라클"
}
[
{
"buttonName": "선물 포인트 확인",
"buttonCode": "WEB-LINK-BTN-002",
"type": "WEB_LINK"
}
]
선물전달형에서는 선물 정보와 버튼 링크 정보를 NAVER_BUTTONS에 함께 설정합니다.
umsPotalParamVo.setNAVER_BUTTONS(
"["
+ "{"
+ "\"giftCode\":\"TEST_COUPON_NO_20260326001\","
+ "\"publisher\":\"LGCNS\","
+ "\"name\":\"스타벅스교환권\","
+ "\"endDate\":\"2026-07-30\""
+ "},"
+ "{"
+ "\"buttonCode\":\"WEB-LINK-BTN-002\","
+ "\"pcUrl\":\"https://www.naver.com/#{PRODUCT}\","
+ "\"mobileUrl\":\"https://m.naver.com\""
+ "}"
+ "]"
);
NAVER_BUTTONS에 전달되는 JSON 구조는 다음과 같습니다.
[
{
"giftCode": "TEST_COUPON_NO_20260326001",
"publisher": "LGCNS",
"name": "스타벅스교환권",
"endDate": "2026-07-30"
},
{
"buttonCode": "WEB-LINK-BTN-002",
"pcUrl": "https://www.naver.com/#{PRODUCT}",
"mobileUrl": "https://m.naver.com"
}
]
umsPotalParamVo.setNAVER_PROFILE("w5zwfn");
umsPotalParamVo.setNAVER_PARTNERKEY("2600113442");
// LGCNS를 사용하는 경우 정보성 발송용으로 등록된 서비스 번호여야 합니다.
umsPotalParamVo.setREPLACE_VARS(
"{"
+ "\"#{발송자}\":\"홍길동\","
+ "\"#{PRODUCT}\":\"키보드\""
+ "}"
);
// LGCNS 에이전트에서 접근할 수 있는 이미지 절대 경로
umsPotalParamVo.setNAVER_IMGHASH(
"/server/MPushAgentNAVER/test-image/598_300.jpg"
);
umsPotalParamVo.setNAVER_BUTTONS(
"["
+ "{"
+ "\"giftCode\":\"TEST_COUPON_NO_20260326001\","
+ "\"publisher\":\"LGCNS\","
+ "\"name\":\"스타벅스교환권\","
+ "\"endDate\":\"2026-07-30\""
+ "},"
+ "{"
+ "\"buttonCode\":\"WEB-LINK-BTN-002\","
+ "\"pcUrl\":\"https://www.naver.com/#{PRODUCT}\","
+ "\"mobileUrl\":\"https://m.naver.com\""
+ "}"
+ "]"
);
INFORMATION_TABLE_CAROUSEL_1
INFORMATION_TABLE_CAROUSEL_2
INFORMATION_TABLE_CAROUSEL_3
INFORMATION_TABLE_CAROUSEL_4
INFORMATION_TABLE_CAROUSEL_5
INFORMATION_TABLE_CAROUSEL_6
테이블형 메시지는 최대 6개의 캐러셀 항목을 지원합니다.
umsPotalParamVo.setNAVER_PROFILE("w5zwfn");
umsPotalParamVo.setNAVER_PARTNERKEY("2600113442");
// LGCNS를 사용하는 경우 정보성 발송용으로 등록된 서비스 번호여야 합니다.
등록된 템플릿의 TABLEINFO에 포함된 #{...} 형식의 변수에 대한 값을 REPLACE_VARS로 전달합니다.
예를 들어 INFO_TABLE_CAROUSEL_03 템플릿에 다음과 같은 치환 변수가 있다고 가정합니다.
#{subtitle0}
#{point0}
#{point1}
#{subtitle1}
#{타이틀0}
#{tbl1}
#{tbl2}
#{타이틀1}
SDK 설정 예시는 다음과 같습니다.
umsPotalParamVo.setREPLACE_VARS(
"{"
+ "\"#{subtitle0}\":\"소제목0\","
+ "\"#{point0}\":\"11000\","
+ "\"#{point1}\":\"2000\","
+ "\"#{subtitle1}\":\"소제목1\","
+ "\"#{타이틀0}\":\"제목0\","
+ "\"#{tbl1}\":\"테이블정보1\","
+ "\"#{tbl2}\":\"테이블정보2\","
+ "\"#{타이틀1}\":\"제목1\""
+ "}"
);
JSON 형태로 표현하면 다음과 같습니다.
{
"#{subtitle0}": "소제목0",
"#{point0}": "11000",
"#{point1}": "2000",
"#{subtitle1}": "소제목1",
"#{타이틀0}": "제목0",
"#{tbl1}": "테이블정보1",
"#{tbl2}": "테이블정보2",
"#{타이틀1}": "제목1"
}
등록된 테이블 템플릿에 앱 링크 버튼이 포함되어 있다면, 템플릿에 등록된 버튼 코드와 앱 스킴 정보를 전달해야 합니다.
umsPotalParamVo.setNAVER_BUTTONS(
"["
+ "{"
+ "\"buttonCode\":\"APP-LINK-BTN-00\","
+ "\"iOsAppScheme\":\"https://www.naver.com\","
+ "\"aOsAppScheme\":\"https://m.naver.com\""
+ "},"
+ "{"
+ "\"buttonCode\":\"APP-LINK-BTN-01\","
+ "\"iOsAppScheme\":\"https://www.naver.com\","
+ "\"aOsAppScheme\":\"https://m.naver.com\""
+ "}"
+ "]"
);
JSON 형태로 표현하면 다음과 같습니다.
[
{
"buttonCode": "APP-LINK-BTN-00",
"iOsAppScheme": "https://www.naver.com",
"aOsAppScheme": "https://m.naver.com"
},
{
"buttonCode": "APP-LINK-BTN-01",
"iOsAppScheme": "https://www.naver.com",
"aOsAppScheme": "https://m.naver.com"
}
]
확인 사항
buttonCode는 승인된 템플릿에 등록된 코드와 일치해야 합니다.iOsAppScheme에는 iOS에서 이동할 링크 또는 앱 스킴을 설정합니다.aOsAppScheme에는 Android에서 이동할 링크 또는 앱 스킴을 설정합니다.
umsPotalParamVo.setNAVER_PROFILE("w5zwfn");
umsPotalParamVo.setNAVER_PARTNERKEY("2600113442");
// LGCNS를 사용하는 경우 정보성 발송용으로 등록된 서비스 번호여야 합니다.
umsPotalParamVo.setREPLACE_VARS(
"{"
+ "\"#{subtitle0}\":\"소제목0\","
+ "\"#{point0}\":\"11000\","
+ "\"#{point1}\":\"2000\","
+ "\"#{subtitle1}\":\"소제목1\","
+ "\"#{타이틀0}\":\"제목0\","
+ "\"#{tbl1}\":\"테이블정보1\","
+ "\"#{tbl2}\":\"테이블정보2\","
+ "\"#{타이틀1}\":\"제목1\""
+ "}"
);
umsPotalParamVo.setNAVER_BUTTONS(
"["
+ "{"
+ "\"buttonCode\":\"APP-LINK-BTN-00\","
+ "\"iOsAppScheme\":\"https://www.naver.com\","
+ "\"aOsAppScheme\":\"https://m.naver.com\""
+ "},"
+ "{"
+ "\"buttonCode\":\"APP-LINK-BTN-01\","
+ "\"iOsAppScheme\":\"https://www.naver.com\","
+ "\"aOsAppScheme\":\"https://m.naver.com\""
+ "}"
+ "]"
);
| 구분 | 프로필 | 파트너키 | 치환 변수 | 이미지 | 선물 정보 | 버튼 정보 | 테이블 정보 |
|---|---|---|---|---|---|---|---|
| 정보성 기본형 | 필수 | 필수 | 템플릿에 변수가 있으면 필수 | 해당 없음 | 해당 없음 | 버튼 사용 시 필수 | 해당 없음 |
| 정보성 선물전달형 | 필수 | 필수 | 템플릿에 변수가 있으면 필수 | 선물 이미지 사용 시 필수 | 필수 | 버튼 사용 시 필수 | 해당 없음 |
| 정보성 테이블형 | 필수 | 필수 | 테이블 변수 사용 시 필수 | 템플릿 구성에 따름 | 해당 없음 | 버튼 사용 시 필수 | 필수 |
NAVER_PROFILE이 템플릿이 등록된 프로필과 일치하는지 확인합니다.NAVER_PARTNERKEY가 공급사에 등록된 값과 일치하는지 확인합니다.TEMPL_TYPE과 실제 발송 데이터의 구조가 일치하는지 확인합니다.buttonCode가 일치하는지 확인합니다.치환 변수는 템플릿에 등록된 형식을 그대로 사용해야 합니다.
#{고객명}
#{날자}
#{PRODUCT}
다음처럼 변수명의 대소문자나 괄호 형식이 달라지면 정상적으로 치환되지 않을 수 있습니다.
잘못된 예: 고객명
잘못된 예: ${고객명}
잘못된 예: #{customerName}
LGCNS 발송 에이전트를 이용하는 경우 다음 사항을 확인합니다.
/server/MPushAgentNAVER/test-image/598_300.jpg
REPLACE_VARS와 NAVER_BUTTONS는 올바른 JSON 형식이어야 합니다.
다음 항목을 확인합니다.
[] 누락 여부{} 누락 여부| SDK 메서드 | 설명 |
|---|---|
setNAVER_PROFILE() |
네이버 톡톡 프로필 설정 |
setNAVER_PARTNERKEY() |
공급사 파트너키 또는 서비스 번호 설정 |
setREPLACE_VARS() |
메시지 또는 테이블의 치환 변수 설정 |
setNAVER_BUTTONS() |
버튼 링크, 앱 스킴 또는 선물 정보 설정 |
setNAVER_IMGHASH() |
선물전달형 등에 사용하는 이미지 경로 설정 |
1. 발송 대상 템플릿 코드 확인
↓
2. T_UMS_NAVER_TEMPL 테이블에서 승인 템플릿 조회
↓
3. NAVER_PROFILE 및 PARTNERKEY 설정
↓
4. 템플릿의 치환 변수 확인
↓
5. REPLACE_VARS 설정
↓
6. 템플릿 유형에 따라 이미지, 선물, 테이블 정보 설정
↓
7. 템플릿에 등록된 버튼 코드와 링크 정보 설정
↓
8. UMS-SDK를 이용하여 메시지 발송