通知渠道

渠道是提醒的接收目的地。您可以根据需要添加多个渠道,然后将它们附加到各个监控器上(或默认附加到所有监控器上)。

渠道与监控器覆盖设置

渠道是在组织级别定义的。每个渠道都可以标记为 默认 (default) — 这意味着新创建的监控器将自动向其发送通知。在任何特定的监控器上,您都可以覆盖该默认设置,并选择一个自定义的渠道子集。

Slack

  1. 在 Slack 中,前往 Apps → Incoming Webhooks → Add to Slack 并选择应该接收提醒的频道。
  2. 复制 Slack 提供给您的 webhook URL。
  3. 在 Page Deltas 中,打开 Channels 页面,点击 Add a channel,选择 Slack,粘贴 URL 并保存。
  4. 点击 Send test 确认消息是否能送达正确的 Slack 频道。

Discord

在您的 Discord 服务器中,打开 Server Settings → Integrations → Webhooks → New Webhook。复制该 URL 并将其粘贴到 Page Deltas 的新 Discord 渠道设置中。

Microsoft Teams

在 Teams 中,右键点击目标频道,选择 Connectors → Incoming Webhook → Configure。将其命名为 Page Deltas,保存后将该 URL 复制到 Page Deltas 中。

电子邮件

添加收件人地址。我们将首先向该地址发送一封验证邮件 — 在收件人确认之前,该渠道将保持在 pending verification(等待验证) 状态,并且不会收到任何提醒。发出的邮件由我们控制且已验证的域名发送。对于团队分发,请使用组别名 (group alias),而不是逐个添加个人地址。

通用 Webhook

当您希望通过提醒来驱动自己的系统(如 Linear、Jira、Lambda、通过机器人发到 Slack 等)时,请使用此选项。

有效负载 (Payload)

请求体是一个扁平的 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)

每个请求都带有一个 X-Signature 标头,格式为 sha256=&lt;hex&gt;,其中的值是使用您渠道的密钥(仅在创建时显示一次)对 原始请求体 (raw request body) 计算得出的 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 工作区频道使用一个独立的 Page Deltas 渠道 — 不要将同一个 webhook URL 重复用于多个 Slack 聊天室。
  • 对于高频提醒的监控器,请将其发送到专用的 Slack 频道,而不是发到繁忙的 #general 频道。
  • 对于关键任务级别的提醒,请同时附加两种不同类型的渠道(例如 Slack + 电子邮件),这样 Slack 的中断就不会导致您错过重要变更。
通知渠道 · 文档 · Page Deltas