카카오 알림톡

View as Markdown

카카오 알림톡은 검수된 템플릿으로 안내 메시지를 발송합니다. API에서 채널과 템플릿을 조회한 뒤 응답의 ClawOps 리소스 ID를 발송 요청에 사용합니다.

알림톡 보내기

1. 채널 조회

GET /v1/accounts/{accountId}/kakao/channels
cURL
$curl "https://api.claw-ops.com/v1/accounts/YOUR_ACCOUNT_ID/kakao/channels" \
> -H "Authorization: Bearer YOUR_API_KEY"

응답의 data[].id가 채널 리소스 ID입니다.

응답 (200)
1{
2 "data": [
3 {
4 "id": "clx9kak0001",
5 "searchId": "example",
6 "name": "러너스 고객센터",
7 "status": "connected"
8 }
9 ],
10 "meta": { "page": 1, "pageSize": 20, "total": 1 }
11}

2. 템플릿 조회

채널 리소스 ID를 channelId에 전달합니다.

GET /v1/accounts/{accountId}/kakao/templates
cURL
$curl "https://api.claw-ops.com/v1/accounts/YOUR_ACCOUNT_ID/kakao/templates?channelId=clx9kak0001" \
> -H "Authorization: Bearer YOUR_API_KEY"

템플릿 자체의 식별자는 id입니다. 응답의 channelId는 이 템플릿이 속한 채널 리소스 ID입니다. sendabletrue인 템플릿을 고르고 variables에 나온 변수를 모두 채우세요.

응답 (200)
1{
2 "data": [
3 {
4 "id": "clx9tpl0001",
5 "channelId": "clx9kak0001",
6 "name": "주문 접수 안내",
7 "status": "approved",
8 "variables": ["고객명"],
9 "sendable": true
10 }
11 ],
12 "meta": { "page": 1, "pageSize": 20, "total": 1 }
13}

3. 발송

채널 응답의 idKakao.ChannelId에, 템플릿 응답의 idKakao.TemplateId에 전달합니다.

POST /v1/accounts/{accountId}/messages
cURL
$curl -X POST "https://api.claw-ops.com/v1/accounts/YOUR_ACCOUNT_ID/messages" \
> -H "Authorization: Bearer YOUR_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "To": "01012345678",
> "From": "07012341234",
> "Kakao": {
> "ChannelId": "clx9kak0001",
> "TemplateId": "clx9tpl0001",
> "Variables": { "고객명": "홍길동" }
> },
> "Fallback": { "Body": "주문이 접수되었습니다." }
> }'

알림톡에는 Body를 넣지 않습니다. 본문과 버튼은 검수된 템플릿이 정하고 발송 시점에는 Variables만 채울 수 있습니다.

Fallback.Body를 지정하면 알림톡 전달에 실패했을 때 해당 내용으로 문자를 발송합니다. 대체 문자를 원하지 않으면 Fallback.Disabledtrue로 지정하세요.

응답의 queued는 발송 요청이 접수됐다는 뜻이며 전달 성공을 보장하지 않습니다. 최종 결과는 계정에 등록한 message.sent 또는 message.failed webhook으로 확인하세요.

문자 메시지 발송이 필요하다면 문자 메시지 가이드를 확인하세요.