通知チャネル
チャネルはアラートの送信先です。必要な数だけ追加でき、個別のモニター(またはデフォルトですべてのモニター)に関連付けることができます。
チャネルとモニターのオーバーライド
チャネルは組織レベルで定義されます。各チャネルを デフォルト としてマークすると、新しいモニターは自動的にそこに送信されます。特定のモニターでデフォルトを上書きし、カスタムのセットを選択することも可能です。
Slack
- Slackで、
アプリ → Incoming Webhook → Slack に追加に進み、アラートを受け取るチャネルを選択します。 - Slackから提供されるWebhook URLをコピーします。
- Page Deltasで
チャネルページを開き、チャネルを追加をクリック。Slackを選択してURLを貼り付け、保存します。 テストを送信をクリックして、メッセージが正しいSlackチャネルに届くことを確認します。
Discord
Discordサーバーで、サーバー設定 → 連携サービス → ウェブフック → 新しいウェブフック を開きます。URLをコピーし、Page Deltasの新しいDiscordチャネルに貼り付けます。
Microsoft Teams
Teamsで、対象のチャネルを右クリックし、コネクタ → Incoming Webhook → 構成 を選択します。名前を 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),
);
}配信と失敗
| 動作 | 詳細 |
|---|---|
| 試行回数 | 各アラートは、チャネルごとに1回だけ配信を試みます。現在、自動再試行機能はありません。受信側は迅速に応答し、重複を許容するように構築してください。 |
| 失敗 | 2xx以外のレスポンスまたはネットワークエラーが発生すると、配信失敗としてマークされます。配信失敗によってモニター自体が停止することはありません。 |
| 監査 | すべての試行(成否、HTTPステータスを含む)は、サーバー側の配信試行ログに記録されます。 |
ベストプラクティス
- 一つのSlackワークチャネルチャネルに対して一つのチャネルを使用してください。複数のSlackルームで一つのWebhookを使い回さないようにしましょう。
- 更新頻度の高いモニターには、賑やかな #general ではなく専用のSlackチャネルに送信するようにしてください。
- 重要なアラートには、異なる種類の2つのチャネル(例: Slack + メール)を関連付けて、Slackの障害などで変更を見逃さないようにしてください。