Page DeltasPage Deltas

Canaux de notification

Un canal est une destination pour les alertes. Ajoutez-en autant que nécessaire, puis associez-les à des surveillances individuelles (ou à toutes les surveillances par défaut).

Canaux et substitutions par surveillance

Les canaux sont définis au niveau de l'organisation. Chaque canal peut être marqué comme par défaut — c'est-à-dire que les nouvelles surveillances y envoient automatiquement. Sur une surveillance donnée, vous pouvez remplacer la valeur par défaut et choisir un sous-ensemble personnalisé.

Slack

  1. Dans Slack, allez dans Apps → Incoming Webhooks → Add to Slack et sélectionnez le canal qui doit recevoir les alertes.
  2. Copiez l'URL de webhook fournie par Slack.
  3. Dans Page Deltas, ouvrez la page Channels, Add a channel, choisissez Slack, collez l'URL et enregistrez.
  4. Cliquez sur Send test pour confirmer que le message arrive dans le bon canal Slack.

Discord

Dans votre serveur Discord, ouvrez Server Settings → Integrations → Webhooks → New Webhook. Copiez l'URL et collez-la dans un nouveau canal Discord dans Page Deltas.

Microsoft Teams

Dans Teams, faites un clic droit sur le canal cible, Connectors → Incoming Webhook → Configure. Nommez-le Page Deltas, enregistrez et copiez l'URL dans Page Deltas.

Email

Ajoutez l'adresse du destinataire. Nous envoyons d'abord un e-mail de vérification à cette adresse — le canal reste à l'état vérification en attente et ne recevra pas d'alertes tant que le destinataire n'a pas confirmé. Les e-mails sortants sont envoyés depuis un domaine vérifié que nous contrôlons. Pour une diffusion en équipe, utilisez un alias de groupe plutôt que d'ajouter les adresses une par une.

Webhook générique

Utilisez-le quand vous souhaitez piloter votre propre système à partir des alertes (Linear, Jira, une Lambda, un Slack mais via un bot, etc.).

Charge utile

Le corps est un objet JSON plat. De nouveaux champs peuvent être ajoutés au fil du temps : ignorez donc les clés inconnues plutôt que de les rejeter.

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/..."
}

Vérification de signature (HMAC)

Chaque requête comporte un en-tête X-Signature de la forme sha256=&lt;hex&gt;, où la valeur est le HMAC-SHA256 du corps brut de la requête utilisant le secret de votre canal — affiché une seule fois lors de la création. Il n'y a pas de composante d'horodatage.

# 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),
  );
}

Distribution et échecs

ComportementDétail
TentativesChaque alerte est distribuée avec une seule tentative par canal. Il n'y a actuellement aucune nouvelle tentative automatique — faites en sorte que votre récepteur réponde rapidement et accepte les doublons de manière défensive.
ÉchecsUne réponse non-2xx ou une erreur réseau marque la distribution comme échouée. La surveillance elle-même n'est pas mise en pause en cas d'échec de distribution.
Journal d'auditChaque tentative (succès ou échec, avec le statut HTTP) est enregistrée côté serveur dans le journal des tentatives de distribution.

Bonnes pratiques

  • Utilisez un canal par salon Slack — ne réutilisez pas un webhook pour plusieurs salons Slack.
  • Pour les surveillances à fort volume, envoyez vers un canal Slack dédié plutôt que vers un #general très actif.
  • Pour les alertes critiques, associez deux canaux de types différents (par exemple Slack + e-mail) afin qu'une panne de Slack ne masque pas un changement.
Canaux de notification · Documentation · Page Deltas