How to Set Up Custom Webhook Alerts in TwoPulse
TwoPulse can send alert notifications to any HTTPS endpoint you control. Unlike Slack and Microsoft Teams (which use formatted cards), the Webhook channel posts a simple JSON payload—ideal for Discord, PagerDuty, Zapier, or your own incident tooling.
What you need
- An HTTPS webhook URL from your tool (or a temporary URL from a request inspector for testing)
- A TwoPulse account with access to Settings
- About five minutes
1. Create or copy a webhook URL
In your destination app, create an incoming webhook and copy the URL. Examples:
- Discord — Channel settings → Integrations → Webhooks → New Webhook → Copy Webhook URL
- PagerDuty / Ops tools — Use the integration’s HTTPS endpoint from their docs
- Your own API — Any endpoint that accepts
POSTwithapplication/json
The URL must start with https://. Slack and Microsoft Teams URLs belong in those Settings cards instead—TwoPulse rejects them on the custom Webhook card so you get the right message format.
2. Add the webhook in TwoPulse
- Sign in to TwoPulse and open Settings
- Find the Webhook card
- Enter a short name (for example
DiscordorPagerDuty) - Paste the HTTPS webhook URL
- Click Add
The status badge turns Active when at least one webhook is enabled. You can add multiple endpoints, pause delivery with the toggle, or remove a webhook anytime without affecting email, Slack, or Teams.
3. What gets sent
When a monitored service crosses your failure threshold—or recovers—TwoPulse POSTs JSON like:
{
"event": "down",
"service": "API Health",
"url": "https://api.example.com/health",
"consecutive_failures": 3,
"status_code": 503,
"error_message": "Expected status 200, got 503",
"timestamp": "2026-08-27T12:00:00Z",
"timestamp_utc": "27 Aug 2026, 12:00 UTC"
}
event is one of down, down_reminder, or recovered. Reminder and recovery payloads may also include downtime_seconds, reminder_number, and offset_hours.
Tips
- Use a dedicated alerts channel or integration so operational noise stays separate
- Name each webhook clearly if you fan out to more than one tool
- Treat the URL like a secret—rotate it in the destination app if it leaks, then update Settings
- Keep at least one webhook enabled if you rely on this channel; TwoPulse won’t let you disable the last remaining one while others still exist in the list
Troubleshooting
- Invalid webhook URL — Use HTTPS with a real host. Don’t paste Slack (
hooks.slack.com) or Teams Workflows URLs here - No requests arriving — Confirm the webhook is listed and enabled, your receiver accepts POST JSON, and the service has actually crossed the alert threshold (Celery worker/beat must be running in production)
- 4xx/5xx from your endpoint — Check auth headers or body expectations on your side; TwoPulse sends a plain JSON body with no custom auth headers
Next steps
Once a custom webhook is connected, keep monitoring as usual. TwoPulse will deliver down, reminder, and recovery events to every enabled HTTPS endpoint—alongside email, Slack, and Teams if those are configured too.