{% extends "base.html" %} {% block title %}{{ 'Edit' if mode == 'edit' else 'New' }} Webhook - SneakyScanner{% endblock %} {% block content %}

{{ 'Edit' if mode == 'edit' else 'Create' }} Webhook

Basic Information
A descriptive name for this webhook
The endpoint where alerts will be sent
Disabled webhooks will not receive notifications

Authentication

Alert Filters
Select which alert types trigger this webhook (leave all unchecked for all types)
Select which severities trigger this webhook (leave all unchecked for all severities)

Webhook Template
Customize the webhook payload using Jinja2 templates. Leave empty to use the default JSON format.
Choose from pre-built templates for popular services
Output format of the rendered template
Available variables: {{ "{{" }} alert.* {{ "}}" }}, {{ "{{" }} scan.* {{ "}}" }}, {{ "{{" }} rule.* {{ "}}" }} View all variables
Override the default Content-Type header (auto-detected from template format if not set)

Advanced Settings
Maximum time to wait for response
Number of retry attempts on failure

Cancel
Help
Payload Format

Default JSON payload format (can be customized with templates):

{
  "event": "alert.created",
  "alert": {
    "id": 123,
    "type": "cert_expiry",
    "severity": "warning",
    "message": "...",
    "ip_address": "192.168.1.10",
    "port": 443
  },
  "scan": {...},
  "rule": {...}
}
Custom Templates

Use Jinja2 templates to customize payloads for services like Slack, Discord, Gotify, or create your own format. Select a preset or write a custom template.

Authentication Types
  • None: No authentication
  • Bearer: Add Authorization header with token
  • Basic: Use username:password format
  • Custom: Define custom HTTP headers
Retry Logic

Failed webhooks are retried with exponential backoff (2^attempt seconds, max 60s).

{% endblock %} {% block scripts %} {% endblock %}