Ilmoituskanavat

Kanava on kohde ilmoituksille. Lisää niin monta kuin tarvitset, ja liitä ne sitten yksittäisiin monitoreihin (tai oletuksena kaikkiin monitoreihin).

Kanavat vs. monitorien ohitukset

Kanavat määritellään organisaatiotasolla. Jokainen kanava voidaan merkitä oletukseksi — mikä tarkoittaa, että uudet monitorit lähettävät niihin automaattisesti. Minkä tahansa tietyn monitorin kohdalla voit ohittaa oletuksen ja valita mukautetun alajoukon.

Slack

  1. Mene Slackissa kohtaan Apps → Incoming Webhooks → Add to Slack ja valitse kanava, jonka tulisi vastaanottaa ilmoitukset.
  2. Kopioi webhook-URL, jonka Slack antaa sinulle.
  3. Avaa Page Deltasissa Kanavat-sivu, Lisää kanava, valitse Slack, liitä URL ja tallenna.
  4. Napsauta Lähetä testi vahvistaaksesi, että viesti päätyy oikeaan Slack-kanavaan.

Discord

Avaa Discord-palvelimellasi Palvelimen asetukset → Integraatiot → Webhookit → Uusi Webhook. Kopioi URL ja liitä se uuteen Discord-kanavaan Page Deltasissa.

Microsoft Teams

Napsauta Teamsissa kohdekanavaa hiiren kakkospainikkeella, Liittimet → Saapuva webhook → Määritä. Nimeä se Page Deltasiksi, tallenna ja kopioi URL Page Deltasiin.

Sähköposti

Lisää vastaanottajan osoite. Lähetämme kyseiseen osoitteeseen ensin vahvistussähköpostin — kanava pysyy odottaa vahvistusta -tilassa eikä vastaanota ilmoituksia ennen kuin vastaanottaja vahvistaa. Lähtevä posti lähetetään vahvistetusta verkkotunnuksesta, jota hallitsemme. Tiimijakelua varten käytä ryhmäaliasta sen sijaan, että lisäisit yksittäisiä osoitteita yksitellen.

Yleinen webhook

Käytä tätä, kun haluat ohjata omaa järjestelmääsi ilmoituksista (Linear, Jira, Lambda, Slack-botin kautta jne.).

Kuorma

Runko on litteä JSON-objekti. Uusia kenttiä saatetaan lisätä ajan myötä, joten sivuuta tuntemattomat avaimet niiden hylkäämisen sijaan.

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

Allekirjoituksen vahvistus (HMAC)

Jokaisessa pyynnössä on X-Signature-otsikko muodossa sha256=&lt;hex&gt;, jossa arvo on raakapyyntörungon HMAC-SHA256 käyttäen kanavasi salaisuutta — näytetään kerran luontihetkellä. Aikaleimakomponenttia ei ole.

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

Toimitus ja epäonnistumiset

KäyttäytyminenYksityiskohta
YrityksetJokainen ilmoitus toimitetaan yhdellä yrityksellä kanavaa kohden. Automaattisia uudelleenyrityksiä ei tällä hetkellä ole — laita vastaanottajasi vastaamaan nopeasti ja hyväksymään kaksoiskappaleet puolustavasti.
EpäonnistumisetMuu kuin 2xx-vastaus tai verkkovirhe merkitsee toimituksen epäonnistuneeksi. Itse monitoria ei keskeytetä toimitusvirheiden vuoksi.
TarkastusJokainen yritys (onnistuminen tai epäonnistuminen, HTTP-tilalla) kirjataan palvelinpuolella toimitusyritysten lokiin.

Parhaat käytännöt

  • Käytä yhtä kanavaa kutakin Slack-työtilakanavaa kohden — älä käytä samaa webhookia uudelleen useisiin Slack-huoneisiin.
  • Suuren volyymin monitoreille lähetä erilliseen Slack-kanavaan kiireisen #general-kanavan sijaan.
  • Kriittisille ilmoituksille liitä kaksi erityyppistä kanavaa (esim. Slack + sähköposti), jotta Slackin käyttökatko ei piilota muutosta.
Ilmoituskanavat · Dokumentaatio · Page Deltas