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

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

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

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

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

  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],
})
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[]수신자 정보 (전화번호 또는 전화번호와 변수값)

선택 파라미터

파라미터타입설명
reservation.dateTimestring예약 발송 시간 (ISO 8601 날짜 형식)
fallbackobject대체발송 설정
fallback.fallbackTypestring대체발송 유형 ('CUSTOM')
fallback.custom.typestring대체발송 메시지 종류 ('SMS', 'LMS', 'MMS')
fallback.custom.senderNumberstring대체발송 발신번호
fallback.custom.messagestring대체발송 메시지 내용
fallback.custom.titlestring대체발송 메시지 제목 (LMS, MMS의 경우)
fallback.custom.isAdboolean광고성 메시지 여부 (true/false)

응답 형식

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

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

groupId는 발송 요청의 고유 식별자로, 발송 결과 조회 시 활용할 수 있습니다.

주의사항

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

관련 링크