Notifications & alerts
Route fleet alerts to email, Slack, and signed webhooks, and control exactly which events go where.
FleetWP sends alerts through multiple channels and lets you decide, per event type, which channels receive them. Everything is configured on the fleet Notifications page (admin only).
Channels
- Email: sent to your configured recipients; falls back to the workspace owner's email if no recipients are set.
- Slack: an incoming-webhook URL from your own Slack app, so alerts carry your brand. See Connect Slack.
- Webhook: a signed HTTP POST to your endpoint. Each request carries an
X-FleetWP-Signature: sha256=<hmac>header so you can verify authenticity with your webhook secret.
Slack and webhook deliveries go through an SSRF guard. Delivery is best-effort and isolated per channel: a failure in one never blocks the others or your monitoring.
Connect Slack
FleetWP posts to Slack through an incoming webhook on a Slack app that you create. Because the app is yours, alerts arrive under your agency's name and logo, and FleetWP's name never appears in your Slack or your clients'. Setup takes about two minutes.
- Go to api.slack.com/apps and click Create New App. Under "Or start your own way", choose Blank app, then click Continue.
- Name the app after your agency (for example "Acme Alerts") and choose the Slack workspace that should receive alerts, then create the app.
- Optional but recommended: under Basic Information, scroll to Display Information and upload your logo. Set a background color too if you like. This is the name and icon shown on every alert.
- In the left menu, open Incoming Webhooks and switch Activate Incoming Webhooks on.
- Scroll down and click Add New Webhook. Pick the channel the alerts should go to and click Allow.
- Copy the new webhook URL. It starts with
https://hooks.slack.com/services/. - In FleetWP, open Notifications, paste the URL into Slack incoming webhook, and click Save.
- Click Test next to the Slack field. A test alert should appear in your channel within a few seconds.
Then use the routing matrix to choose which alerts go to Slack. Every alert type is on by default.
Good to know
- Use a Slack app, not the old "Incoming WebHooks" integration. The legacy integration in the Slack app directory is being retired by Slack. If your current URL came from it, create an app as above and paste the new URL.
- Private channels: you must be a member of a private channel to pick it in step 5.
- Admin approval: if your Slack workspace restricts app installs, step 5 sends a request to your Slack admin instead. Alerts start once they approve.
- Changing the channel: add a new webhook for the other channel (step 5), paste the new URL into FleetWP, and remove the old webhook in Slack.
- One channel per workspace: all Slack alerts for a FleetWP workspace go to one channel.
- Keep the URL private. Anyone with it can post to your channel. If it leaks, remove that webhook in Slack and add a new one.
Alert kinds
| Kind | Fires when | Source |
|---|---|---|
uptime | A site goes down or recovers | Uptime cron |
offline | The site is up but the agent is silent | Uptime cron |
security | A new high/critical hardening finding | Scan cron |
backup | A backup fails | Backup status callback |
errors | A new fatal/parse PHP error | Heartbeat |
links | New broken links found | Manual link scan |
edge | A Cloudflare threats spike | Edge cron |
Routing matrix
The Notifications page has a matrix of alert kind × channel. By default an alert goes to every channel that's configured. Absence means on. Untick a cell to stop a specific kind from reaching a specific channel.
Testing
Each channel has a Send test button so you can confirm delivery end-to-end. You can also rotate the webhook signing secret from the same page.