알림톡 템플릿 변수 사용법: 검수 반려와 발송 실패 막는 4가지 기준

Oct 23, 2026
알림톡 템플릿 변수 사용법: 검수 반려와 발송 실패 막는 4가지 기준

알림톡 템플릿 변수는 고객 이름을 바꿔 넣는 기능으로 끝나지 않습니다.
검수를 통과한 문장 가운데 어디까지 바꿔도 되는지를 미리 정해 두는 계약에 가깝습니다.

그래서 알림톡 템플릿 변수를 쓸 때는 "무엇을 변수로 열고, 무엇을 고정 문구로 묶을지"부터 정해야 합니다.
이 경계가 흐리면 검수에서 반려되고, 경계를 잘못 그으면 검수는 통과했는데 발송 단계에서 실패가 납니다.

아래에서 변수 문법, 검수 반려 패턴, 발송 실패를 만드는 치환 실수, 실무 설계 순서를 기준별로 설명합니다.

1. 알림톡 템플릿 변수 기본 구조: #{변수}가 작동하는 방식

고정 문구와 변수는 역할이 다릅니다

알림톡은 사전에 검수받은 템플릿 그대로만 발송할 수 있는 메시지입니다.

발송할 때 바꿀 수 있는 곳은 #{변수명} 형태로 표시해 둔 자리뿐입니다.

예를 들어 배송 안내 템플릿을 이렇게 등록했다고 해보겠습니다.

∎ 등록한 템플릿

{고객명}님, 주문하신 상품이 출고되었습니다.

  • 주문번호: #{주문번호}

  • 택배사: #{택배사}

  • 송장번호: #{송장번호}

∎ 실제 발송되는 메시지

김OO님, 주문하신 상품이 출고되었습니다.
- 주문번호: 20261023-0001
- 택배사: OO택배
- 송장번호: 1234567890

여기서 "님, 주문하신 상품이 출고되었습니다."와 "- 주문번호:" 같은 부분이 고정 문구입니다.

고정 문구는 발송할 때 한 글자도 바꿀 수 없습니다.

띄어쓰기 하나, 줄바꿈 하나가 달라도 시스템은 다른 메시지로 판단합니다.

-> 변수는 "바꿔도 되는 칸"이고, 나머지는 전부 "건드리면 안 되는 칸"입니다.

변수를 넣을 수 있는 위치와 넣기 어려운 위치

변수는 아무 곳에나 넣을 수 있는 게 아닙니다.

템플릿 구성 요소별로 실무에서 정리하는 기준은 아래와 같습니다.

구성 요소

변수 사용

실무 기준

본문

가능

가장 일반적인 사용 위치. 고정 문구와 비중 균형 필요

강조 표기 제목

가능

금액·날짜처럼 짧은 값 위주로 사용

웹링크 버튼 URL

일부 가능

도메인은 고정, 경로나 파라미터만 변수로 여는 방식이 안전

버튼명

고정 권장

버튼명은 고정 문구로 검수받는 게 일반적

채널 정보·발신 프로필

불가

템플릿 영역 밖이라 변경할 수 없음

버튼 URL은 특히 주의해야 합니다.

https://#{도메인}/order 처럼 도메인 자체를 변수로 열면 어떤 사이트로든 보낼 수 있는 구조가 됩니다.

검수 쪽에서는 이 구조를 피싱이나 광고 유도 여지로 봅니다.

https://shop.example.com/order/#{주문번호} 처럼 도메인을 고정하고 뒷부분만 여는 편이 통과율이 높습니다.

변수명은 "들어갈 값"이 보이게 짓습니다

#{내용}, #{문구}, #{안내} 같은 변수명은 검수 단계에서 자주 문제가 됩니다.

검수자는 이 자리에 무엇이 들어갈지 알 수 없기 때문입니다.

정보성 메시지인지 광고성 문구가 끼어들 수 있는 자리인지 판단할 근거가 없습니다.

#{주문번호}, #{예약일시}, #{결제금액} 처럼 이름만 봐도 값의 종류가 보이게 짓는 게 기본입니다.

이 이름은 개발 쪽에서 발송 API를 만들 때도 그대로 매핑 키가 됩니다.

처음부터 사람이 읽을 수 있는 이름으로 지어야 나중에 템플릿이 늘어나도 관리가 됩니다.

2. 알림톡 템플릿 검수에서 반려되는 변수 사용 패턴 4가지

알림톡 템플릿 검수 반려 사유를 모아 보면 문장 자체보다 변수 설계 때문에 걸리는 경우가 적지 않습니다.

반복해서 나오는 패턴은 크게 네 가지입니다.

패턴 1. 본문 대부분을 변수로 채운다

템플릿 하나로 여러 안내를 돌려 쓰고 싶어서 이렇게 만드는 경우가 있습니다.

∎ 반려되기 쉬운 구조

안녕하세요, #{고객명}님.

{안내문구}

감사합니다.

이 구조는 사실상 아무 메시지나 보낼 수 있는 템플릿입니다.

알림톡은 "어떤 정보를 보내는지"를 템플릿 단계에서 확정하는 채널이라, 내용 전체를 변수로 비우면 검수 취지와 정면으로 부딪힙니다.

판단 기준은 간단합니다.

변수에 실제 값을 넣지 않은 상태로 읽어도 이 메시지가 무슨 안내인지 알 수 있어야 합니다.

"주문 출고 안내", "예약 확정 안내", "결제 완료 안내"처럼 메시지의 목적이 고정 문구로 드러나야 합니다.

패턴 2. 변수 자리에 광고성 문구가 들어갈 여지가 있다

#{혜택안내}, #{이벤트내용}, #{추천상품} 같은 변수는 이름부터 광고 문구가 들어갈 자리로 보입니다.

알림톡은 정보성 메시지 전용입니다.

할인 쿠폰 홍보나 신상품 소개처럼 광고성 정보가 섞이면 템플릿 반려는 물론, 발송 후 신고가 쌓일 경우 채널 운영에도 영향을 줄 수 있습니다.

예외도 있습니다.

고객이 직접 신청한 쿠폰의 발급 내역이나 적립금 소멸 예정 안내처럼, 고객 거래에 따라 생긴 정보는 정보성으로 인정되는 범위가 있습니다.

이때도 변수는 #{쿠폰명}, #{소멸예정금액}, #{소멸일} 처럼 값의 성격이 좁게 드러나야 합니다.

패턴 3. 예시 값이 비어 있거나 실제와 다르다

검수를 요청할 때 변수에 들어갈 예시 값을 함께 적는 경우가 많습니다.

이 칸을 비워 두거나 "변수", "테스트"처럼 의미 없는 값을 넣으면 보완 요청이 돌아옵니다.

검수자는 예시 값으로 실제 발송 메시지를 상상합니다.

#{결제금액} 에는 "39,000원", #{예약일시} 에는 "2026-10-30 14:00"처럼 실제와 같은 형식으로 넣는 게 좋습니다.

예시 값을 성실하게 채우면 보완 요청 왕복이 줄어들고, 그만큼 검수에 걸리는 날짜도 줄어듭니다.

패턴 4. 버튼 URL의 도메인까지 변수로 연다

앞에서 설명한 것처럼 도메인 변수는 반려 사유가 되기 쉽습니다.

여러 쇼핑몰이나 여러 브랜드 사이트를 한 템플릿으로 처리하려고 할 때 자주 나오는 실수입니다.

이 경우엔 템플릿을 도메인별로 나눠 등록하는 편이 결과적으로 빠릅니다.

💡

검수 전 셀프 점검 4가지

  • 변수를 모두 지워도 메시지 목적이 읽히는가?

  • 변수 이름만 보고 들어갈 값의 종류를 알 수 있는가?

  • 광고 문구가 들어갈 수 있는 이름의 변수가 있는가?

  • 버튼 URL의 도메인이 고정되어 있는가?

3. 알림톡 발송 실패를 만드는 변수 치환 실수

검수를 통과했다고 끝이 아닙니다.

실무에서 더 자주 문제가 되는 건 운영 단계의 치환 실수입니다.

알림톡은 발송 요청 메시지가 등록된 템플릿과 일치하지 않으면 발송 자체가 실패합니다.

그리고 대체발송(SMS·LMS)을 켜 둔 경우, 실패한 건은 문자로 넘어가면서 건당 비용이 올라갑니다.

실패가 눈에 띄지 않고 비용으로 조용히 새는 구조라는 점이 문제입니다.

카카오 알림톡 비용 계산법: 단가보다 큰 3가지 변수

실수 1. 고정 문구를 코드에서 "살짝" 고친다

가장 흔한 원인입니다.

마케팅 담당자가 관리자 화면에서 템플릿 문구를 수정해 재검수를 받았는데, 개발 쪽 발송 코드에는 예전 문구가 그대로 남아 있는 경우입니다.

반대로 개발자가 코드에서 오타를 고쳤는데 템플릿은 그대로인 경우도 있습니다.

둘 다 결과는 같습니다. 템플릿 불일치로 발송이 실패합니다.

한 쇼핑몰의 경우 배송 안내 템플릿의 "출고되었습니다"를 "발송되었습니다"로 바꿔 재검수를 받았습니다.

그런데 발송 시스템에는 기존 문구가 남아 있었고, 며칠 동안 배송 알림톡이 전량 대체 문자로 나갔습니다.

고객은 문자를 받았으니 누구도 실패를 알아채지 못했고, 월말 정산에서 메시지 비용이 평소보다 크게 늘어난 뒤에야 원인이 드러났습니다.

-> 템플릿 수정은 "재검수 승인"과 "발송 코드 반영"을 한 세트로 묶어 처리해야 합니다.

실수 2. 빈 값을 그대로 보낸다

변수에 값이 없을 때의 처리를 정하지 않으면 두 가지 문제가 생깁니다.

솔루션에 따라 빈 값 자체가 발송 오류로 처리되거나, 오류 없이 나가더라도 "옵션: " 뒤가 비어 있는 어색한 메시지가 됩니다.

옵션이 없는 상품, 비회원 주문의 고객명, 아직 송장이 나오지 않은 주문처럼 빈 값이 나올 수 있는 상황을 미리 목록으로 뽑아 두는 게 기본입니다.

처리 방식은 세 가지 중에서 고릅니다.

상황

처리 방식

예시

대체할 값이 있다

기본값 넣기

고객명 없음 → "고객"

항목 자체가 의미 없다

해당 줄이 없는 별도 템플릿 사용

옵션 없는 상품용 템플릿 분리

값이 생길 때까지 기다릴 수 있다

발송 보류

송장번호 생성 후 발송

기본값은 편하지만 남용하면 안 됩니다.

#{송장번호} 자리에 "확인 중"을 넣어 보내면 고객 문의가 오히려 늘어납니다.

실수 3. 값의 형식이 예시와 다르다

숫자와 날짜는 형식이 쉽게 흔들립니다.

#{결제금액} 에 어떤 건은 "39000", 어떤 건은 "39,000원"이 들어가면 메시지 품질이 들쭉날쭉해집니다.

특히 고정 문구에 "원"을 넣어 두고 변수 값에도 "원"이 붙으면 "39,000원원"이 됩니다.

실무에서는 단위를 고정 문구에 둘지 변수 값에 둘지 템플릿마다 하나로 정해서 문서화합니다.

날짜도 "2026-10-30", "10월 30일", "10/30" 중 하나로 통일합니다.

실수 4. 줄바꿈·특수문자·길이를 확인하지 않는다

주소나 상품명처럼 외부 입력값이 변수로 들어가면 예상치 못한 문자가 섞입니다.

줄바꿈 문자, 이모지, 따옴표 같은 특수문자는 발송 솔루션마다 처리 방식이 달라서 사전 테스트가 필요합니다.

길이도 확인해야 합니다.

알림톡 본문은 변수가 치환된 이후 기준으로 최대 1,000자 제한이 있습니다.

일반 안내 메시지는 이 한도에 닿을 일이 드물지만, 여러 상품을 한 변수에 이어 붙이는 주문 내역형 템플릿에서는 초과가 실제로 발생합니다.

상품 목록을 변수 하나에 몰아넣기보다 "대표 상품명 외 N건" 형태로 줄이는 편이 안전합니다.

카카오 알림톡 발송, 실패 없이 도달률 지키는 실무 기준

4. 알림톡 템플릿 변수 설계 실무 순서

변수 설계는 템플릿 문구를 쓰고 나서 하는 일이 아닙니다.

문구를 쓰기 전에 데이터부터 확인하는 순서가 시행착오를 가장 줄입니다.

1단계: 보낼 메시지의 목적을 한 문장으로 고정

"주문 상품이 출고되었음을 알리고 배송 조회로 연결한다."

이 한 문장이 고정 문구의 뼈대가 됩니다.

목적이 두 개 이상 섞이면 템플릿을 나눕니다.

출고 안내와 리뷰 요청을 한 메시지에 담으면 리뷰 요청 부분이 광고성으로 읽힐 수 있기 때문입니다.

2단계: 실제로 넘어오는 데이터 필드를 확인

쇼핑몰 솔루션, 예약 시스템, CRM 툴에서 실제로 어떤 필드를 넘겨줄 수 있는지 먼저 확인합니다.

템플릿에 #{도착예정일} 을 넣어 검수받았는데 시스템에 그 값이 없으면 템플릿 자체를 다시 만들어야 합니다.

이 단계에서 필드별로 빈 값이 나올 수 있는지, 형식이 어떤지를 같이 적어 둡니다.

3단계: 변수 목록표를 만들고 검수 요청

템플릿 문구와 함께 아래와 같은 변수 목록표를 만들어 두면 검수 요청, 개발 연동, 이후 유지보수가 한 문서로 정리됩니다.

변수명

데이터 출처

형식

빈 값 처리

예시 값

#{고객명}

주문자명

텍스트

"고객"으로 대체

김OO

#{주문번호}

주문 ID

숫자·하이픈

발송 보류

20261023-0001

#{결제금액}

최종 결제액

콤마 포함, 단위는 고정 문구

발송 보류

39,000

#{송장번호}

배송 정보

숫자

생성 후 발송

1234567890

4단계: 극단값으로 테스트 발송

검수 승인 후 바로 전체 발송으로 넘어가지 않습니다.

평균적인 값이 아니라 가장 긴 상품명, 빈 옵션, 특수문자가 들어간 주소 같은 극단값으로 테스트를 보냅니다.

정상 값으로는 문제가 드러나지 않기 때문입니다.

테스트에서는 알림톡 수신 여부만 보지 말고, 대체발송으로 넘어간 건이 있는지 발송 결과 코드까지 확인합니다.

5단계: 운영 중에는 대체발송 비율을 지표로 봅니다

알림톡 템플릿 변수 문제는 대부분 대체발송 비율 상승으로 먼저 나타납니다.

평소 비율을 기준선으로 잡아 두고, 특정 템플릿에서 비율이 튀면 템플릿 수정 이력과 데이터 변경 이력을 먼저 확인합니다.

수신자 쪽 문제(카카오톡 미사용, 채널 차단 등)로 생기는 대체발송은 비교적 일정하게 유지됩니다.

갑자기 튀는 건 대부분 시스템 쪽 원인입니다.

재구매 안내처럼 날짜 계산값이 변수로 들어가는 메시지라면 계산 로직이 바뀔 때도 같은 점검이 필요합니다.

건기식 카카오 알림톡 재구매 유도: 소진일 기준 발송 설계법

자주 묻는 질문

알림톡 템플릿에 변수는 몇 개까지 넣을 수 있나요?
개수 자체보다 고정 문구와의 비중이 더 중요하게 판단됩니다. 변수를 모두 지워도 메시지 목적이 읽히는 수준이면 변수가 여러 개여도 통과하는 경우가 많습니다. 반대로 변수가 두 개뿐이어도 본문 대부분을 차지하면 반려될 수 있습니다.

알림톡 템플릿 수정하면 다시 검수받아야 하나요?
고정 문구, 변수 위치, 버튼 구성이 바뀌면 재검수가 필요합니다. 재검수 승인 후에는 발송 코드나 솔루션 설정에 수정된 문구를 반드시 함께 반영해야 합니다. 둘 중 하나만 바뀌면 템플릿 불일치로 발송이 실패합니다.

알림톡 변수에 링크를 넣어도 되나요?
본문 변수에 URL 전체를 넣기보다 웹링크 버튼을 쓰고, 도메인은 고정한 채 경로나 파라미터만 변수로 여는 방식이 안전합니다. 도메인까지 변수로 열면 피싱이나 광고 유도 여지로 판단돼 반려되기 쉽습니다.

알림톡이 실패하고 문자로 나가는 이유는?
템플릿과 발송 문구 불일치, 빈 변수 값, 길이 초과 같은 시스템 쪽 원인과 수신자의 카카오톡 미사용·채널 차단 같은 수신자 쪽 원인이 있습니다. 특정 템플릿에서만 대체발송 비율이 갑자기 오르면 시스템 쪽 원인일 가능성이 높습니다.

마무리

알림톡 템플릿 변수는 바꿔 쓸 수 있는 칸을 늘리는 기능처럼 보입니다.

실제로는 바꿀 수 없는 칸을 정확히 정의하는 작업에 더 가깝습니다.

목적은 고정 문구로 드러내고,

변수는 값의 성격이 보이게 좁게 열고,

빈 값과 형식은 문구를 쓰기 전에 데이터 단계에서 정합니다.

이 세 가지를 지키면 검수 반려도, 운영 중 조용히 새는 대체발송 비용도 함께 줄어듭니다.

지금 운영 중인 알림톡에서 대체발송 비율이 평소보다 높다면,

템플릿 문구와 발송 코드가 같은 버전인지부터 확인해보는 게 좋습니다.


참고로, 기존 글 목록에 알림톡 글이 이미 3개 있습니다(발송 도달률, 비용 계산, 건기식 재구매). 이번 글은 '템플릿 변수 설계·검수·치환'이라는 더 좁은 주제라 검색 의도가 겹치지 않는다고 보고 작성했고, 세 글은 모두 내부 링크로 연결했습니다.

알림톡 사양 중 아래 내용은 업계에서 일반적으로 알려진 기준으로 썼고, 이번에 공식 가이드와 대조하지는 않았습니다. 발행 전에 현재 카카오 비즈메시지 가이드나 사용 중인 발송 대행사 문서로 확인해 주세요.
- 본문 1,000자 제한
- 버튼 URL 변수 허용 범위
- 버튼명 변수 가능 여부

Share article