상담이 생기거나 바뀔 때마다 SCALER 가 정해 둔 곳으로 알려 줘요. 조직에서 전체 관리 권한이 있는 사람이 콘솔 상담함 › 설정 › 웹훅 에서 해요.
| 받을 곳 | 어떻게 보이나 |
|---|---|
| 디스코드 포럼 | 상담 하나가 포럼 글 하나. 이후 고객 메시지 · 보낸 답장 · 상태 변경은 그 글의 답글 |
| 슬랙 | 채널에 메시지 한 줄씩. 처음 메시지에만 채널 · 고객 줄이 붙어요 |
| 서비스 웹훅 (우리 서버) | 서명이 붙은 JSON. 서비스가 받아서 「내 문의」 같은 사본을 쌓아요 |
추가하기
- 상담함 › 설정 을 열고 웹훅 카드로 가요
- 대상 형식을 골라요: 서비스 웹훅 · 디스코드 포럼 · 슬랙
- 주소를 넣어요
- 디스코드: 포럼 채널 › 연동 › 웹후크에서 만든 주소 (
https://discord.com/api/webhooks/…) - 슬랙: 앱의 Incoming Webhooks 에서 만든 주소 (
https://hooks.slack.com/services/…) - 서비스 웹훅: 우리 서버의 https 주소 (내부망 주소는 안 돼요)
- 디스코드: 포럼 채널 › 연동 › 웹후크에서 만든 주소 (
- 받을 이벤트(새 상담 · 상태 · 담당자 변경 · 새 메시지)를 고르고, 한 제품 상담만 받으려면 제품 키를 넣어요
- 웹훅 추가 를 누르고 시험 전송 으로 도착하는지 봐요
디스코드 · 슬랙 주소에는 비밀 토큰이 들어 있어서 저장한 뒤에는 끝 4자리만 보여요. 조용시간 을 켜 두면 밤 11시부터 아침 10시까지 생긴 건은 10시에 몰아서 가요(시험 전송도 같아요).
서비스 웹훅 서명 확인하기
추가하면 서명 비밀(whsec_…)이 한 번만 보여요. 받는 서버의 시크릿에 넣어 두세요. 요청마다 두 가지 서명을 같이 보내요.
| 헤더 | 확인하는 법 |
|---|---|
webhook-id · webhook-timestamp · webhook-signature |
Standard Webhooks 규격이에요. 공개 라이브러리에 서명 비밀을 넣으면 바로 확인돼요 |
X-Scaler-Signature (t=…,v1=…) |
예전부터 쓰던 방식이에요. HMAC-SHA256(비밀, "<t>.<받은 본문 그대로>") 를 hex 로 만들어 v1 과 비교해요 |
- 받은 본문을 그대로 써서 확인해요. JSON 으로 풀었다 다시 만들면 서명이 안 맞아요
- 시각(
webhook-timestamp·t)이 5분보다 오래됐으면 버려요 - 같은
webhook-id가 다시 오면 이미 처리한 거예요. 재시도 · 다시 보내기에도 id 는 같아요 - 10초 안에 2xx 로 답해 주세요. 무거운 일은 답한 뒤에 해요
서명 비밀 회전 을 누르면 새 비밀이 한 번 보여요. 24시간 동안은 옛 비밀로도 같이 서명하니(v1 이 두 개), 그 안에 받는 서버의 비밀을 바꾸면 끊기지 않아요.
실패하면
- 받는 곳이 잠깐 죽어 있으면 1분 · 5분 · 30분 · 2시간 · 6시간 · 24시간 뒤에 다시 보내요
- 보낸 기록에서 자세히 를 누르면 시도마다 응답 코드 · 걸린 시간 · 결과와, 마지막 실패 응답 앞부분 · 보낸 본문이 보여요
- 실패한 건은 재전송 으로 다시 보낼 수 있어요. 같은 이벤트 id 로 가요
자동으로 꺼졌을 때
받는 곳이 410 을 돌려주거나(웹훅을 지웠다는 뜻) 3일 동안 계속 실패 하면 웹훅이 자동으로 꺼지고, 조직 관리자에게 알림이 가요. 웹훅 줄에 「자동으로 꺼짐」 과 이유가 보여요.
- 받는 곳을 고쳐요 (디스코드 웹후크를 다시 만들었다면 수정 에서 새 주소를 넣어요)
- 켜기 를 눌러요
- 시험 전송 으로 확인하고, 꺼져 있던 동안 실패한 건은 보낸 기록에서 재전송 해요