Slack
Route policy denial alerts, budget warnings, and human-in-the-loop approval requests to Slack channels. Approvers can act on HITL requests directly from Slack.
Prerequisites
- A Slack workspace where you have permission to add an app or create an incoming webhook
- AIControls admin access
Configure the integration
- In Slack, go to api.slack.com/apps, create a new app, and enable Incoming Webhooks. Copy the webhook URL for the target channel.
- In AIControls, go to Settings → Integrations → Slack and click Add integration.
- Paste the webhook URL and give the integration a name (e.g.
#security-alerts). - Select which event types should be delivered to this channel.
- Click Save. AIControls sends a test message immediately — confirm it appears in the channel.
You can configure multiple Slack integrations pointing to different channels — for example, routing budget alerts to #finops and policy denials to #security.
Which events fire
| Event | Default channel behaviour |
|---|---|
| Policy denial | Sent to all configured Slack integrations with the tool_denied event enabled |
| Budget alert (80%) | Sent when org or team spend crosses the alert threshold |
| Budget exceeded | Sent when the cap is hit and requests start being blocked |
| HITL pending | Sent to the approver channel with Approve / Deny action buttons |
Event routing is configurable per integration in Settings → Notifications → Routing.
HITL approvals in Slack
When a HITL approval request fires, AIControls posts an interactive message with Approve and Deny buttons. Clicking either responds immediately — no browser login required. The outcome is recorded in the Audit Log with the approver's Slack identity.
HITL interactive buttons require the Slack app to have Interactivity enabled and a valid Request URL pointing to your AIControls workspace. See Settings → Integrations → Slack → Advanced for the URL to paste into your Slack app config.
Troubleshooting
Test message not appearing
Confirm the incoming webhook URL is for the correct workspace and channel. Slack disables webhooks for deleted channels — create a new webhook if the channel was removed and recreated.
HITL buttons not working
Verify the Interactivity Request URL in your Slack app config matches https://YOUR_ORG.aicontrols.dev/api/v1/integrations/slack/actions. The endpoint must be reachable from Slack's servers.