Use Settings to configure delivery, Routing to select events, Logs to inspect delivery history, and Help for this guide. Routing requires Tier 1; Tier 2 adds request rules. Log visibility, payload previews, and deletion can be delegated separately with Tier 2 role permissions.
Send signals to Slack when activity on your site should become a channel alert.
Slack is a premium SignalPress service. The active license must include service_slack or *.
Hub service ID: slack. Index: Integrations Overview. Target from PHP: Service Targeting.
Slack setup
- Create or open a Slack app at [Your Apps](https://api.slack.com/apps).
- Open Incoming Webhooks and activate incoming webhooks.
- Select Add New Webhook to Workspace, choose a channel, and authorize the app.
- Copy the generated
https://hooks.slack.com/services/...URL. - Activate Slack in SignalPress, paste the URL into Webhook URL, set Minimum Level and Signal payload, enable the service, and save.
- Send a test signal and confirm it appears in the selected channel.
Settings
| Field | Purpose |
|---|---|
| Webhook URL | Incoming webhook URL (secret). |
| Minimum Level | Service-level gate inside delivery. Default: warning. |
| Signal payload | Include redacted JSON in the message. Default: on. |
Delivery thresholds
SignalPress applies two independent level checks:
- Routing → Routing Minimum Level (Tier 1+) — filters events before they are offered to Slack.
- Settings → Minimum Level — final gate inside the Slack service.
An event must pass both before SignalPress sends the signal.
The webhook URL is a secret. Do not publish it or include it in source control. SignalPress also accepts GovSlack hooks.slack-gov.com webhook URLs.
Send a signal
PHP
sp_capture(
'backup_failed',
[ 'message' => 'The nightly backup failed.', 'level' => 'error' ],
[ 'source' => 'backup-worker', 'services' => [ 'slack' ] ]
);
Recognized levels are debug, info, warning, error, and critical. Missing or invalid levels are informational. Messages use Slack Block Kit and can include a redacted JSON payload limited to 2,500 characters.
The signalpress/slack/payload filter can adjust the final webhook request body.
Connection test
A successful test requires HTTP 200 and a response body of ok (case-insensitive). Normal signal delivery is non-blocking.
What to read next
- Integrations Overview — browse and activate services
- Your First Connection Test — send a test signal and read the log
- Advanced Event Routing — per-service event filters
- Connection Tests and Delivery Log — interpret delivery results
- Service Targeting — limit destinations from PHP