알림 채널
채널은 알림의 목적지입니다. 필요한 만큼 추가한 다음 개별 모니터(또는 기본적으로 모든 모니터)에 연결하세요.
채널 vs. 모니터 재정의
채널은 조직 수준에서 정의됩니다. 각 채널을 기본값으로 지정할 수 있으며, 이는 새 모니터가 해당 채널로 자동 전송됨을 의미합니다. 특정 모니터에서 기본값을 재정의하고 사용자 지정 하위 집합을 선택할 수 있습니다.
Slack
- Slack에서
앱 → Incoming Webhooks → Slack에 추가로 이동하여 알림을 수신할 채널을 선택하세요. - Slack에서 제공하는 웹훅 URL을 복사하세요.
- Page Deltas에서
채널페이지를 열고채널 추가를 클릭한 후Slack을 선택하고 URL을 붙여넣고 저장하세요. 테스트 보내기를 클릭하여 메시지가 올바른 Slack 채널에 도착하는지 확인하세요.
Discord
Discord 서버에서 서버 설정 → 연동 → 웹훅 → 새 웹훅을 여세요. URL을 복사하여 Page Deltas의 새 Discord 채널에 붙여넣으세요.
Microsoft Teams
Teams에서 대상 채널을 마우스 오른쪽 버튼으로 클릭하고 커넥터 → 수신 웹훅 → 구성을 선택하세요. 이름을 Page Deltas로 지정하고 저장한 후 URL을 Page Deltas에 복사하세요.
이메일
수신자 주소를 추가하세요. 해당 주소로 먼저 확인 이메일을 보냅니다 — 채널은 확인 대기 중 상태로 유지되며 수신자가 확인할 때까지 알림을 수신하지 않습니다. 발신 메일은 우리가 제어하는 인증된 도메인에서 전송됩니다. 팀에 배포하려면 개별 주소를 하나씩 추가하는 대신 그룹 별칭을 사용하세요.
일반 웹훅
알림에서 자체 시스템(Linear, Jira, Lambda, 봇을 통한 Slack 등)을 구동하려는 경우에 이 옵션을 사용하세요.
페이로드
본문은 평면 JSON 객체입니다. 시간이 지남에 따라 새 필드가 추가될 수 있으므로 알 수 없는 키를 거부하지 말고 무시하세요.
POST <your URL>
Content-Type: application/json
X-Signature: sha256=<hex>
{
"event": "change.detected",
"monitor_id": "...",
"monitor_url": "https://example.com/pricing",
"monitor_name": "Competitor pricing page",
"change_id": "...",
"detected_at": "2026-06-01T12:00:00Z",
"summary": "Pro plan increased from $29 to $39/month.",
"before_screenshot_url": "https://.../before.png",
"after_screenshot_url": "https://.../after.png",
"dashboard_url": "https://app.pagedeltas.com/monitors/..."
}서명 확인 (HMAC)
각 요청에는 sha256=<hex> 형식의 X-Signature 헤더가 포함되며, 이 값은 채널의 시크릿(생성 시에만 표시됨)을 사용한 원시 요청 본문의 HMAC-SHA256입니다. 타임스탬프 구성 요소는 없습니다.
# Node.js example
import crypto from "node:crypto";
function verify(req, rawBody, secret) {
const header = req.headers["x-signature"]; // "sha256=<hex>"
const expected =
"sha256=" +
crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(
Buffer.from(header),
Buffer.from(expected),
);
}전달 및 실패
| 동작 | 상세 |
|---|---|
| 시도 | 각 알림은 채널당 한 번의 시도로 전달됩니다. 현재 자동 재시도는 없습니다 — 수신기가 신속하게 응답하고 중복을 방어적으로 수락하도록 하세요. |
| 실패 | 2xx가 아닌 응답이나 네트워크 오류는 전달 실패를 나타냅니다. 전달 실패로 인해 모니터 자체가 일시 중지되지는 않습니다. |
| 감사 | 모든 시도(성공 또는 실패, HTTP 상태 포함)는 서버 측의 전달 시도 로그에 기록됩니다. |
모범 사례
- Slack 워크스페이스 채널당 하나의 채널을 사용하세요 — 여러 Slack 채팅방에 웹훅을 재사용하지 마세요.
- 알림이 많은 모니터의 경우 바쁜 #general 채널 대신 전용 Slack 채널로 보내세요.
- 중요한 알림의 경우 Slack 중단으로 인해 변경 사항을 놓치지 않도록 서로 다른 유형의 채널 두 개(예: Slack + 이메일)를 연결하세요.