Skip to main content
Webhooks let PulseGuard push real-time event notifications to your own infrastructure instead of requiring you to poll the API. When a monitored service goes down, recovers, or triggers an incident, PulseGuard sends an HTTP POST request to a URL you configure — with a JSON payload describing exactly what happened. You can use webhooks to build custom alerting, sync incidents to an on-call platform, post to Slack, or trigger automated remediation scripts.

Set up a webhook

1

Open Notification Channels

In the PulseGuard dashboard, navigate to Notification Channels.
2

Add a Webhook channel

Click Add Channel, select Webhook, and enter the full HTTPS URL that PulseGuard should POST to.
3

Assign the channel to monitors

Associate the new channel with one or more monitors from the monitor’s Alert Settings tab. PulseGuard will send a webhook for every qualifying event on those monitors.
4

Test the endpoint

Use the Send test event button to verify that your endpoint receives and processes the payload correctly before relying on it in production.
Always use an HTTPS endpoint. Plain HTTP URLs are rejected to protect the integrity of event data in transit.

Events that trigger webhooks

PulseGuard sends a webhook for each of the following events:

Webhook payload

Every webhook delivers a JSON body with a consistent structure regardless of the event type.

Handle webhooks in your application

Your endpoint must respond with a 2xx status code within 5 seconds. If it does not, PulseGuard marks the delivery as failed. Below is a minimal Express.js handler that receives and processes PulseGuard webhooks.
webhook-handler.js
Send res.sendStatus(200) before running any slow logic (database writes, external API calls). This keeps your response time well under the 5-second timeout and prevents duplicate deliveries.

Verify webhook authenticity

PulseGuard includes a User-Agent header on every webhook request:
Check for this header as a basic guard against spoofed requests arriving at your endpoint.

Best practices

Respond fast

Always reply with 2xx within 5 seconds. Offload slow work to a background queue or async function after sending the response.

Use HTTPS only

Configure only HTTPS webhook URLs. Plain HTTP endpoints are not accepted, as they expose event data to interception.

Handle duplicates

Webhook deliveries are at-least-once. Use the combination of monitorId + timestamp as an idempotency key when writing events to your database.

Check User-Agent

Validate the User-Agent: PulseGuard/1.0 header to filter out requests that did not originate from PulseGuard.
If your endpoint consistently fails to respond within 5 seconds or returns non-2xx status codes, PulseGuard may disable the channel to protect delivery queues. Check your dashboard’s Notification Channels page for delivery error details.