Custom Webhooks
Bifrost supports sending webhook notifications to any HTTP endpoint, not just Discord. When a non-Discord URL is configured, events are sent as flat JSON payloads via POST.
Auto-Detection
URLs starting with
https://discord.com/api/webhooks/
or
https://discordapp.com/api/webhooks/
are automatically detected as Discord webhooks and will receive rich embed messages.
All other HTTPS URLs receive flat JSON payloads.
Request Details
| Method | POST |
| Content-Type | application/json |
| User-Agent | Bifrost-Webhook/1.0 |
| Timeout | 10 seconds |
| Success | Any 2xx status code |
Event Payloads
admin_request
Chat Commands → !admin {
"event": "admin_request",
"server": "My HLL Server #1",
"player": "PlayerName",
"playerId": "76561198000000000",
"message": "Need help at HQ",
"timestamp": "2025-01-15T12:30:00Z",
"serverTimestamp": "2025-01-15T12:30:00Z",
"source": "bifrost"
}
banned_word_detected
Banned Words {
"event": "banned_word_detected",
"server": "My HLL Server #1",
"player": "PlayerName",
"playerId": "76561198000000000",
"message": "The full chat message",
"matchedWords": ["word1", "word2"],
"timestamp": "2025-01-15T12:30:00Z",
"serverTimestamp": "2025-01-15T12:30:00Z",
"source": "bifrost"
}
flagged_player_joined
Player Flags → Webhook {
"event": "flagged_player_joined",
"server": "My HLL Server #1",
"player": "PlayerName",
"playerId": "76561198000000000",
"flagType": "Suspicious",
"flagReason": "Multiple TK reports",
"timestamp": "2025-01-15T12:30:00Z",
"source": "bifrost"
} Field Reference
| Field | Type | Description |
|---|---|---|
| event | string | Event type identifier |
| server | string | Game server display name |
| player | string | In-game player name |
| playerId | string | Steam ID (64-bit) |
| message | string? | Chat message content (admin_request, banned_word_detected) |
| matchedWords | string[]? | Matched banned words (banned_word_detected only) |
| flagType | string? | Flag type name (flagged_player_joined only) |
| flagReason | string? | Reason for flagging (flagged_player_joined only) |
| timestamp | string | ISO 8601 UTC timestamp of when the event was processed |
| serverTimestamp | string? | ISO 8601 timestamp from the game server log |
| source | string | Always "bifrost" |
Where to Configure
Custom webhook URLs can be set in the following configuration pages within the Bifrost Control Panel. Simply paste any HTTPS URL instead of a Discord webhook URL.
- Configuration → Chat Commands — !admin webhook URL
- Configuration → Banned Words — Webhook tab
- Configuration → Player Flags — Webhook tab (main + per-flag)