승인할 글이 생기거나, 글이 나갔거나, 발행에 실패하면 팀이 보는 채널로 바로 알림을 받을 수 있어요. 웹훅은 팀 전체(FULL) 권한이 있는 사람이 추가해요.
캠페인의 「디스코드 공지」 와는 달라요. 디스코드 공지는 공지 본문을 커뮤니티 채널에 올리는 기능이고, 웹훅은 팀에게 「이런 일이 생겼어요」 를 알려요.
보낼 수 있는 일
| 고르는 이름 | 언제 |
|---|---|
| 승인 대기 글이 생김 | 사람이 확인하고 발행해야 하는 글이 들어왔을 때 (AI 초안 · 정기 콘텐츠 · 캘린더 칸 채우기 등) |
| 발행됨 | 글이 채널에 나갔을 때. 여러 채널 중 일부만 나가도 여기로 오고, 못 나간 채널은 사유가 같이 와요 |
| 발행 실패 | 고른 채널 어디에도 나가지 못했을 때 |
디스코드 · 슬랙 채널로 받기
- 받을 채널의 웹훅 주소를 만들어요
- 디스코드: 채널 설정 › 연동 › 웹후크 › 새 웹후크 › 웹후크 URL 복사
- 슬랙: 슬랙 앱 디렉터리의 Incoming Webhooks 에서 채널을 고르고 주소를 복사
- Spear 콘솔 연결 › 채팅 앱 맨 아래 웹훅 카드에서 웹훅 추가 를 눌러요
- 이름 · 주소를 넣고, 프로젝트(팀 전체 면 모든 프로젝트)와 보낼 일 을 골라 추가
- 목록의 테스트 를 눌러 「도착했어요」 가 뜨는지, 채널에 「Spear 웹훅 테스트입니다」 카드가 왔는지 봐요
주소 모양을 보고 디스코드 · 슬랙인지 알아서 골라요. 주소는 저장한 뒤 다시 보이지 않아요(가린 주소만 보여요).
우리 서버로 받기 (일반 웹훅)
디스코드 · 슬랙이 아닌 https 주소를 넣으면 JSON 으로 보내요. 추가하면 서명 키(whsec_ 로 시작)가 한 번 보여요. 받는 서버는 이 키로 요청이 Spear 에서 왔는지 확인해요.
- 요청 헤더:
webhook-id(재시도해도 같아요. 같은 값이면 한 번만 처리하세요) ·webhook-timestamp·webhook-signature - 서명은 Standard Webhooks 규격이라 공개 라이브러리로 바로 확인할 수 있어요
- 본문의
type은post.approval_requested·post.published·post.failed, 글은data.post에 있어요(본문 앞부분 · 채널별 결과 · 콘솔 주소) - 2xx 로 10초 안에 답해 주세요. 리다이렉트는 따라가지 않아요
- 키를 잃어버렸으면 기록 · 설정 을 펼쳐 서명 키 보기, 바꾸려면 서명 키 새로 만들기 (옛 키도 24시간 같이 서명해요)
- 내부망(사설 IP · localhost) 주소는 받지 않아요
실패하면
받는 쪽이 답하지 않으면 5초 · 5분 · 30분 · 2시간 … 간격을 늘려 사흘 가까이 다시 보내요. 기록 · 설정 의 보낸 기록 에서 한 건을 누르면 시도마다의 응답 코드 · 걸린 시간 · 보낸 본문을 볼 수 있어요.
다 됐는지 확인
테스트 를 눌러 「도착했어요 · 204」 처럼 보이면 끝이에요.
이럴 땐
- 「실패했어요 · 404」: 채널에서 웹훅이 삭제됐거나 주소를 잘못 붙여 넣었어요. 웹훅을 삭제하고 새 주소로 다시 추가해요
- 「자동으로 꺼짐」 이 붙었어요: 받는 쪽이 사흘 동안 계속 실패했거나 웹훅을 지웠다고(410) 답했어요. 팀 관리자에게 알림도 가요. 받는 쪽을 고친 뒤 켜기 를 눌러요. 놓친 알림은 보낸 기록에서 다시 보내기
- 잠깐 멈추고 싶어요: 잠시 끄기. 꺼진 동안 생긴 일은 보내지 않아요
- 웹훅 카드가 안내 한 줄뿐이에요: 웹훅은 팀 전체(FULL) 권한만 다뤄요. 팀 관리자에게 요청해요
- AI 에이전트로 다루고 싶어요: MCP 를 연결하면
list_webhooks·create_webhook·update_webhook·test_webhook·list_webhook_deliveries·get_webhook_delivery·resend_webhook_delivery를 쓸 수 있어요 (AI 앱에 연결하기)