웹훅
수신 코드 레시피
실제 운영에서 자주 쓰는 패턴을 복붙 가능한 형태로 정리했습니다. 서명 검증은 모두 포함되어 있습니다.
레시피 1 — 자사 카카오 알림톡 발송
상태 변경 시 그 아이디어 관련 사용자에게 카카오 알림톡으로 알림 (실무에서 가장 흔한 패턴).
Express + 카카오 알림톡
레시피 2 — traits 기반 채널 분기
plan: "pro" 인 사용자만 카카오 알림톡, 나머지는 이메일.
레시피 3 — 헤비유저에게만 푸시
레시피 4 — Discord로 알림 (Slack/JANDI는 자동 변환)
Discord는 자동 변환 미지원이라 직접 변환 코드를 끼워야 합니다.
레시피 5 — n8n / Zapier 연동
n8n과 Zapier는 별도 코드 없이 GUI로 처리 가능합니다.
- n8n에서 Webhook 트리거 노드 생성 → URL 복사
- Lenit
설정 → 웹훅에 그 URL 등록 - n8n 시각 빌더에서 Notion 페이지 생성, Slack 메시지 발송, Google Sheets 추가 등 자유롭게 연결
팁페이로드 구조 미리보기
n8n/Zapier 트리거 노드는 첫 요청을 받아 페이로드 스키마를 자동 인식합니다. Lenit 어드민에서 테스트 트리거(아이디어 상태 1회 변경)를 발생시켜 스키마를 등록한 뒤 후속 노드를 연결하세요.
레시피 6 — 재시도 큐 (운영 권장)
Lenit은 fire-and-forget이라 자사 서버가 잠깐 다운되면 그 이벤트는 영영 못 받습니다. 큐를 끼워서 재시도를 자체 운영하는 패턴.
BullMQ + Redis 기반 재시도 큐
디버깅 팁
| 증상 | 점검 |
|---|---|
| 알림이 안 옴 | 설정 → 웹훅에서 URL·이벤트 체크 여부 확인. webhook.site에 임시 등록해서 페이로드 도착 확인 |
audience가 비어있음 | 이벤트가 idea.status_changed/announcement.published인지, audience targets 체크 여부 확인. 비식별 방문자(핑거프린트)만 있는 경우는 비어있음 |
| 401 검증 실패 | express.json() 같은 자동 파싱이 raw body를 망가뜨리는지 확인. 반드시 express.raw() 사용 |
| 서명이 같은데도 실패 | 비교 시 prefix sha256= 포함했는지 확인. trim/공백 점검 |