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
- Mene Slackissa kohtaan
Apps → Incoming Webhooks → Add to Slackja valitse kanava, jonka tulisi vastaanottaa ilmoitukset. - Kopioi webhook-URL, jonka Slack antaa sinulle.
- Avaa Page Deltasissa
Kanavat-sivu,Lisää kanava, valitseSlack, liitä URL ja tallenna. - Napsauta
Lähetä testivahvistaaksesi, 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=<hex>, 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äytyminen | Yksityiskohta |
|---|---|
| Yritykset | Jokainen ilmoitus toimitetaan yhdellä yrityksellä kanavaa kohden. Automaattisia uudelleenyrityksiä ei tällä hetkellä ole — laita vastaanottajasi vastaamaan nopeasti ja hyväksymään kaksoiskappaleet puolustavasti. |
| Epäonnistumiset | Muu kuin 2xx-vastaus tai verkkovirhe merkitsee toimituksen epäonnistuneeksi. Itse monitoria ei keskeytetä toimitusvirheiden vuoksi. |
| Tarkastus | Jokainen 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.