Aviseringskanaler

En kanal är en destination för aviseringar. Lägg till så många du behöver och koppla dem sedan till enskilda bevakningar (eller till alla bevakningar som standard).

Kanaler kontra bevakningsöverstyrningar

Kanaler definieras på organisationsnivå. Varje kanal kan markeras som standard — vilket innebär att nya bevakningar skickar till den automatiskt. På en enskild bevakning kan du överstyra standarden och välja en anpassad delmängd.

Slack

  1. I Slack går du till Apps → Incoming Webhooks → Add to Slack och väljer den kanal som ska ta emot aviseringar.
  2. Kopiera webhook-URL:en som Slack ger dig.
  3. I Page Deltas öppnar du sidan Channels, Add a channel, väljer Slack, klistrar in URL:en och sparar.
  4. Klicka på Send test för att bekräfta att meddelandet landar i rätt Slack-kanal.

Discord

I din Discord-server öppnar du Server Settings → Integrations → Webhooks → New Webhook. Kopiera URL:en och klistra in den i en ny Discord-kanal i Page Deltas.

Microsoft Teams

I Teams högerklickar du på målkanalen, Connectors → Incoming Webhook → Configure. Namnge den Page Deltas, spara och kopiera URL:en till Page Deltas.

E-post

Lägg till mottagaradressen. Vi skickar först ett verifieringsmejl till den adressen — kanalen förblir i tillståndet väntar på verifiering och tar inte emot aviseringar förrän mottagaren bekräftar. Utgående e-post skickas från en verifierad domän som vi kontrollerar. För teamdistribution, använd ett gruppalias i stället för att lägga till enskilda adresser en i taget.

Generisk webhook

Använd detta när du vill driva ditt eget system utifrån aviseringar (Linear, Jira, en Lambda, en Slack-fast-via-bot osv.).

Payload

Innehållet är ett platt JSON-objekt. Nya fält kan tillkomma med tiden, så ignorera okända nycklar i stället för att avvisa 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/..."
}

Signaturverifiering (HMAC)

Varje begäran bär en X-Signature-header på formen sha256=&lt;hex&gt;, där värdet är HMAC-SHA256 av den råa begärankroppen med din kanals hemlighet — som visas en gång vid skapandet. Det finns ingen tidsstämpelkomponent.

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

Leverans och misslyckanden

BeteendeDetalj
FörsökVarje avisering levereras med ett enda försök per kanal. Det finns för närvarande inga automatiska omförsök — se till att din mottagare svarar snabbt och acceptera dubbletter defensivt.
MisslyckandenEtt svar som inte är 2xx eller ett nätverksfel markerar att den leveransen misslyckades. Själva bevakningen pausas inte vid leveransmisslyckanden.
GranskningVarje försök (lyckat eller misslyckat, med HTTP-status) registreras på serversidan i loggen över leveransförsök.

Bästa praxis

  • Använd en kanal per Slack-arbetsytekanal — återanvänd inte en webhook för flera Slack-rum.
  • För bevakningar med hög volym, skicka till en dedikerad Slack-kanal i stället för en upptagen #general.
  • För verksamhetskritiska aviseringar, koppla två kanaler av olika typer (t.ex. Slack + e-post) så att ett Slack-avbrott inte döljer en ändring.
Aviseringskanaler · Dokumentation · Page Deltas