Notifikationskanaler
En kanal er en destination for advarsler. Tilføj så mange, du har brug for, og knyt dem derefter til individuelle overvågninger (eller til alle overvågninger som standard).
Kanaler vs. overvågnings-tilsidesættelser
Kanaler defineres på organisationsniveau. Hver kanal kan markeres som standard — hvilket betyder, at nye overvågninger automatisk sender til den. På en given overvågning kan du tilsidesætte standarden og vælge en tilpasset kombination.
Slack
- I Slack, gå til
Apps → Incoming Webhooks → Tilføj til Slackog vælg den kanal, der skal modtage advarsler. - Kopiér den webhook-URL, som Slack giver dig.
- I Page Deltas, åbn
Kanaler-siden,Tilføj en kanal, vælgSlack, indsæt URL'en, og gem. - Klik på
Send testfor at bekræfte, at beskeden lander i den rigtige Slack-kanal.
Discord
I din Discord-server, åbn Serverindstillinger → Integrationer → Webhooks → Nyt Webhook. Kopiér URL'en og indsæt den i en ny Discord-kanal i Page Deltas.
Microsoft Teams
I Teams, højreklik på målkanalen, Connectors → Incoming Webhook → Konfigurer. Kald den Page Deltas, gem, og kopiér URL'en til Page Deltas.
Tilføj modtageradressen. Vi sender først en bekræftelses-e-mail til den adresse — kanalen forbliver i tilstanden afventer bekræftelse og vil ikke modtage advarsler, før modtageren bekræfter. Udgående post sendes fra et bekræftet domæne, som vi kontrollerer. Til teamdistribution skal du bruge et gruppealias i stedet for at tilføje individuelle adresser én efter én.
Generisk webhook
Brug dette, når du vil drive dit eget system ud fra advarsler (Linear, Jira, en Lambda, et internt værktøj osv.).
Payload
Hoveddelen (body) er et fladt JSON-objekt. Nye felter kan blive tilføjet over tid, så ignorer ukendte nøgler i stedet for at afvise dem.
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/..."
}Signaturbekræftelse (HMAC)
Hver anmodning bærer en X-Signature-header på formen sha256=<hex>, hvor værdien er HMAC-SHA256 af det rå anmodningsindhold (raw request body) ved hjælp af din kanals hemmelighed — som kun vises ved oprettelsen. Der er ingen tidsstempelkomponent.
# 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),
);
}Levering og fejl
| Adfærd | Detalje |
|---|---|
| Forsøg | Hver advarsel leveres med ét enkelt forsøg pr. kanal. Der er i øjeblikket ingen automatiske genforsøg — sørg for, at din modtager svarer hurtigt og accepterer dubletter defensivt. |
| Fejl | Et svar, der ikke er 2xx, eller en netværksfejl, markerer, at leveringen mislykkedes. Selve overvågningen sættes ikke på pause på grund af leveringsfejl. |
| Revision (Audit) | Hvert forsøg (succes eller fejl, med HTTP-status) registreres på serversiden i leveringsforsøgsloggen. |
Best practices
- Brug én kanal pr. Slack-workspace-kanal — genbrug ikke et webhook til flere Slack-rum.
- Til overvågninger med høj volumen skal du sende til en dedikeret Slack-kanal i stedet for en travl #general.
- Til missionskritiske advarsler bør du tilknytte to kanaler af forskellige typer (f.eks. Slack + e-mail), så et Slack-nedbrud ikke skjuler en vigtig ændring.