3.4 카카오 V2 브랜드메시지
- 01. 브랜드메시지 템플릿 등록
- 02. 브랜드메시지 템플릿 수정
- 03. 브랜드메시지 템플릿 채널별 전체 조회
- 04. 브랜드메시지 템플릿 상세 조회
- 05. 브랜드메시지 템플릿 삭제
- 06. 브랜드메시지 카카오채널 무료수신거부정보 수정
- Appendix
베이스 URL
섹션 제목: “베이스 URL”| 구분 | 접속 URL |
|---|---|
| 상용 | https://mnt-api.msghub.uplus.co.kr |
| 검수 | https://mnt-api.msghub-qa.uplus.co.kr |
01. 브랜드메시지 템플릿 등록
섹션 제목: “01. 브랜드메시지 템플릿 등록”브랜드메시지 템플릿 등록한다.
📌 주의사항
섹션 제목: “📌 주의사항”- 이미지는 파일업로드 API를 통해 템플릿 유형별로 등록할 수 있습니다.
- 최대 20개의 변수명 입력 가능합니다.
- 변수명은 최대 20자 이내 한/영/숫자/’-’,’_’ 로 입력 가능합니다.
- WIDE_ITEM_LIST형의 경우, mainWideItem은 title이 필수가 아니지만, subWideItemList는 title이 필수입니다.
- COMMERCE형의 경우, regularPrice, discountPrice, discountRate, discountFixed 값을 입력하지 않을 경우 고정 변수명으로 저장됩니다. 고정 변수명을 사용하면 메시지 발송 시 금액을 변경하여 메시지를 발송 할 수 있습니다.
- AC 버튼을 사용할 경우, TEXT, IMAGE 형은 첫번째 버튼으로, 그 외 템플릿 유형의 경우 마지막 버튼으로 등록해주셔야 합니다.
- 채널 쿠폰 URL(포맷: alimtalk=coupon://) 사용시 linkAndroid, linkIos 중 하나 입력 필수입니다.
- 채널 쿠폰 URL 이 아닌 기본 쿠폰 사용시 linkMobile 입력 필수입니다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /kko/v2/channel/brand/template/create HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| kkoChId | String | ● | 카카오 채널ID |
| kkoGrpId | String | - | 카카오 그룹ID |
| tmpltCode | String | - | 템플릿 코드 (공백x) |
| senderKeyType | String | - | 채널ID 유형, S: 일반ID, G: 그룹ID, Default: S |
| name | String | ● | 템플릿 이름 |
| chatBubbleType | String | ● | 메시지 타입 (TEXT, IMAGE, WIDE, WIDE_ITEM_LIST, PREMIUM_VIDEO, CAROUSEL_FEED, CAROUSEL_COMMERCE, COMMERCE 8종) |
| adult | boolean | ● | 성인용 템플릿 여부 |
| content | String | - | 템플릿 내용 TEXT: 최대 1,300자 (줄 바꿈: 최대 99개, URL 형식 입력 가능), IMAGE: 최대 400자 (줄 바꿈: 최대 29개, URL 형식 입력 가능), WIDE, PREMIUM_VIDEO: 최대 76자 (줄 바꿈: 최대 1개) |
| 공통 CAROUSEL_COMMERCE , CAROUSEL_FEED 는 buttons, coupon 사용 불가 | |||
| buttons | Button[] | - | 버튼요소 (TEXT, IMAGE - coupon 사용할 경우 최대 4개, 그 외 최대 5개 WIDE, WIDE_ITEM_LIST - 최대 2개 PREMIUM_VIDEO - 최대 1개 COMMERCE - 최소1개 최대 2개) |
| coupon | Coupon | - | 쿠폰요소 |
| 챗버블 IMAGE 이미지형, WIDE 와이드형 일 경우 | |||
| imageUrl | String | ● | 파일 업로드 API로 등록한 이미지 URL |
| imageLink | String | - | 이미지 클릭 시 이동할 URL |
| 챗버블 WIDE_ITEM_LIST 와이드 아이템 리스트형 일 경우 | |||
| header | String | ● | 템플릿 헤더 |
| mainWideItem | WideItem | ● | 와이드 리스트 첫번째 아이템 정보 |
| mainWideItem.tile | String | - | 아이템 제목 |
| mainWideItem.imageUrl | String | ● | 이미지업로드 API로 등록한 아이템 이미지 url |
| mainWideItem.linkMobile | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| mainWideItem.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| mainWideItem.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| mainWideItem.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| subWideItemList | WideItem[] | ● | 와이드 리스트 2~4번째 아이템 정보 |
| subWideItemList[].tile | String | ● | 아이템 제목 |
| subWideItemList[].imageUrl | String | ● | 이미지업로드 API로 등록한 아이템 이미지 url |
| subWideItemList[].linkMobile | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| subWideItemList[].linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| subWideItemList[].linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| subWideItemList[].linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| 챗버블 PREMIUM_VIDEO 프리미엄 동영상 형 일 경우 | |||
| header | String | - | 템플릿 헤더 |
| video | Object | ● | 동영상 요소 |
| video.videoUrl | String | ● | 카카오TV 동영상 url |
| video.thumbnailUrl | String | - | 이미지업로드 API로 등록한 아이템 이미지 url |
| 챗버블 COMMERCE 커머스 형 일 경우 | |||
| additionalContent | String | - | 템플릿 부가정보, 줄바꿈 최대 1개 |
| imageUrl | String | ● | 파일 업로드 API로 등록한 이미지 URL |
| commerce | Object | ● | - |
| commerce.title | String | ● | 상품 제목 |
| commerce.regularPrice | Number | - | 정상가격 (0 ~ 99,999,999) |
| commerce.discountPrice | Number | - | 할인 후 가격 (0 ~ 99,999,999) |
| commerce.discountRate | Number | - | 할인율 (0 ~ 100) 할인율과 정액 할인 가격 둘중 하나만 입력 |
| commerce.discountFixed | Number | - | 정액 할인 가격 (0 ~ 999,999) 할인율과 정액 할인 가격 둘중 하나만 입력 |
| 챗버블 CAROUSEL_COMMERCE 캐러셀 커머스 형 일 경우 | |||
| carousel | Object | ● | - |
| carousel.head | Object | - | 캐러셀 인트로(head) |
| carousel.head.header | String | ● | 캐러셀 인트로 헤더 (CAROUSEL_COMMERCE head 사용시 필수) |
| carousel.head.content | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url |
| carousel.head.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| carousel.head.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| carousel.head.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| carousel.head.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.head.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.list | json[] | ● | 캐러셀 리스트, 캐러셀인트로(head) 사용시 1-5개, 그 외 2-6개 |
| carousel.list.additionalContent | String | - | 캐러셀 리스트 부가정보 |
| carousel.list.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| carousel.list.imageLink | String | - | 이미지 클릭 시 이동할 url |
| carousel.list.commerce | Commerce | ● | 커머스요소 |
| carousel.list.buttons | Button[] | ● | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| carousel.list.coupon | Coupon | - | 쿠폰 요소 |
| carousel.tail | json | - | 더보기 버튼 |
| carousel.tail.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| carousel.tail.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| carousel.tail.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.tail.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| 챗버블 챗버블 CAROUSEL_FEED캐러셀 피드 형 일 경우 | |||
| carousel | Object | ● | - |
| carousel.list | json[] | ● | 캐러셀 리스트, 캐러셀인트로(head) 사용시 1-5개, 그 외 2-6개 |
| carousel.list .header | String | ● | 캐러셀 인트로 헤더 |
| carousel.list.content | String | ● | 캐러셀 리스트 내용 |
| carousel.list.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| carousel.list.imageLink | String | - | 이미지 클릭 시 이동할 url |
| carousel.list.buttons | Button[] | ● | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| carousel.list.coupon | Coupon | - | 쿠폰 요소 |
| carousel.tail | json | - | 더보기 버튼 |
| carousel.tail.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| carousel.tail.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| carousel.tail.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.tail.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
Carousel 객체
섹션 제목: “Carousel 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| carousel.head | json | - | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 인트로 | |
| carousel.head.header | String | ● | 캐러셀 인트로 헤더 | 최대 20자 |
| carousel.head.content | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url | |
| carousel.head.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url | |
| carousel.head.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 | |
| carousel.head.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url | |
| carousel.head.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme | |
| carousel.head.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme | |
| carousel.list | json[] | ● | 캐러셀 리스트, 캐러셀인트로(head) 사용시 1-5개, 그 외 2-6개 | |
| carousel.list .header | String | ● | CAROUSEL_FEED인 경우 사용, 캐러셀 인트로 헤더 | 최대 20자 |
| carousel.list.content | String | ● | CAROUSEL_FEED인 경우 사용, 캐러셀 리스트 내용 | 최대 180자 |
| carousel.list.additionalContent | String | - | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 리스트 부가정보 | 최대 34자 |
| carousel.list.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url | |
| carousel.list.imageLink | String | - | 이미지 클릭 시 이동할 url | |
| carousel.list.commerce | Commerce | ● | CAROUSEL_COMMERCE인 경우 사용, 커머스요소 | |
| carousel.list.buttons | Button[] | ● | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) | |
| carousel.list.coupon | Coupon | - | 쿠폰 요소 | |
| carousel.tail | json | - | 더보기 버튼 | |
| carousel.tail.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 | |
| carousel.tail.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url | |
| carousel.tail.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme | |
| carousel.tail.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
WideItem[] 객체
섹션 제목: “WideItem[] 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| tile | String | - | 아이템 제목 mainWideItem의 경우 최대 25자 , subWideItemList의 경우 필수, 최대 30자 |
| imageUrl | String | ● | 이미지업로드 API로 등록한 아이템 이미지 url |
| linkMobile | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
Video 객체
섹션 제목: “Video 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| videoUrl | String | ● | 카카오TV 동영상 url | 500자 |
| thumbnailUrl | String | - | 이미지업로드 API로 등록한 아이템 이미지 url | 500자 |
Commerce 객체
섹션 제목: “Commerce 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| tile | String | ● | 상품 제목 | 30자 |
| regularPrice | Number | - | 정상가격 (0 ~ 99,999,999) | |
| discountPrice | Number | - | 할인 후 가격 (0 ~ 99,999,999) | |
| discountRate | Number | - | 할인율 (0 ~ 100) | |
| discountFixed | Number | - | 정액 할인 가격 (0 ~ 99,999,999) |
Button 객체
섹션 제목: “Button 객체”📌 주의사항
섹션 제목: “📌 주의사항”- WL 타입은 linkAndroid, linkIos 를 사용하지 않습니다.
- BF 타입은 bizFormId이 필수입니다.
- BF 타입 버튼명은 비즈니스폼 유형에 따라 “톡에서 설문하기”, “톡에서 응모하기”, “톡에서 예약하기” 중 한가지만 사용가능합니다.
| Name | Type | 설명 |
|---|---|---|
| buttons[].name | String | 버튼이름 |
| buttons[].linkType | String | 버튼타입(WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달, AC: 채널추가, BF: 비즈니스폼) |
| buttons[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| buttons[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| buttons[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| buttons[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| buttons[].bizFormId | Number | 비즈니스폼 ID |
Coupon 객체
섹션 제목: “Coupon 객체”📌 주의사항
섹션 제목: “📌 주의사항”- 쿠폰 제목에는 변수와 고정값을 사용할 수 있습니다.
- 쿠폰 제목에 변수를 사용하는 경우, 고정 변수명 5개 중 사용
고정 변수 :#{할인금액}원 할인 쿠폰#{할인율}% 할인 쿠폰- 배송비 할인 쿠폰
#{상품명}무료 쿠폰#{상품명}UP 쿠폰
예시) 고정 변수 문자 그대로 입력하여 등록
"coupon": { "title": "#{상품명} 무료 쿠폰" }
"coupon": { "title": "#{할인율}% 할인 쿠폰" }
"coupon": { "title": "배송비 할인 쿠폰" }- 쿠폰 제목에 고정 값 사용을 원할 경우, 변수 자리에 숫자 입력
#{할인금액}입력 가능 범위 : 1 ~ 99,999,9999
#{할인율}입력 가능 범위 : 1 ~ 100
#{상품명}: 최대 7자
예시) 변수자리에 숫자 혹은 문자 입력하여 등록
"coupon": { "title": "바나나우유 무료 쿠폰" }
"coupon": { "title": "20% 할인 쿠폰" }
"coupon": { "title": "50000원 할인 쿠폰" }| Name | Type | 필수 | 설명 |
|---|---|---|---|
| tile | String | ● | 쿠폰 제목 |
| description | String | ● | 쿠폰 설명 |
| linkMobile | String | - | mobile 환경에서 쿠폰 클릭 시 이동할 url |
| linkPc | String | - | pc 환경에서 쿠폰 클릭 시 이동할 url |
| linkAndroid | String | - | mobile android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| linkIos | String | - | mobile ios 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Object | 결과 데이터 정보 |
| data.tmpltCode | String | 템플릿코드 |
| data.name | String | 템플릿명 |
| data.kkoChId | String | 카카오채널 검색용ID |
| data.senderKeyType | String | 발신프로필타입(S:카카오채널, G:그룹) |
| data.chatBubbleType | String | 메시지 타입 |
| data.adult | boolean | 성인용 템플릿 여부 |
| data.header | String | 템플릿 헤더 (WIDE_ITEM_LIST, PREMIUM_VIDEO 사용가능) |
| data.content | String | 템플릿 내용 (TEXT형 1300자, IMAGE형 400자, WIDE, PREMIUM_VIDEO 최대 76자) |
| data.videoUrl | String | 카카오TV 동영상 url |
| data.thumbnailUrl | String | 이미지업로드 API로 등록한 아이템 이미지 url |
| data.buttons[].name | String | 버튼이름 |
| data.buttons[].linkType | String | 버튼타입(WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달, AC: 채널추가, BF: 비즈니스폼) |
| data.buttons[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.buttons[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| data.buttons[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.buttons[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.buttons[].bizFormId | Number | 비즈니스폼 ID |
| data.coupon.tile | String | 쿠폰 제목 |
| data.coupon.description | String | 쿠폰 설명 |
| data.coupon.linkMobile | String | mobile 환경에서 쿠폰 클릭 시 이동할 url |
| data.coupon.linkPc | String | pc 환경에서 쿠폰 클릭 시 이동할 url |
| data.coupon.linkAndroid | String | mobile android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| data.coupon.linkIos | String | mobile ios 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| data.carousel.head.header | String | 캐러셀 인트로 헤더 |
| data.carousel.head.content | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.carousel.head.imageUrl | String | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| data.carousel.head.linkMobile | String | - |
| data.carousel.head.linkPc | String | - |
| data.carousel.head.linkAndroid | String | - |
| data.carousel.head.linkIos | String | - |
| data.carousel.list .header | String | CAROUSEL_FEED인 경우 사용, 캐러셀 인트로 헤더 |
| data.carousel.list.content | String | CAROUSEL_FEED인 경우 사용, 캐러셀 리스트 내용 |
| data.carousel.list.additionalContent | String | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 리스트 부가정보 |
| data.carousel.list.imageUrl | String | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| data.carousel.list.imageLink | String | 이미지 클릭 시 이동할 url |
| data.carousel.list.commerce | Commerce | CAROUSEL_COMMERCE인 경우 사용, 커머스요소 |
| data.carousel.list.buttons | Button[] | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| data.carousel.list.coupon | Coupon | 쿠폰 요소 |
| data.carousel.tail.linkMobile | String | - |
| data.carousel.tail.linkPc | String | - |
| data.carousel.tail.linkAndroid | String | - |
| data.carousel.tail.linkIos | String | - |
| data.wideItemList[].title | String | 와이드아이템리스트 제목 |
| data.wideItemList[].imageUrl | String | 와이드아이템리스트 이미지url |
| data.wideItemList[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.wideItemList[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| data.wideItemList[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.wideItemList[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl 텍스트형
섹션 제목: “Curl 텍스트형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "name": "TEXT형", "chatBubbleType": "TEXT", "adult": false, "content": "#{name}님 안녕하세요. 브랜드 메시지 테스트입니다.", "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{상품명} 무료 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'Curl 이미지형
섹션 제목: “Curl 이미지형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "name": "이미지형", "chatBubbleType": "IMAGE", "content": "안녕하세요. 브랜드 메시지 테스트입니다.", "imageUrl": "https://mud-kage.kakao.com/dn/l...xE/b....XE/vag....30/img_l.jpg", "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com", "linkPc": "https://www.naver.com" } ], "coupon": { "title": "#{상품명} UP 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'Curl 와이드형
섹션 제목: “Curl 와이드형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "name": "와이드형", "chatBubbleType": "WIDE", "adult": false, "content": "#{name}님 안녕하세요. 브랜드메시지 테스트입니다.", "imageUrl": "https://mud-kage.kakao.com/dn/Fk4...A/b...8u/qwPx....Gbk/img_l.jpg", "imageLink": "https://msghub.uplus.co.kr/public/main", "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{상품명} UP 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'Curl 비디오형
섹션 제목: “Curl 비디오형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "tmpltCode": "VIDEO02", "name": "비디오형", "chatBubbleType": "PREMIUM_VIDEO", "adult": false, "content": "#{내용}", "video": { "videoUrl": "https://tv.kakao.com/v/4....54", "thumbnailUrl": "https://mud-kage.kakao.com/dn/lvkxE/bts...5XE/va....Q30/img_l.jpg" }, "header": "#{헤더}", "buttons": [ { "name": "버튼01", "linkType": "AL", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } ], "coupon": { "title": "#{할인율}% 할인 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'Curl 커머스형
섹션 제목: “Curl 커머스형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "tmpltCode": "COMMERCE02", "name": "커머스형", "chatBubbleType": "COMMERCE", "adult": false, "additionalContent": "#{부가내용}", "imageUrl": "https://mud-kage.kakao.com/dn/lvkxE/bts....5XE/vag....bpQ30/img_l.jpg", "imageLink": "https://msghub.uplus.co.kr/public/main", "commerce": { "title": "#{커머스제목}", "regularPrice": 1000000, "discountPrice": 900000, "discountRate": 10 }, "buttons": [ { "name": "버튼01", "linkType": "MD" } ], "coupon": { "title": "#{할인율}% 할인 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'Curl 와이드아이템리스트형
섹션 제목: “Curl 와이드아이템리스트형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "tmpltCode": "WIDEITEMLIST02", "name": "와이드아이템리스트형", "chatBubbleType": "WIDE_ITEM_LIST", "adult": false, "header": "#{헤더}", "mainWideItem": { "title": "#{메인타이틀}", "imageUrl": "https://mud-kage.kakao.com/dn/GkEt7/bts...4/4Vmgm....bk/img_l.jpg", "linkMobile": "https://www.naver.com" }, "subWideItemList": [ { "title": "#{서브타이틀}", "imageUrl": "https://mud-kage.kakao.com/dn/bx74y0/bt...5/7V....pBke0/img_l.jpg", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" }, { "title": "#{서브타이틀2}", "imageUrl": "https://mud-kage.kakao.com/dn/IQTR7/bts...Y/uE....SK/img_l.jpg", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{상품명} UP 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'Curl 캐러셀커머스형
섹션 제목: “Curl 캐러셀커머스형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "name": "캐러셀커머스형", "chatBubbleType": "CAROUSEL_COMMERCE", "adult": false, "carousel": { "head": { "header": "#{헤드헤더}", "content": "#{헤드내용}", "imageUrl": "https://mud-kage.kakao.com/dn/I..R7/bts...UNY/uEn....4SK/img_l.jpg", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" }, "list": [ { "additionalContent": "#{리스트부가정보}", "imageUrl": "https://mud-kage.kakao.com/dn/bx74y0/bt....R5/7V....e0/img_l.jpg", "commerce": { "title": "#{커머스제목}" }, "buttons": [ { "name": "버튼", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{할인율}% 할인 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } } ], "tail": { "linkMobile": "https://www.naver.com", "linkPc": "https://www.naver.com" } } }'Curl 캐러셀피드형
섹션 제목: “Curl 캐러셀피드형”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/create " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "name": "캐러셀피드형", "chatBubbleType": "CAROUSEL_FEED", "adult": false, "carousel": { "list": [ { "header": "#{헤더1}", "content": "#{피드내용1}", "imageUrl": "https://mud-kage.kakao.com/dn/bx74y0/bt...5/7V...e0/img_l.jpg", "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" }, { "name": "버튼02", "linkType": "AL", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } ] }, { "header": "#{헤더2}", "content": "#{피드내용2}", "imageUrl": "https://mud-kage.kakao.com/dn/IQTR7/bts...NY/uEn...SK/img_l.jpg", "imageLink": "https://msghub.uplus.co.kr/public/main", "buttons": [ { "linkType": "AC" } ], "coupon": { "title": "#{할인금액}원 할인 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } } ], "tail": { "linkMobile": "https://www.naver.com", "linkPc": "https://www.naver.com", "linkAndroid": "https://www.naver.com", "linkIos": "https://www.naver.com" } } }'JSON Response
섹션 제목: “JSON Response”{ "code": "10000", "message": "성공", "data": { "kkoChId": "@msghub", "senderKeyType": "S", "tmpltCode": "TP....Gg", "name": "캐러셀커머스형", "chatBubbleType": "CAROUSEL_COMMERCE", "adult": false, "carousel": { "head": { "header": "#{헤드헤더}", "content": "#{헤드내용}", "imageUrl": "https://mud-kage.kakao.com/dn/I...7/b....NY/uEn....4SK/img_l.jpg", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkIos": "https://www.naver.com/#{linkIos}", "linkAndroid": "https://www.naver.com/#{linkAndroid}" }, "list": [ { "additionalContent": "#{리스트부가정보}", "imageUrl": "https://mud-kage.kakao.com/dn/b...y0/b.....R5/7.....ke0/img_l.jpg", "commerce": { "title": "#{커머스제목}", "regularPriceName": "#{정상가격}", "discountPriceName": "#{할인가격}", "discountRateName": "#{할인율}", "discountFixedName": "#{정액할인가격}" }, "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{할인금액}원 할인 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } } ], "tail": { "linkMobile": "https://www.naver.com", "linkPc": "https://www.naver.com" } } }}02. 브랜드메시지 템플릿 수정
섹션 제목: “02. 브랜드메시지 템플릿 수정”브랜드메시지 템플릿 수정한다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /kko/v2/channel/brand/template/update HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| kkoChId | String | ● | 카카오 채널ID |
| kkoGrpId | String | - | 카카오 그룹ID |
| tmpltCode | String | ● | 템플릿 코드 (공백x) |
| senderKeyType | String | - | 채널ID 유형, S: 일반ID, G: 그룹ID, Default: S |
| name | String | ● | 템플릿 이름 |
| chatBubbleType | String | ● | 메시지 타입 (TEXT, IMAGE, WIDE, WIDE_ITEM_LIST, PREMIUM_VIDEO, CAROUSEL_FEED, CAROUSEL_COMMERCE, COMMERCE 8종) |
| adult | boolean | - | 성인용 템플릿 여부 |
| content | String | - | 템플릿 내용 TEXT, IMAGE: 최대 1,300자 (줄 바꿈: 최대 99개, URL 형식 입력 가능), WIDE, PREMIUM_VIDEO: 최대 76자 (줄 바꿈: 최대 1개) |
| 공통 CAROUSEL_COMMERCE , CAROUSEL_FEED 는 buttons, coupon 사용 불가 | |||
| buttons | Button[] | - | 버튼요소 (TEXT, IMAGE - coupon 사용할 경우 최대 4개, 그 외 최대 5개 WIDE, WIDE_ITEM_LIST - 최대 2개 PREMIUM_VIDEO - 최대 1개 COMMERCE - 최소1개 최대 2개) |
| coupon | Coupon | - | 쿠폰요소 |
| 챗버블 IMAGE 이미지형, WIDE 와이드형 일 경우 | |||
| imageUrl | String | ● | 파일 업로드 API로 등록한 이미지 URL |
| imageLink | String | - | 이미지 클릭 시 이동할 URL |
| 챗버블 WIDE_ITEM_LIST 와이드 아이템 리스트형 일 경우 | |||
| header | String | ● | 템플릿 헤더 |
| mainWideItem | WideItem | ● | 와이드 리스트 첫번째 아이템 정보 |
| mainWideItem.tile | String | - | 아이템 제목 |
| mainWideItem.imageUrl | String | ● | 이미지업로드 API로 등록한 아이템 이미지 url |
| mainWideItem.linkMobile | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| mainWideItem.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| mainWideItem.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| mainWideItem.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| subWideItemList | WideItem[] | ● | 와이드 리스트 2~4번째 아이템 정보 |
| subWideItemList[].tile | String | ● | 아이템 제목 |
| subWideItemList[].imageUrl | String | ● | 이미지업로드 API로 등록한 아이템 이미지 url |
| subWideItemList[].linkMobile | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| subWideItemList[].linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| subWideItemList[].linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| subWideItemList[].linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| 챗버블 PREMIUM_VIDEO 프리미엄 동영상 형 일 경우 | |||
| header | String | - | 템플릿 헤더 |
| video | Object | ● | 동영상 요소 |
| video.videoUrl | String | ● | 카카오TV 동영상 url |
| video.thumbnailUrl | String | - | 이미지업로드 API로 등록한 아이템 이미지 url |
| 챗버블 COMMERCE 커머스 형 일 경우 | |||
| imageUrl | String | ● | 파일 업로드 API로 등록한 이미지 URL |
| additionalContent | String | - | 템플릿 부가정보, 줄바꿈 최대 1개 |
| commerce | Object | ● | - |
| commerce.title | String | ● | 상품 제목 |
| commerce.regularPrice | Number | - | 정상가격 (0 ~ 99,999,999) |
| commerce.discountPrice | Number | - | 할인 후 가격 (0 ~ 99,999,999) |
| commerce.discountRate | Number | - | 할인율 (0 ~ 100) 할인율과 정액 할인 가격 둘중 하나만 입력 |
| commerce.discountFixed | Number | - | 정액 할인 가격 (0 ~ 999,999) 할인율과 정액 할인 가격 둘중 하나만 입력 |
| 챗버블 CAROUSEL_COMMERCE 캐러셀 커머스 형 일 경우 | |||
| carousel | Object | ● | - |
| carousel.head | Object | - | 캐러셀 인트로(head) |
| carousel.head.header | String | ● | 캐러셀 인트로 헤더 (CAROUSEL_COMMERCE head 사용시 필수) |
| carousel.head.content | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url |
| carousel.head.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| carousel.head.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| carousel.head.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| carousel.head.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.head.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.list | json[] | ● | 캐러셀 리스트, 캐러셀인트로(head) 사용시 1-5개, 그 외 2-6개 |
| carousel.list.additionalContent | String | - | 캐러셀 리스트 부가정보 |
| carousel.list.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| carousel.list.imageLink | String | - | 이미지 클릭 시 이동할 url |
| carousel.list.commerce | Commerce | ● | 커머스요소 |
| carousel.list.buttons | Button[] | ● | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| carousel.list.coupon | Coupon | - | 쿠폰 요소 |
| carousel.tail | json | - | 더보기 버튼 |
| carousel.tail.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| carousel.tail.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| carousel.tail.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.tail.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| 챗버블 챗버블 CAROUSEL_FEED캐러셀 피드 형 일 경우 | |||
| carousel | Object | ● | - |
| carousel.list | json[] | ● | 캐러셀 리스트, 캐러셀인트로(head) 사용시 1-5개, 그 외 2-6개 |
| carousel.list .header | String | ● | 캐러셀 인트로 헤더 |
| carousel.list.content | String | ● | 캐러셀 리스트 내용 |
| carousel.list.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| carousel.list.imageLink | String | - | 이미지 클릭 시 이동할 url |
| carousel.list.buttons | Button[] | ● | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| carousel.list.coupon | Coupon | - | 쿠폰 요소 |
| carousel.tail | json | - | 더보기 버튼 |
| carousel.tail.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| carousel.tail.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| carousel.tail.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| carousel.tail.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
Carousel 객체
섹션 제목: “Carousel 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| carousel.head | json | - | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 인트로 | |
| carousel.head.header | String | ● | 캐러셀 인트로 헤더 | 최대 20자 |
| carousel.head.content | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url | |
| carousel.head.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url | |
| carousel.head.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 | |
| carousel.head.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url | |
| carousel.head.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme | |
| carousel.head.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme | |
| carousel.list | json[] | ● | 캐러셀 리스트, 캐러셀인트로(head) 사용시 1-5개, 그 외 2-6개 | |
| carousel.list .header | String | ● | CAROUSEL_FEED인 경우 사용, 캐러셀 인트로 헤더 | 최대 20자 |
| carousel.list.content | String | ● | CAROUSEL_FEED인 경우 사용, 캐러셀 리스트 내용 | 최대 180자 |
| carousel.list.additionalContent | String | - | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 리스트 부가정보 | 최대 34자 |
| carousel.list.imageUrl | String | ● | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url | |
| carousel.list.imageLink | String | - | 이미지 클릭 시 이동할 url | |
| carousel.list.commerce | Commerce | ● | CAROUSEL_COMMERCE인 경우 사용, 커머스요소 | |
| carousel.list.buttons | Button[] | ● | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) | |
| carousel.list.coupon | Coupon | - | 쿠폰 요소 | |
| carousel.tail | json | - | 더보기 버튼 | |
| carousel.tail.linkMobile | String | - | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 | |
| carousel.tail.linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url | |
| carousel.tail.linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme | |
| carousel.tail.linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
WideItem[] 객체
섹션 제목: “WideItem[] 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| tile | String | - | 아이템 제목 mainWideItem의 경우 최대 25자 , subWideItemList의 경우 필수, 최대 30자 |
| imageUrl | String | ● | 이미지업로드 API로 등록한 아이템 이미지 url |
| linkMobile | String | ● | mobile 환경에서 버튼 클릭 시 이동할 url , 링크를 하나라도 입력하는 경우 linkMobile 필수 |
| linkPc | String | - | pc 환경에서 버튼 클릭 시 이동할 url |
| linkAndroid | String | - | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| linkIos | String | - | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
Video 객체
섹션 제목: “Video 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| videoUrl | String | ● | 카카오TV 동영상 url | 500자 |
| thumbnailUrl | String | - | 이미지업로드 API로 등록한 아이템 이미지 url | 500자 |
Commerce 객체
섹션 제목: “Commerce 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| tile | String | ● | 상품 제목 | 30자 |
| regularPrice | Number | - | 정상가격 (0 ~ 99,999,999) | |
| discountPrice | Number | - | 할인 후 가격 (0 ~ 99,999,999) | |
| discountRate | Number | - | 할인율 (0 ~ 100) | |
| discountFixed | Number | - | 정액 할인 가격 (0 ~ 99,999,999) |
Button 객체
섹션 제목: “Button 객체”📌 주의사항
섹션 제목: “📌 주의사항”- WL 타입은 linkAndroid , linkIos 를 사용하지 않습니다.
- BF 타입은 bizFormId이 필수입니다.
| Name | Type | 설명 |
|---|---|---|
| buttons[].name | String | 버튼이름 |
| buttons[].linkType | String | 버튼타입(WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달, AC: 채널추가, BF: 비즈니스폼) |
| buttons[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| buttons[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| buttons[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| buttons[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| buttons[].bizFormId | Number | 비즈니스폼 ID |
Coupon 객체
섹션 제목: “Coupon 객체”📌 주의사항
섹션 제목: “📌 주의사항”- 쿠폰 제목에는 변수와 고정값을 사용할 수 있습니다.
- 쿠폰 제목에 변수를 사용하는 경우, 고정 변수명 5개 중 사용
고정 변수 :#{할인금액}원 할인 쿠폰#{할인율}% 할인 쿠폰- 배송비 할인 쿠폰
#{상품명}무료 쿠폰#{상품명}UP 쿠폰
예시) 고정 변수 문자 그대로 입력하여 등록
"coupon": { "title": "#{상품명} 무료 쿠폰" }
"coupon": { "title": "#{할인율}% 할인 쿠폰" }
"coupon": { "title": "배송비 할인 쿠폰" }- 쿠폰 제목에 고정 값 사용을 원할 경우, 변수 자리에 숫자 입력
#{할인금액}입력 가능 범위 : 1 ~ 99,999,9999
#{할인율}입력 가능 범위 : 1 ~ 100
#{상품명}: 최대 7자
예시) 변수자리에 숫자 혹은 문자 입력하여 등록
"coupon": { "title": "바나나우유 무료 쿠폰" }
"coupon": { "title": "20% 할인 쿠폰" }
"coupon": { "title": "50000원 할인 쿠폰" }| Name | Type | 필수 | 설명 |
|---|---|---|---|
| tile | String | ● | 쿠폰 제목 |
| description | String | ● | 쿠폰 설명 |
| linkMobile | String | - | mobile 환경에서 쿠폰 클릭 시 이동할 url |
| linkPc | String | - | pc 환경에서 쿠폰 클릭 시 이동할 url |
| linkAndroid | String | - | mobile android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| linkIos | String | - | mobile ios 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Object | 결과 데이터 정보 |
| data.tmpltCode | String | 템플릿코드 |
| data.name | String | 템플릿명 |
| data.kkoChId | String | 카카오채널 검색용ID |
| data.senderKeyType | String | 발신프로필타입(S:카카오채널, G:그룹) |
| data.chatBubbleType | String | 메시지 타입 |
| data.adult | boolean | 성인용 템플릿 여부 |
| data.header | String | 템플릿 헤더 (WIDE_ITEM_LIST, PREMIUM_VIDEO 사용가능) |
| data.content | String | 템플릿 내용 (TEXT형 1300자, IMAGE형 400자, WIDE, PREMIUM_VIDEO 최대 76자) |
| data.videoUrl | String | 카카오TV 동영상 url |
| data.thumbnailUrl | String | 이미지업로드 API로 등록한 아이템 이미지 url |
| data.buttons[].name | String | 버튼이름 |
| data.buttons[].linkType | String | 버튼타입(WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달, AC: 채널추가, BF: 비즈니스폼) |
| data.buttons[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.buttons[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| data.buttons[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.buttons[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.buttons[].bizFormId | Number | 비즈니스폼 ID |
| data.coupon.tile | String | 쿠폰 제목 |
| data.coupon.description | String | 쿠폰 설명 |
| data.coupon.linkMobile | String | mobile 환경에서 쿠폰 클릭 시 이동할 url |
| data.coupon.linkPc | String | pc 환경에서 쿠폰 클릭 시 이동할 url |
| data.coupon.linkAndroid | String | mobile android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| data.coupon.linkIos | String | mobile ios 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| data.carousel.head.header | String | 캐러셀 인트로 헤더 |
| data.carousel.head.content | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.carousel.head.imageUrl | String | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| data.carousel.head.linkMobile | String | - |
| data.carousel.head.linkPc | String | - |
| data.carousel.head.linkAndroid | String | - |
| data.carousel.head.linkIos | String | - |
| data.carousel.list .header | String | CAROUSEL_FEED인 경우 사용, 캐러셀 인트로 헤더 |
| data.carousel.list.content | String | CAROUSEL_FEED인 경우 사용, 캐러셀 리스트 내용 |
| data.carousel.list.additionalContent | String | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 리스트 부가정보 |
| data.carousel.list.imageUrl | String | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| data.carousel.list.imageLink | String | 이미지 클릭 시 이동할 url |
| data.carousel.list.commerce | Commerce | CAROUSEL_COMMERCE인 경우 사용, 커머스요소 |
| data.carousel.list.buttons | Button[] | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| data.carousel.list.coupon | Coupon | 쿠폰 요소 |
| data.carousel.tail.linkMobile | String | - |
| data.carousel.tail.linkPc | String | - |
| data.carousel.tail.linkAndroid | String | - |
| data.carousel.tail.linkIos | String | - |
| data.wideItemList[].title | String | 와이드아이템리스트 제목 |
| data.wideItemList[].imageUrl | String | 와이드아이템리스트 이미지url |
| data.wideItemList[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.wideItemList[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| data.wideItemList[].linkAnd | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.wideItemList[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”템플릿 등록과 유형별로 동일하며, tmpltCode가 추가되야 합니다. 템플릿 등록의 요청 예시를 참고해주세요.
Curl
섹션 제목: “Curl”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/update" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "tmpltCode": "TP....Gg", "name": "TEXT형", "chatBubbleType": "TEXT", "adult": false, "content": "#{name}님 안녕하세요. 브랜드 메시지 테스트입니다.", "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{상품명} 무료 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } }'JSON Response
섹션 제목: “JSON Response”{ "code": "10000", "message": "성공", "data": { "kkoChId": "@msghub", "senderKeyType": "S", "tmpltCode": "TP....Gg", "name": "캐러셀커머스형", "chatBubbleType": "CAROUSEL_COMMERCE", "adult": false, "carousel": { "head": { "header": "#{헤드헤더}", "content": "#{헤드내용}", "imageUrl": "https://mud-kage.kakao.com/dn/I...7/b....NY/uEn....4SK/img_l.jpg", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkIos": "https://www.naver.com/#{linkIos}", "linkAndroid": "https://www.naver.com/#{linkAndroid}" }, "list": [ { "additionalContent": "#{리스트부가정보}", "imageUrl": "https://mud-kage.kakao.com/dn/b...y0/b.....R5/7.....ke0/img_l.jpg", "commerce": { "title": "#{커머스제목}", "regularPriceName": "#{정상가격}", "discountPriceName": "#{할인가격}", "discountRateName": "#{할인율}", "discountFixedName": "#{정액할인가격}" }, "buttons": [ { "name": "버튼01", "linkType": "WL", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}" } ], "coupon": { "title": "#{상품명} UP 쿠폰", "description": "#{쿠폰내용}", "linkMobile": "https://www.naver.com/#{linkMobile}", "linkPc": "https://www.naver.com/#{linkPc}", "linkAndroid": "https://www.naver.com/#{linkAndroid}", "linkIos": "https://www.naver.com/#{linkIos}" } } ], "tail": { "linkMobile": "https://www.naver.com", "linkPc": "https://www.naver.com" } } }}03. 브랜드메시지 템플릿 채널별 전체 조회
섹션 제목: “03. 브랜드메시지 템플릿 채널별 전체 조회”브랜드메시지 채널에 등록된 템플릿을 전체 조회한다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”GET /kko/v2/channel/brand/template/list HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Query Parameter
섹션 제목: “Query Parameter”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| kkoChId | String | ● | 카카오 채널ID |
| page | Number | - | 페이지 번호 |
| size | Number | - | 페이지당 노출 개수 |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Object | 결과 데이터 정보 |
| data.list.tmpltCode | String | 템플릿코드 |
| data.list.name | String | 템플릿명 |
| data.list.status | String | 템플릿 상태 |
| data.list.regDt | String | 등록일자 |
| data.list.updDt | String | 수정일자 |
| data.totalElements | Number | 전체 데이터 개수 |
| data.totalPages | Number | 전체 페이지 수 |
| data.currentPage | Number | 현재 페이지 번호 |
| data.size | Number | 페이지당 노출 개수 |
| data.hasNext | boolean | 다음 페이지 존재 여부 |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl
섹션 제목: “Curl”curl -X GET "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/list?kkoChId=%40test&page=0&size=20 " \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \JSON Response
섹션 제목: “JSON Response”{ "code": "10000", "message": "성공", "data": { "list": [ { "tmpltCode": "TP....Gg", "name": "캐러셀커머스형", "status": "A", "regDt": "2025-10-22 09:56:18", "updDt": "2025-10-22 09:56:18" }, { "tmpltCode": "TP....Pk", "name": "와이드아이템리스트형", "status": "A", "regDt": "2025-10-22 09:48:26", "updDt": "2025-10-22 09:48:26" } ], "totalElements": 2, "totalPages": 0, "currentPage": 0, "size": 2, "hasNext": true }}04. 브랜드메시지 템플릿 상세 조회
섹션 제목: “04. 브랜드메시지 템플릿 상세 조회”브랜드메시지 템플릿 상세조회한다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /kko/v2/channel/brand/template/get HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| kkoChId | String | ● | 카카오 채널ID |
| kkoGrpId | String | - | 카카오 그룹ID |
| tmpltCode | String | ● | 템플릿 코드 (공백x) |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Object | 결과 데이터 정보 |
| data.kkoChId | String | 카카오채널 검색용ID |
| data.senderKeyType | String | 발신프로필타입(S:카카오채널, G:그룹) |
| data.name | String | 템플릿명 |
| data.chatBubbleType | String | 메시지 타입 |
| data.adult | boolean | 성인용 템플릿 여부 |
| data.header | String | 템플릿 헤더 (WIDE_ITEM_LIST, PREMIUM_VIDEO 사용가능) |
| data.content | String | 템플릿 내용 (TEXT형 1300자, IMAGE형 400자, WIDE, PREMIUM_VIDEO 최대 76자) |
| data.videoUrl | String | 카카오TV 동영상 url |
| data.thumbnailUrl | String | 이미지업로드 API로 등록한 아이템 이미지 url |
| data.buttons[].name | String | 버튼이름 |
| data.buttons[].linkType | String | 버튼타입(WL: 웹링크, AL: 앱링크, BK: 봇키워드, MD: 메시지전달, AC: 채널추가, BF: 비즈니스폼) |
| data.buttons[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.buttons[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| data.buttons[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.buttons[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.buttons[].bizFormId | Number | 비즈니스폼 ID |
| data.coupon.tile | String | 쿠폰 제목 |
| data.coupon.description | String | 쿠폰 설명 |
| data.coupon.linkMobile | String | mobile 환경에서 쿠폰 클릭 시 이동할 url |
| data.coupon.linkPc | String | pc 환경에서 쿠폰 클릭 시 이동할 url |
| data.coupon.linkAndroid | String | mobile android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| data.coupon.linkIos | String | mobile ios 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| data.carousel.head.header | String | 캐러셀 인트로 헤더 |
| data.carousel.head.content | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.carousel.head.imageUrl | String | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| data.carousel.head.linkMobile | String | - |
| data.carousel.head.linkPc | String | - |
| data.carousel.head.linkAndroid | String | - |
| data.carousel.head.linkIos | String | - |
| data.carousel.list .header | String | CAROUSEL_FEED인 경우 사용, 캐러셀 인트로 헤더 |
| data.carousel.list.content | String | CAROUSEL_FEED인 경우 사용, 캐러셀 리스트 내용 |
| data.carousel.list.additionalContent | String | CAROUSEL_COMMERCE인 경우 사용, 캐러셀 리스트 부가정보 |
| data.carousel.list.imageUrl | String | 파일업로드 API로 등록한 캐러셀 인트로 이미지 url |
| data.carousel.list.imageLink | String | 이미지 클릭 시 이동할 url |
| data.carousel.list.commerce | Commerce | CAROUSEL_COMMERCE인 경우 사용, 커머스요소 |
| data.carousel.list.buttons | Button[] | 버튼 목록 (캐러셀 당 최소 1개, 최대 2개) |
| data.carousel.list.coupon | Coupon | 쿠폰 요소 |
| data.carousel.tail.linkMobile | String | - |
| data.carousel.tail.linkPc | String | - |
| data.carousel.tail.linkAndroid | String | - |
| data.carousel.tail.linkIos | String | - |
| data.wideItemList[].title | String | 와이드아이템리스트 제목 |
| data.wideItemList[].imageUrl | String | 와이드아이템리스트 이미지url |
| data.wideItemList[].linkMobile | String | mobile 환경에서 버튼 클릭 시 이동할 url |
| data.wideItemList[].linkPc | String | pc 환경에서 버튼 클릭 시 이동할 url |
| data.wideItemList[].linkAndroid | String | mobile android 환경에서 버튼 클릭 시 실행할 application custom scheme |
| data.wideItemList[].linkIos | String | mobile ios 환경에서 버튼 클릭 시 실행할 application custom scheme |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl
섹션 제목: “Curl”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/get" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "tmpltCode": "TP....Sq" }'JSON Response
섹션 제목: “JSON Response”{ "code": "10000", "message": "성공", "data": { "kkoChId": "@메시지허브", "senderKeyType": "S", "name": "WIDEITEMLIST형", "chatBubbleType": "WIDE_ITEM_LIST", "adult": false, "header": "템플릿 아이템 리스트 헤더", "buttons": [ { "name": "버튼", "linkType": "AL", "linkAndroid": "https://www.naver.com", "linkIos": "https://www.naver.com" } ], "wideItemList": [ { "title": "메인아이템 타이틀", "imageUrl": "https://mud-kage.kakao.com/dn/Gk..t7/bt...I4/4Vmg...k/img_l.jpg", "linkMobile": "https://www.naver.com" }, { "title": "서브아이템 타이틀1", "imageUrl": "https://mud-kage.kakao.com/dn/bx....0/b...R5/7V1n.....e0/img_l.jpg", "linkMobile": "https://www.naver.com" }, { "title": "서브아이템 타이틀2", "imageUrl": "https://mud-kage.kakao.com/dn/...7/bts....NY/uE.....SK/img_l.jpg", "linkMobile": "https://www.naver.com" } ] }}05. 브랜드메시지 템플릿 삭제
섹션 제목: “05. 브랜드메시지 템플릿 삭제”브랜드메시지 템플릿을 삭제한다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /kko/v2/channel/brand/template/delete HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| kkoChId | String | ● | 카카오 채널ID |
| kkoGrpId | String | - | 카카오 그룹ID |
| senderKeyType | String | - | 채널ID 유형, S: 일반ID, G: 그룹ID, Default: S |
| tmpltCode | String | ● | 템플릿 코드 (공백x) |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Object | 결과 데이터 정보 |
| data.kkoChId | String | 카카오채널 검색용ID |
| data.kkoGrpId | String | 카카오 그룹 ID |
| data.senderKeyType | String | 발신프로필타입(S:카카오채널, G:그룹) |
| data.tmpltCode | String | 템플릿코드 |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl
섹션 제목: “Curl”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/template/delete" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "senderKeyType": "S", "tmpltCode": "TP....Sq" }'JSON Response
섹션 제목: “JSON Response”{ "code": "10000", "message": "성공", "data": { "kkoChId": "@메시지허브", "kkoGrpId": null, "senderKeyType": "S", "tmpltCode": "TP.....H" }}06. 브랜드메시지 카카오채널 무료수신거부정보 수정
섹션 제목: “06. 브랜드메시지 카카오채널 무료수신거부정보 수정”브랜드메시지 발송시 사용되는 080무료수신거부 정보를 수정합니다.
📌 주의사항
섹션 제목: “📌 주의사항”- cm080AuthNum 는 080 수신거부번호의 내선번호 개념으로 옵션값입니다. cm080Num 없이 입력할 수 없습니다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /kko/v2/channel/brand/unsubscribeContent/update HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| kkoChId | String | ● | 카카오 채널ID |
| cm080Num | String | ● | 무료수신거부전화번호 (080-1234-5678 포맷) |
| cm080AuthNum | String | - | 무료수신거부전화번호 인증번호 (무료수신거부전화번호의 내선번호 개념) |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl
섹션 제목: “Curl”curl -X POST "https://mnt-api.msghub.uplus.co.kr/kko/v2/channel/brand/unsubscribeContent/update" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "kkoChId": "@메시지허브", "cm080Num": "080-1231-4561", "cm080AuthNum": "123456" }'JSON Response
섹션 제목: “JSON Response”{ "code": "10000", "message": "성공"}Appendix
섹션 제목: “Appendix”데이터 모델
섹션 제목: “데이터 모델”버튼 타입
섹션 제목: “버튼 타입”| 링크타입 | 설명 |
|---|---|
| WL | 웹링크 |
| AL | 앱링크 |
| BK | 봇키워드 |
| MD | 메시지전달 |
| AC | 채널추가 |
| BF | 비즈니스폼 |