How to Use Webhooks to Integrate Trackz with Any Tool
Send Trackz alert payloads as HTTP POST requests to any endpoint — connect to Zapier, Make, custom servers, or any tool that accepts webhooks.
Updated April 21, 2026
Overview
The Webhook integration POSTs a JSON payload to any URL whenever an alert fires. This makes it possible to connect Trackz to virtually any tool — automation platforms like Zapier or Make, custom backend servers, incident management systems like PagerDuty, or even another monitoring service.
Prerequisites
- An HTTP endpoint that accepts POST requests with a JSON body
- A Trackz account on any plan
Step 1: Add the Integration in Trackz
- In your Trackz dashboard, go to Settings → Integrations.
- Click Add Integration.
- Select Webhook from the integration picker.
- Enter a name for this integration.
- Enter the destination URL (must be a valid
https://orhttp://address). - Optionally enter a signing secret for payload verification (see Securing Webhooks below).
- Select which event types should trigger this webhook, or leave all unchecked to receive every event.
- Click Save.
Payload Structure
Trackz sends a POST request with Content-Type: application/json. The body follows this schema:
{
"title": "Downtime detected: api.example.com",
"message": "Your monitor api.example.com is not responding. HTTP status: 503.",
"meta": {
"monitor": "api.example.com",
"event": "uptime.down",
"statusCode": 503,
"url": "https://api.example.com/health",
"timestamp": "2026-04-21T14:32:00.000Z"
}
}
Supported Event Types
| Event | Triggered when |
|---|---|
uptime.down |
A monitor fails to respond or returns an error status code |
uptime.up |
A previously failing monitor recovers |
ssl.expiring |
An SSL certificate is within the expiry warning window |
smtp.fail |
An SMTP connectivity check fails |
performance.regression |
A Lighthouse or Core Web Vitals score drops below threshold |
Leave the event filter empty to receive all event types.
Securing Webhooks
If you enter a signing secret when creating the integration, Trackz includes an X-Trackz-Signature header with each request. You can verify this header in your receiving endpoint to confirm the request genuinely came from Trackz.
Note: Signature verification is currently reserved for a future release. The secret is stored and will be used for HMAC signing once the feature ships.
Integration Examples
Zapier
- In Zapier, create a new Zap and choose Webhooks by Zapier → Catch Hook as the trigger.
- Copy the webhook URL Zapier provides.
- Paste it into the URL field in Trackz when adding the integration.
- Send a test from Trackz, then click Test trigger in Zapier to capture the payload.
- Map
title,message, andmetafields to your desired action (Slack, email, Jira, etc.).
Make (formerly Integromat)
- In Make, add a Webhooks → Custom Webhook module as the trigger.
- Copy the generated URL.
- Paste it into Trackz and send a test payload.
- Make will detect the structure automatically — map fields to any downstream module.
Custom Server (Node.js example)
app.post('/trackz-webhook', (req, res) => {
const { title, message, meta } = req.body;
console.log(`[${meta.event}] ${title}`);
// your logic here
res.sendStatus(200);
});
Trackz considers a delivery successful if the endpoint returns any 2xx status code.
Testing Your Integration
- Use webhook.site to get a temporary URL for testing — paste it into Trackz as the webhook URL.
- Click Send test in Settings → Integrations.
- webhook.site will display the raw request headers and JSON body in real time.
Troubleshooting
Delivery fails with a non-2xx response
- Check Settings → Integrations → [your integration] → History for the exact error returned by your endpoint.
- Ensure your endpoint is publicly reachable — local
localhostURLs will not work. Use ngrok to expose a local server during development.
Webhook fires for every alert, ignoring my event filter
- Verify that you saved the integration after selecting events. Re-open the integration detail page to confirm the filter is applied.
Payload arrives but fields are missing
- Some events include fewer metadata fields than others. For example,
ssl.expiringwill not include astatusCode. Always treatmetafields as optional in your receiving code.