Notifications (PRO)
Notifications send matching events to an outside system in real time. Available with Logify Pro.
Find it at Logify > Settings > Notifications.
Destinations
Each destination has its own settings card with the same filter and rate-limit controls.
- Recipients — one email per line.
- Send For Event Types, Minimum Severity, and Rate Limit as below.
Slack
- Webhook URL — paste an Incoming Webhook URL from your Slack workspace.
- Posts a colour-coded attachment with the severity label, event description, user, IP, action, and object.
Generic Webhook
- Webhook URL — POST endpoint that should receive a JSON body.
- HMAC Secret (optional) — if set, the request body is signed with HMAC-SHA256 and the digest is sent in the
X-Logify-Signatureheader so downstream systems can verify authenticity. - The body has the shape
{ site_url, event, sent_at }.
Syslog (UDP)
- Host — the syslog collector hostname. Use
localto write via PHP'sopenlog/sysloginstead of opening a network socket. - Port — defaults to 514.
- Logify maps its severity scale to RFC 5424 syslog levels automatically.
Filters and Rate Limits
Every destination accepts the same filter set:
- Send For Event Types — pick which event categories qualify. Empty means "all types".
- Minimum Severity — drop the floor for which events trigger a send.
- Rate Limit (seconds) — minimum gap between sends. 0 disables rate limiting.
This lets you wire low-noise critical-only alerts to Slack while sending the full firehose to a syslog collector — and the rate limit makes sure a brute-force burst doesn't generate fifty Slack messages.
Failure Handling
Every network call uses a 5-second timeout. If a destination fails, the failure is swallowed silently — notifications never block the originating WordPress request.
Notes
- Notifications fire from the
kc_lf_post_insert_activity_logaction, which runs as Logify's batched-write queue is flushed at request shutdown. They don't add latency to user-facing requests. - All notification logic lives in the
pro/module. The free plugin does not include this subsystem.