Varslingskanaler
En kanal er en destinasjon for varsler. Legg til så mange du trenger, og knytt dem deretter til enkeltovervåkinger (eller til alle overvåkinger som standard).
Kanaler kontra overvåkingsoverstyringer
Kanaler defineres på organisasjonsnivå. Hver kanal kan merkes som standard — det betyr at nye overvåkinger sender til den automatisk. På en gitt overvåking kan du overstyre standarden og velge et tilpasset utvalg.
Slack
- I Slack går du til
Apps → Incoming Webhooks → Add to Slackog velger kanalen som skal motta varsler. - Kopier webhook-URL-en Slack gir deg.
- I Page Deltas åpner du
Channels-siden,Add a channel, velgerSlack, limer inn URL-en og lagrer. - Klikk på
Send testfor å bekrefte at meldingen lander i riktig Slack-kanal.
Discord
På Discord-serveren din åpner du Server Settings → Integrations → Webhooks → New Webhook. Kopier URL-en og lim den inn i en ny Discord-kanal i Page Deltas.
Microsoft Teams
I Teams høyreklikker du på målkanalen, Connectors → Incoming Webhook → Configure. Gi den navnet Page Deltas, lagre, og kopier URL-en inn i Page Deltas.
E-post
Legg til mottakeradressen. Vi sender en verifiseringe-post til den adressen først — kanalen forblir i en tilstand av ventende verifisering og mottar ikke varsler før mottakeren bekrefter. Utgående e-post sendes fra et verifisert domene vi kontrollerer. For teamdistribusjon bør du bruke en gruppealias i stedet for å legge til enkeltadresser én etter én.
Generisk webhook
Bruk denne når du vil drive ditt eget system fra varsler (Linear, Jira, en Lambda, en Slack-men-via-bot, osv.).
Nyttelast
Kroppen er et flatt JSON-objekt. Nye felter kan legges til over tid, så ignorer ukjente nøkler i stedet for å avvise 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/..."
}Signaturverifisering (HMAC)
Hver forespørsel bærer en X-Signature-header på formen sha256=<hex>, der verdien er HMAC-SHA256 av den rå forespørselskroppen ved bruk av kanalens hemmelighet — vist én gang ved opprettelsen. Det finnes 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 feil
| Atferd | Detalj |
|---|---|
| Forsøk | Hvert varsel leveres med ett enkelt forsøk per kanal. Det finnes for øyeblikket ingen automatiske nye forsøk — sørg for at mottakeren din svarer raskt og aksepterer duplikater defensivt. |
| Feil | Et svar som ikke er 2xx, eller en nettverksfeil markerer at leveringen mislyktes. Selve overvåkingen settes ikke på pause ved leveringsfeil. |
| Revisjon | Hvert forsøk (vellykket eller mislykket, med HTTP-status) registreres på tjenersiden i loggen for leveringsforsøk. |
Beste praksis
- Bruk én kanal per Slack-arbeidsområdekanal — ikke gjenbruk en webhook for flere Slack-rom.
- For overvåkinger med stort volum bør du sende til en dedikert Slack-kanal i stedet for en travel #general.
- For forretningskritiske varsler bør du knytte til to kanaler av forskjellige typer (f.eks. Slack + e-post) slik at et Slack-avbrudd ikke skjuler en endring.