Notifications
AI Admin Panel sends notifications for important events like deploy completions, health alerts, and quota warnings. Configure one or more notification channels to stay informed.
Supported Channels
| Channel | Description | Configuration Required |
|---|---|---|
| Email notifications via your mail configuration | Settings → Email (SMTP or Resend) | |
| Slack | Messages to a Slack channel via webhook | Slack webhook URL |
| Discord | Messages to a Discord channel via webhook | Discord webhook URL |
| Telegram | Messages to a Telegram chat via bot | Bot token + chat ID |
| Webhook | HTTP POST to any URL | Endpoint URL |
Configuration
Navigate to Settings > Notifications to configure channels.
The mail transport itself is configured once under Settings → Email (SMTP host/port/credentials or a Resend API key, plus the from-address). That one configuration powers all panel mail: notification alerts, customer welcome emails, and the login system's invitation and password-reset emails (it is applied to Keycloak automatically — you never configure mail inside Keycloak).
| Field | Description |
|---|---|
| Provider | SMTP or Resend |
| SMTP Host / Port | SMTP server and port (587 for STARTTLS, 465 for SSL) |
| Username / Password | SMTP authentication (optional for open relays) |
| Resend API Key | Alternative to SMTP — uses Resend's delivery API |
| From Address | Sender address for all panel mail |
Slack
- Create a Slack webhook: go to your Slack workspace's Apps > Incoming Webhooks
- Create a webhook for the desired channel
- Paste the webhook URL in the panel
| Field | Description |
|---|---|
| Webhook URL | Slack incoming webhook URL |
| Channel | Override channel (optional, uses webhook default) |
Discord
- In your Discord server, go to Channel Settings > Integrations > Webhooks
- Create a webhook and copy the URL
- Paste the webhook URL in the panel
| Field | Description |
|---|---|
| Webhook URL | Discord webhook URL |
Telegram
- Create a bot via @BotFather on Telegram
- Get the bot token
- Add the bot to your group/channel and get the chat ID
| Field | Description |
|---|---|
| Bot Token | Telegram bot API token |
| Chat ID | Target chat/group/channel ID |
Webhook
Send raw HTTP POST requests to any endpoint. Useful for custom integrations, PagerDuty, Opsgenie, or your own automation.
| Field | Description |
|---|---|
| URL | Endpoint URL |
| Headers | Custom headers (e.g., Authorization: Bearer token) |
| Secret | Shared secret for HMAC signature verification |
The webhook payload is a JSON object:
{
"event": "deploy.success",
"service": "my-app",
"customer": "Acme Corp",
"timestamp": "2026-03-29T14:30:00Z",
"message": "Service my-app deployed successfully",
"details": {
"image": "myapp:latest",
"duration_seconds": 45
}
}
If a secret is configured, the panel includes an X-Signature-256 header with an HMAC-SHA256 signature of the payload body.
Notification Triggers
Configure which events trigger notifications:
| Event | Description | Default |
|---|---|---|
deploy.success | Service deployed successfully | On |
deploy.failure | Service deployment failed | On |
service.health.down | Service health check failing | On |
service.health.recovered | Service health recovered | On |
service.stopped | Service stopped (manual or crash) | Off |
service.started | Service started | Off |
backup.success | Backup completed successfully | Off |
backup.failure | Backup failed | On |
quota.warning | Customer approaching quota limit (80%) | On |
quota.exceeded | Customer exceeded quota | On |
ssl.expiring | SSL certificate expiring within 7 days | On |
Per-Channel Triggers
Each notification channel can subscribe to different triggers. For example:
- Slack: All deploy events and health alerts
- Email: Only failures and quota warnings
- Webhook: Everything (for logging/audit)
Notification Preferences
Admin Notifications
Admins receive notifications for all customers by default. Configure admin notification preferences in Settings > Notifications > Admin Preferences.
Customer Notifications
If customer portal access is enabled, customers can configure their own notification preferences for their services. Customer notification options are limited to events related to their own services.
Testing
Each configured channel has a Send Test button that sends a sample notification to verify the configuration is working correctly. Always test after configuring a new channel.