Alerts & Notifications
Route DENY / REQUIRE_APPROVAL / INCIDENT events to Slack, Discord, Microsoft Teams, Telegram, and your SIEM (CEF / OCSF / webhook).
Every decision Interven makes can route to one or more notification channels. Configure under Console โ Alerts โ Add channel. Each channel has its own event filter and minimum-severity threshold.
Supported channels
| Channel | Direction | Special features |
|---|---|---|
| Slack | Push | Interactive Approve / Deny buttons for REQUIRE_APPROVAL events |
| Discord | Push | One-way alerts via incoming webhook |
| Microsoft Teams | Push | One-way alerts via incoming webhook |
| Telegram | Push | One-way alerts via bot token |
| SIEM webhook | Push (HTTP POST) | CEF / OCSF / custom JSON formats |
| Decisions export | Pull (HTTPS) | NDJSON / CSV / Splunk / Datadog formats |
Slack (recommended for approvals)
Interactive Approve / Deny buttons land in the channel; the analyst clicks; the agent's
retry within 10 minutes auto-allows via RECENT_APPROVAL_GRANT. No context-switch to
the Console required.
Setup
- Create a Slack app at api.slack.com/apps.
- Enable Incoming Webhooks โ install to workspace โ add the webhook to your
target channel (e.g.
#interven-alerts). - Enable Interactivity & Shortcuts โ set Request URL to
https://api.intervensecurity.com/v1/slack/interactions. - Copy the Signing Secret from Basic Information.
- In Console โ Alerts โ Add Slack channel:
- Webhook URL: from step 2
- Signing secret: from step 4
- Events:
REQUIRE_APPROVAL+DENY+INCIDENT(your call) - Min severity:
HIGHis a good starting point
- Click Test โ a sample card with Approve / Deny buttons should land in Slack.
Card format
[Interven] REQUIRE_APPROVAL
agent: production-langgraph
tool: slack.post_message
why: PII_EGRESS, SENSITIVE_DATA_EGRESS
risk: HIGH (0.71)
[ Approve ] [ Deny ] [ View in Console ]Discord
- In your Discord server โ channel settings โ Integrations โ Webhooks โ New Webhook.
- Copy the webhook URL.
- Console โ Alerts โ Add Discord channel โ paste URL โ pick events + severity.
Discord doesn't support interactive buttons in webhooks today, so approvals are clickable links back to the Console.
Microsoft Teams
- In your Teams channel โ โฏ โ Connectors โ Incoming Webhook โ Configure.
- Name the connector, save, copy the URL.
- Console โ Alerts โ Add Teams channel โ paste URL โ pick events + severity.
Telegram
- Message @BotFather โ
/newbotโ save the bot token. - Add the bot to the channel you want alerts in.
- Get the chat ID: send a message to the channel, then
curl https://api.telegram.org/bot<TOKEN>/getUpdatesand readchat.id. - Console โ Alerts โ Add Telegram channel โ token + chat ID โ pick events.
SIEM webhook
For Splunk HEC, Datadog Logs, Sumo Logic HTTP source, or any HTTP endpoint that accepts JSON.
Setup
- Console โ Alerts โ Add SIEM webhook.
- URL: your SIEM intake endpoint.
- Format:
CEF(ArcSight, QRadar) /OCSF(cross-vendor) /JSON(custom). - Headers: add
Authorization: Splunk <hec-token>or equivalent. - Events: typically
ALL(DENY + APPROVAL + INCIDENT + SANITIZE).
Example CEF event
CEF:0|Interven|AIF|0.6|DENY|Secret egress blocked|7|
src=10.0.0.42 act=DENY app=slack.post_message
externalId=f1e2d3c4-... cs1Label=reasons cs1=SECRET_DETECTEDExample OCSF event (excerpt)
{
"metadata": { "product": { "name": "Interven AIF" }, "version": "0.6.0" },
"class_name": "Security Finding",
"severity_id": 4,
"activity_id": 2,
"finding_info": {
"title": "Secret egress blocked",
"uid": "f1e2d3c4-..."
},
"observables": [
{ "name": "interven.tool", "value": "slack" },
{ "name": "interven.operation", "value": "post_message" }
]
}Pull-mode (decisions export)
For audit teams that prefer a daily pull over real-time push, the
/api/telemetry/decisions/export endpoint returns the same data in five formats:
curl -sS -b /etc/interven/auditor-session.cookie \
"https://app.intervensecurity.com/api/telemetry/decisions/export?format=splunk&since=2026-06-01T00:00:00Z&until=2026-06-02T00:00:00Z" \
| curl -sS -X POST "https://splunk.your-corp.internal:8088/services/collector/event" \
-H "Authorization: Splunk $SPLUNK_HEC_TOKEN" --data-binary @-Formats: json ยท csv ยท splunk ยท datadog ยท ndjson.
Run this as a cron from an Auditor-role API session โ auditors can pull their own evidence without touching production data.
Severity & event filtering
Each channel has independent filters:
| Field | Values |
|---|---|
| Events | ALLOW ยท DENY ยท SANITIZE ยท REQUIRE_APPROVAL ยท INCIDENT (multi-select) |
| Min severity | LOW ยท MEDIUM ยท HIGH ยท CRITICAL |
| Tool filter | All / specific (e.g. only Slack + GitHub) |
| Agent filter | All / specific agent IDs |
Common setup: a quiet #interven-alerts Slack channel for HIGH+ approvals only,
plus a full firehose to your SIEM webhook for everything.