카카오 메시지(알림톡) 발송하기

알림톡은 카카오톡 채널을 통해 고객에게 정보성 메시지를 발송할 수 있는 비즈니스 메시징 서비스입니다.

사전에 승인된 알림톡 템플릿을 기반으로 발송되며, 문자 메시지보다 풍부한 콘텐츠와 높은 도달률을 제공합니다.

알림톡 발송 전 필수 준비사항

알림톡을 발송하기 위해서는 다음 사항이 필요합니다:

  1. 카카오 비즈니스 채널 생성 및 연동
  2. 알림톡 템플릿 등록 및 승인 완료
  3. 채널 ID 확인
  4. 알림톡 템플릿 ID 확인

알림톡 기본형 발송하기

가장 기본적인 알림톡 발송 방법입니다. 변수가 없는 알림톡 템플릿을 사용하여 단순 메시지를 발송합니다.

const sendon = new Sendon({
  id: SENDON_EXAM_ACCOUNT,
  apikey: SENDON_EXAM_API_KEY,
  debug: false,
})

const result = await sendon.kakao.sendAlimTalk({
  sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
  templateId: SENDON_EXAM_KAKAO_TEMPLATE_ID,
  to: [SENDON_EXAM_KAKAO_TO_PHONE],
})

console.log('알림톡 발송 결과:', JSON.stringify(result, null, 2))
Sendon sendon = Sendon.getInstance(SENDON_EXAM_ACCOUNT, SENDON_EXAM_API_KEY);

SendAlimtalk sendAlimtalkResult = sendon.kakao.sendAlimtalk(new AlimtalkBuilder()
								                 			.setProfileId(SENDON_EXAM_KAKAO_PROFILE_ID)
                											.setTemplateId(SENDON_EXAM_KAKAO_TEMPLATE_ID)
                                      .setTo(Arrays.asList(SENDON_EXAM_KAKAO_TO_PHONE)));

여러 수신자에게 동일한 알림톡 발송하기

한 번의 API 호출로 여러 수신자에게 동일한 내용의 알림톡을 발송할 수 있습니다.

const result = await sendon.kakao.sendAlimTalk({
  sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
  templateId: SENDON_EXAM_KAKAO_TEMPLATE_ID,
  to: [
    SENDON_EXAM_KAKAO_TO_PHONE,
    SENDON_EXAM_KAKAO_TO_PHONE2,
    SENDON_EXAM_KAKAO_TO_PHONE3,
  ],
})
SendAlimtalk sendAlimtalkResult = sendon.kakao.sendAlimtalk(new AlimtalkBuilder()
								                 			.setProfileId(SENDON_EXAM_KAKAO_PROFILE_ID)
                											.setTemplateId(SENDON_EXAM_KAKAO_TEMPLATE_ID)
                                      .setTo(Arrays.asList(
                                        SENDON_EXAM_KAKAO_TO_PHONE,
                                        SENDON_EXAM_KAKAO_TO_PHONE2,
                                        SENDON_EXAM_KAKAO_TO_PHONE3
                                      )));

변수가 포함된 알림톡 발송하기

알림톡 템플릿에 변수가 포함된 경우, 각 수신자별로 다른 변수값을 적용하여 개인화된 메시지를 발송할 수 있습니다.

const result = await sendon.kakao.sendAlimTalk({
  sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
  templateId: SENDON_EXAM_KAKAO_TEMPLATE_ID,
  to: [
    {
      phone: SENDON_EXAM_KAKAO_TO_PHONE,
      variables: {
        '#{승인금액}': '1,000',
        '#{사용처}': '카카오페이',
        '#{누적결제액}': '3,000',
      },
    },
  ],
})
JsonObject to = new JsonObject();
to.addProperty("phone", "01053601894");

JsonObject variables = new JsonObject();
variables.addProperty("#{승인금액}", "1,000");
variables.addProperty("#{사용처}", "카카오페이");
variables.addProperty("#{누적결제액}", "3,000");
to.add("variables", variables);

SendAlimtalk sendAlimtalkResult = sendon.kakao.sendAlimtalk(new AlimtalkBuilder()
								                 			.setProfileId(SENDON_EXAM_KAKAO_PROFILE_ID)
                											.setTemplateId(SENDON_EXAM_KAKAO_TEMPLATE_ID)
                                      .setTo(Arrays.asList(to)));

주의: 변수는 반드시 #{변수명} 형식으로 작성해야 하며, 알림톡 템플릿에 정의된 모든 변수에 대한 값을 제공해야 합니다.


파라미터 상세 설명

필수 파라미터

파라미터타입설명
sendProfileIdstring카카오 비즈니스 채널의 채널 ID
templateIdstring사전 승인된 알림톡 템플릿 ID
tostring[] 또는 object[]수신자 정보 (전화번호 또는 전화번호와 변수값)

선택 파라미터

파라미터타입설명
reservationobject예약 발송 설정 ({ dateTime: ISO8601 })
fallbackobject대체발송 설정 (아래 표 참고)
useCreditboolean크레딧 우선 사용 여부

fallback 구조

필드타입설명
fallbackTypestringNONE, TEMPLATE, CUSTOM 중 선택
custom.typestring대체문자 유형 (SMS, LMS, MMS)
custom.senderNumberstring사전 등록된 발신번호
custom.messagestring대체문자 본문 (SMS 80바이트, LMS/MMS 2000바이트)
custom.isAdboolean광고성 여부
custom.titlestringLMS/MMS 제목 (선택)
custom.imagesstring[]MMS 이미지 ID 배열 (필수)

응답 형식

성공적으로 요청이 처리되면 다음과 같은 응답을 받습니다:

{
  "code": 200,
  "message": "성공",
  "data": {
    "groupId": "84db8cbb-db70-4e68-8ee7-c37704787e0d"
  }
}

groupId는 발송 요청의 ID로, 발송 결과 조회 시 활용할 수 있습니다.

주의사항

  1. 알림톡은 정보성 메시지에만 사용해야 합니다
  2. 모든 알림톡은 사전 승인된 알림톡 템플릿을 기반으로 발송됩니다
  3. 알림톡 템플릿 내용을 임의로 변경하거나 광고성 내용을 포함할 경우 발송이 차단될 수 있습니다
  4. 변수값은 알림톡 템플릿 검수 기준에 부합하는 내용이어야 합니다
  5. 전화번호는 하이픈(-) 없이 제공해야 합니다 (예: 01012345678)

관련 링크