Skip to content

Generic Webhook ​

Send JSON payloads to any HTTP endpoint. Use for custom integrations with PagerDuty, Uptime Kuma, or any service that accepts HTTP requests.

Configuration ​

FieldDescriptionDefaultRequired
WebhookWEBHOOK credential profile holding the target URL and, optionally, the authorization header (e.g., Bearer token)-✅
MethodPOST, PUT, or PATCHPOST❌
Content typeContent-Type header valueapplication/json❌
Extra headersAdditional headers (one per line, Key: Value)-❌
Payload templateCustom JSON with placeholders-❌

Setup Guide ​

  1. In DBackup: Connections → Channels → New channel → Generic Webhook
  2. Under Webhook, pick or create a credential profile holding the target URL and, if needed, the authorization header
  3. (Optional) Set the method in the Connection part, and extra headers and a payload template in the Message part
  4. Click Send test → Create channel

Default Payload ​

When no custom template is set, DBackup sends:

json
{
  "title": "Backup Successful",
  "message": "Job 'Production MySQL' completed successfully",
  "success": true,
  "color": "#00ff00",
  "timestamp": "2026-02-20T14:30:00.000Z",
  "eventType": "backup_success",
  "fields": [
    { "name": "Job", "value": "Production MySQL", "inline": true }
  ]
}

Custom Payload Templates ​

Use placeholders to create your own payload structure:

VariableDescriptionExample
Event titleBackup Successful
Summary messageJob 'Production' completed
Boolean (as string)true / false
Status hex color#00ff00
ISO 8601 timestamp2026-02-20T14:30:00.000Z
Event type identifierbackup_success
JSON array of fields[{"name":"Job","value":"Prod"}]

INFO

Variable names must match the pattern [a-zA-Z0-9_]+ - no hyphens or special characters.

Template examples (PagerDuty, Uptime Kuma, Simple Text)

PagerDuty:

json
{
  "routing_key": "YOUR_ROUTING_KEY",
  "event_action": "trigger",
  "payload": {
    "summary": "{{title}}: {{message}}",
    "severity": "critical",
    "source": "dbackup"
  }
}

Uptime Kuma (Push): No template needed - use the push URL directly:

https://uptime.example.com/api/push/TOKEN?status=up&msg={{message}}

Simple Text:

json
{ "text": "[{{title}}] {{message}}" }

Authentication ​

  • Bearer Token: Set Authorization to Bearer your-token
  • API Key: Use Custom Headers: X-API-Key: your-key
  • Basic Auth: Set Authorization to Basic <base64> (generate with echo -n "user:pass" | base64)

Troubleshooting ​

401 - Unauthorized ​

Verify the Authorization header value. Check that the token hasn't expired and has the required permissions.

400 - Bad Request ​

Verify your custom template is valid JSON. Check the target service's expected payload format. Ensure Content-Type matches what the service expects.

Template Variables Not Replaced ​

Check for typos - variable names are case-sensitive. Only the documented variables above are supported.

Released under the GNU General Public License. | Privacy · Legal Notice