웹훅으로 푸시 알림함 기능 구성하기
푸시 캠페인에 대한 푸시 알림함을 웹훅 캠페인을 활용해 쉽게 구현할 수 있습니다.
알림함이란?
알림함이란 앱이나 웹서비스에서 수신하는 다양한 알림(예: 공지, 이벤트, 할인정보 등)을 한 곳에 모아놓는 기능을 말합니다.
사용자가 푸시 알림을 보지 못했거나 다시 보고 싶을때 알림함에 들어가 다시 확인할 수 있습니다.
알림함의 구현을 위해 보통 개발자의 내부 시스템(알림 서버, 사용자 계정 시스템 등) 연동 작업이 필요합니다. 그러나 핵클의 푸시 캠페인과 웹훅 캠페인을 활용하여 그러한 작업을 신경 쓸 필요 없이 쉽게 구현이 가능합니다.
웹훅 캠페인을 활용하여 알림함을 구현하는 과정을 알아보도록 합니다.
들어가기 전에
웹훅 캠페인을 설정하기 이전에 발송된 푸시메시지는 알림함에 노출되지않습니다.
$push_send 이벤트 알아보기
이번 예제에서는 핵클에서 푸시 캠페인을 진행하면, 자동으로 수집되는 이벤트인 $push_send 를 활용합니다.
$push_send 이벤트는 푸시 메시지 발송이 요청될 때 발생합니다. 즉 푸시 메시지가 발송되는 이벤트를 트리거로 잡아 웹훅 캠페인을 발송하는 개념입니다.
$push_send
$push_send 이벤트가 수집하는 이벤트 속성은 다음과 같습니다.
Field | Type | Description |
---|---|---|
push_message_key | Long | 푸시 메시지 캠페인의 키 값이 들어있습니다. |
platform | String | 푸시 메시지 발송 대상의 플랫폼 타입 입니다. (ANDROID 또는 IOS) |
push_token | String | 푸시 메시지 발송 대상의 푸시 토큰 입니다 |
title | String | 고객에게 표시되는 푸시 메시지 타이틀입니다. |
body | String | 고객에게 표시되는 푸시 메시지 내용 부분입니다. |
actionType | String | APP_OPEN 또는 DEEP_LINK 값이 들어옵니다. |
actionValue | String | actionType 이 DEEP_LINK 인 경우 딥 링크 값이 들어갑니다. 아닌 경우 Empty String("") 입니다. |
debug | Boolean | 테스트 발송 여부입니다. (true 또는 false) |
result | String | 푸시 발송 요청 결과 코드입니다. |
푸시 발송 결과 코드$push_send 이벤트에 result 속성 값을 통해 발송 성공 여부를 확인할 수 있습니다. 발송 요청 결과 코드는 다음과 같습니다.
Name Description SUCCESS 전송 성공 시 DEDUP 특정 캠페인의 중복 발송 제한에 걸린 경우 GLOBAL_FREQUENCY_CAPPED 전체 캠페인 발송 빈도 제한 설정으로 제한된 경우 NOT_FOUND_PUSH_PROVIDER_CREDENTIALS 푸시 제공자 인증 정보가 없는 경우 INVALID_PUSH_PROVIDER_CREDENTIALS 푸시 제공자 인증 정보가 유효하지 않은 경우 INVALID_PUSH_TOKEN 유효하지 않은 푸시 토큰인 경우 INTERNAL_ERROR 서버 오류 발생 시
유저 식별자
$push_send 이벤트는 발송 대상의 식별자 중 하나를 수집합니다.
Field | Type | Description |
---|---|---|
userId | String(nullable) | 푸시 발송 대상 유저의 userId 식별자 |
deviceId | String(nullable) | 푸시 발송 대상 유저의 deviceId 식별자 |

1. 웹훅 캠페인 설정
대시보드의 메뉴의 웹훅 메뉴 우측 상단에 위치한 + 캠페인 만들기
버튼을 클릭해서 새로운 웹훅 캠페인을 생성하실 수 있습니다.

원하는 캠페인 이름을 입력하여 생성해주세요.

1-1. Method 설정
Method 는 POST 로 설정합니다.
1-2. Headers 및 Parameter 설정
푸시 알림함을 구현하는 API 의 스펙에 맞춰 Headers 에 인증정보 등을 추가합니다.
여기에서는 Authorization 헤더에 개인화를 이용해 유저 속성에 담겨있는 access-token 을 활용한다고 가정하였습니다.

1-3. Body 설정
Liquid 문법을 활용하여 를 웹훅의 Request Body를 작성합니다.
앞서 살펴보았던, $push_send 이벤트가 수집하는 속성 및 식별자를 활용하였습니다.
Request Body
{
"identifiers":{
"userId": "{{identifiers["$userId"]}}",
"deviceId":"{{identifiers["$deviceId"]}}"
},
"key": "{{event_properties["push_message_key"]}}",
"platform": "{{event_properties["platform_type"]}}",
"push_token": "{{event_properties["push_token"]}}",
"title": "{{event_properties["push_message_title"]}}",
"body": "{{event_properties["push_message_body"]}}",
"actionType": "{{event_properties["push_message_action_type"]}}",
"actionValue":"{{event_properties["push_message_action_value"]}}"
}

개인화에 사용된 속성 또는 식별자 값이 null 인 경우 Empty String("") 으로 치환됨을 유의하세요
1-4. 대상 설정
기본 설정 - 모든 푸시 캠페인

모든 푸시 캠페인을 알림함에서 노출하고 싶은 경우 대상으로 모든 사용자를 선택합니다.
고급 설정 - 특정 푸시 캠페인
특정한 푸시 캠페인만 알림함에서 노출하고 싶은 경우 푸시 캠페인의 대상 코호트와 일치하도록 웹훅 코호트를 설정합니다.

푸시 알림함 구현시 푸시 캠페인의 대상과 웹훅 캠페인 대상 설정에 주의하세요푸시 캠페인의 대상과 동일하거나 더 넓은 대상을 웹훅 캠페인 대상으로 설정하도록 합니다.
혹은 웹훅 캠페인 대상을 '모든 사용자'로 설정하여 푸시 알림함이 의도대로 동작하도록 세팅합니다.
3. 웹훅 발송 설정
웹훅 캠페인 설정을 완료하면 요약 내용을 확인할 수 있습니다.
'저장하기'를 누르고 발송설정을 클릭합니다.

발송유형을 '이벤트 기반'으로 선택합니다.
시작 이벤트로는 '$push_send' 를 선택합니다.
그 뒤 필터 추가하기를 눌러 속성 필터 조건을 이용해서 다음과 같이 속성 조건을 추가합니다.
Key | Value | 설명 |
---|---|---|
push_message_key | (푸시 캠페인의 키 값) | (선택) 특정 푸시 캠페인만 설정하고 싶은 경우 |
result | SUCCESS | (추천) 전송 성공한 메세지만 보여주고 싶은 경우 |
기본 설정 - 모든 푸시 캠페인
모든 푸시 캠페인을 알림함에서 노출하고 싶은 경우 result 속성만 활용하여 필터를 설정합니다. result 는 SUCCESS 로 입력하면 됩니다.

고급 설정 - 특정 푸시 캠페인
특정 푸시 캠페인을 알림함에서 노출하고 싶은 경우 result 속성외에 push_message_key 속성도 활용하여 필터를 설정합니다.
원하는 푸시 캠페인의 메시지 키 값인 2를 입력하고 result 는 SUCCESS 로 입력하면 됩니다.

이 웹훅 캠페인은 알림함에 데이터를 전송하기 위한 목적이므로 별도의 발송 제한을 설정할 필요는 없습니다.
4. 완료
푸시 알림함을 위한 웹훅 구성이 모두 끝났습니다.
이제 알림함 수신을 위한 API 를 구현하여 푸시 알림함을 구현할 수 있습니다.

Updated 1 day ago