Email & Webhooks¶
SentriKat sends alerts when new vulnerabilities match your product inventory. Configure email notifications, webhook integrations, and escalation policies to keep your team informed.
Which plans include it
Email alerts: every Cloud plan. Slack, Teams, Discord and custom webhooks: Cloud Pro and above. On-premises, both need Professional: with the Community Edition you see matches in the dashboard but receive no automated notifications.
Email Alerts¶
SMTP Configuration (on-premises)¶
Configure SMTP via environment variables in your .env file:
SMTP_HOST=smtp.example.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=your-app-password
SMTP_USE_TLS=true
[email protected]
SMTP_FROM_NAME=SentriKat
Apply the changes:
docker compose restart does not reread .env, so the new values would not apply.
See Configuration for the full list of SMTP variables.
Testing Email¶
Verify your SMTP setup:
docker compose exec sentrikat flask smtp test --to [email protected]
Or from the interface: Settings > Alert Management > Send Test Email.
Alert Types¶
| Alert | Trigger | Default |
|---|---|---|
| New exploited match | A new exploited vulnerability matches one of your products | Enabled |
| Due Date Approaching | Remediation deadline within 7 days | Enabled |
| Due Date Overdue | Remediation deadline has passed | Enabled |
| Ransomware Association | exploited vulnerability flagged as ransomware-linked | Enabled |
| Vendor Advisory | New vendor advisory matched (Cloud Pro and above, on-premises Professional) | Disabled |
| Agent Offline | Agent has not checked in for more than 15 minutes | Enabled |
Where alerts are configured¶
Alerts are set per organization, under Alerts. There is no separate rules page.
Each organization has:
- the email addresses that receive its alerts
- an outbound webhook, if you want the alerts in Slack, Teams, Discord or your own endpoint
- which alerts are on
The alert for a vulnerability confirmed as exploited is always on and cannot be switched off.
See Alerts.
Webhooks¶
SentriKat can send real-time notifications to external services via webhooks.
Creating a Webhook¶
Webhooks are set per organization (see Alerts):
- Go to Management > Organizations
- Open the organization for editing and select the Webhook tab
- Choose the Type (Slack, Teams, Discord or custom) and enter the URL of the endpoint that receives the alerts
- Test and save
Platform-Specific Setup¶
- In Slack, go to Apps > Incoming Webhooks
- Create a new webhook and select a channel
- Copy the webhook URL
- In SentriKat, add a webhook with the Slack URL in the organization's Webhook tab
- Set Type to Slack
Example payload SentriKat sends:
- In Teams, add an Incoming Webhook connector to your channel
- Copy the webhook URL
- In SentriKat, add a webhook with the Teams URL in the organization's Webhook tab
- Set Type to Teams
SentriKat sends Adaptive Card payloads compatible with Teams.
- In Discord, go to Server Settings > Integrations > Webhooks
- Create a new webhook and copy the URL
- In SentriKat, add a webhook with the Discord URL in the organization's Webhook tab
- Set Type to Discord
For custom integrations, use the generic JSON format:
Webhook Events¶
| Event | Description |
|---|---|
vulnerability.matched | New exploited vulnerability matches a product |
vulnerability.due_soon | Remediation deadline within 7 days |
vulnerability.overdue | Remediation deadline passed |
vulnerability.acknowledged | Vulnerability marked as resolved |
agent.offline | Agent missed check-in window |
sync.completed | exploited-vulnerability sync finished |
sync.failed | exploited-vulnerability sync encountered an error |
Webhook Security¶
When a secret is configured, SentriKat signs each payload with HMAC-SHA256:
Verify the signature on the receiving end:
import hmac, hashlib
def verify_signature(payload, signature, secret):
expected = "sha256=" + hmac.new(
secret.encode(), payload, hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)
Escalation Policies¶
Define escalation chains for unacknowledged critical vulnerabilities:
- Go to Settings > Alert Management, where the escalation policies live on the same page
- Click Add Policy
- Define escalation tiers:
- Tier 1 (immediate): Notify assigned team via email + Slack
- Tier 2 (after 24h): Notify org admin
- Tier 3 (after 72h): Notify super admin + all configured webhooks
- Click Save
Warning
Escalation policies only trigger for vulnerabilities with priority Critical or High. Lower-priority items follow standard alert rules.
Troubleshooting¶
Emails Not Sending¶
# Check SMTP connectivity
docker compose exec sentrikat flask smtp test --to [email protected]
# View mail-related logs
docker compose logs sentrikat | grep -i smtp
Webhook Failures¶
- Open the Alerts page, which lists what was sent, when, and whether it was delivered
- Check the webhook URL in the organization's Webhook tab and use the test button
- Make sure the receiving endpoint is reachable from the SentriKat server
Next Steps¶
- Configure organizations for per-org alert routing
- Set up LDAP/SSO so alert recipients match directory users
- API webhook configuration for programmatic management