DocsProblem emails and notificationsAll pages

Problem emails and notifications

When a site goes down, comes back, or the board names a new problem, PageHum puts a notification in the app on every plan, and on Starter and Pro emails the account's address too. One per problem, not one per check.

When they are sent

  • Down: after two failed homepage checks in a row with no visitors arriving, about ten minutes. The email lists the failed checks.
  • Back up: on the next successful check, with how long it was down.
  • New problem: each site’s board is judged about once an hour. When it names a new problem (client errors, broken links, performance, or the funnel), you get one email saying what and where. A problem that clears and comes back within a day is not emailed again, unless you cleared it and it came back clearly worse.
  • A problem you cleared or snoozed sends nothing until it returns.

Notifications in the app

  • The bell at the top of every signed-in page shows how many are new. Opening it marks them read.
  • Each problem comes with an AI prompt to copy into a coding assistant: for an outage it starts from what the failed checks returned; for client errors, broken links, slow pages, or a falling funnel it carries the board’s numbers. Back-up notices have none.
  • Notices about the account come in amber, with no prompt: a site past 80% or all of its monthly pageviews (once each a month), a new LandingBoost score on a linked site, or a LandingBoost key that stopped working. They stay in the app; channels get only alerts.
  • Clear one, or clear all. Notifications are kept for 90 days.

Where they come from

From PageHum <alerts@pagehum.com> to the email your account signs in with. Each links to the site’s board, its status page, and the switch to turn them off.

Browser notifications

On every plan, Alert channels → This browser → Turn on notifications here shows alerts as system notifications from that browser, even when PageHum isn’t open. Clicking one opens the board. Turn it on in each browser you want them in; on iPhone and iPad, add PageHum to the Home Screen first. If you turn notifications off in the browser or clear its data, PageHum pauses that channel and says so.

Slack, Discord, Teams, and webhooks

On Starter and Pro, Alert channels on your account page sends the same alerts to Slack, Discord, a Microsoft Teams channel, or any https webhook. For each channel, choose which alerts (a site or checked page going down, coming back, a new board problem) and which sites. Each alert goes once, when it happens; problems you cleared or snoozed send nothing.

  • Slack: add the Incoming Webhooks app to a channel and paste its URL (https://hooks.slack.com/services/…).
  • Discord: Edit Channel → Integrations → Webhooks → New Webhook, then Copy Webhook URL.
  • Microsoft Teams: the channel’s Workflows → “Post to a channel when a webhook request is received”, then paste the URL it gives.
  • Send a test from each channel to check it arrives, pause one for a while, and see its recent deliveries. A failed delivery is tried again up to three times within the hour.
  • Quiet hours on any channel hold problems and recoveries between two hours in your time zone; outages still come through unless you untick that. Held alerts are in the app’s notifications and the channel’s log.
  • Webhook URLs work like passwords, so PageHum stores them encrypted and shows only their end.

Webhook payloads and signatures

A webhook gets a JSON POST per alert, with X-PageHum-Event (site.down, site.recovered, page.down, page.recovered, site.problem, or test) and X-PageHum-Delivery, the alert’s id, which stays the same on retries. Failing browser flows send flow.down and flow.recovered.

Body

{
  "id": "s_ab12cd34ef56:reachability:1790000000000:down",
  "event": "site.down",
  "test": false,
  "createdAt": 1790000000000,
  "site": { "key": "s_ab12cd34ef56", "name": "Harbor Supply", "host": "harbor.example" },
  "title": "Harbor Supply is down",
  "body": "The last 2 homepage checks of harbor.example failed, starting 06:32 UTC, and no visitors arrived since.",
  "prompt": "My website \"Harbor Supply\" (harbor.example) is down according to PageHum…",
  "link": "https://pagehum.com/dashboard?site=s_ab12cd34ef56"
}

X-PageHum-Signature is t=<unix seconds>,v1=<hex>: the HMAC-SHA256 of the timestamp, a dot, and the raw body, keyed with the channel’s signing secret (shown once when you add it). Check it before trusting a request, and reject old timestamps:

Node.js

import { createHmac, timingSafeEqual } from "node:crypto";

export function verifyPageHum(rawBody, header, secret, toleranceSeconds = 300) {
  const parts = Object.fromEntries(header.split(",").map((part) => part.split("=")));
  const t = Number(parts.t);
  if (!t || Math.abs(Date.now() / 1000 - t) > toleranceSeconds) return false;
  const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
  return parts.v1?.length === expected.length && timingSafeEqual(Buffer.from(parts.v1), Buffer.from(expected));
}

Answer with any 2xx within five seconds. Redirects aren’t followed, and hosts that resolve to private addresses are refused.

The weekly digest

  • On Starter and Pro, turn on Weekly digest on your account page for one email every Monday morning (from 08:00 UTC) with each site’s week: visitors, p75 load, and uptime with a seven-day chart for each, the one problem, and what’s being watched. It’s off until you turn it on.
  • The charts are small images; each one’s numbers are in its alt text and in the plain-text part of the email, so it reads the same with images off. Sites with a problem are named in the subject.

Sending a test

With problem emails on, Send a test email on your account page sends a clearly labelled test through the same path, so you can check it arrives and isn’t filtered as spam. Up to three an hour.

Turning them off

On your account page, under Problem emails, press Turn problem emails off. Turning them back on resumes them, starting with any problem that is open at that moment. Free plans show problems on the board without emailing.