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
| Field | Description | Default | Required |
|---|---|---|---|
| Webhook URL | Target HTTP endpoint URL | - | ✅ |
| HTTP Method | POST, PUT, or PATCH | POST | ❌ |
| Content-Type | Content-Type header value | application/json | ❌ |
| Authorization | Authorization header value (e.g., Bearer token) | - | ❌ |
| Custom Headers | Additional headers (one per line, Key: Value) | - | ❌ |
| Payload Template | Custom JSON with placeholders | - | ❌ |
Setup Guide
- In DBackup: Notifications → Add Notification → Generic Webhook
- Enter the target URL
- (Optional) Configure method, auth header, custom headers, and payload template
- Click Test → Save
Default Payload
When no custom template is set, DBackup sends:
{
"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:
| Variable | Description | Example |
|---|---|---|
| Event title | Backup Successful |
| Summary message | Job 'Production' completed |
| Boolean (as string) | true / false |
| Status hex color | #00ff00 |
| ISO 8601 timestamp | 2026-02-20T14:30:00.000Z |
| Event type identifier | backup_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:
{
"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:
{ "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 withecho -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.