Integrations
Webhooks
Send custom HTTP requests when service status changes
Webhooks let you send HTTP requests to any endpoint when a monitored service changes status. Use them to trigger automations, update dashboards, create tickets, or integrate with any tool that accepts HTTP requests.
Paid Plan Required
Webhooks are available on the Hobby, Startup, and Pro plans. Upgrade your plan to get started.
Quick Start
Add a Webhook
- Go to statusfield.com/integrations
- Click the Webhooks card
- Click Add Webhook
- Enter a name (e.g., "PagerDuty", "Jira Automation")
- Enter the webhook URL (must be HTTPS)
- Select the HTTP method (POST, GET, PUT, PATCH, or DELETE)
- Optionally configure authentication and custom headers
- Click Add Webhook
HTTPS Required
Webhook URLs must use HTTPS. HTTP URLs are not accepted for security reasons.
Configure Authentication (Optional)
If your endpoint requires authentication, select one:
- None — No authentication header sent
- Bearer Token — Sends
Authorization: Bearer <your-token>header - Basic Auth — Sends
Authorization: Basic <your-credentials>header
Your authentication credentials are encrypted and stored securely.
Add Custom Headers (Optional)
You can add custom HTTP headers in JSON format:
{
"X-Custom-Header": "value",
"X-Source": "statusfield"
}Test It Out
- Click the menu (⋮) next to your webhook integration
- Select Test Webhook
- Verify that your endpoint received the test request
Configure Notifications
When adding a monitor for a service:
- Go to statusfield.com/notifications
- Find the service in the list
- Configure when you want to receive notifications (status by column)
- On any status change
- On maintenance status
- On degraded status
- On major outage status
- On partial outage status
All statuses will notify you when the component went back to operational status.
Webhook Payload
When a status change occurs, Statusfield sends a JSON payload to your endpoint. Here's the full structure:
{
"id": "unique-delivery-id",
"event": "status_change",
"level": "component",
"service": {
"name": "GitHub",
"slug": "github",
"lastCheckedAt": "2026-01-30T10:15:30Z"
},
"component": {
"id": "component-id",
"name": "API Requests",
"status": "Degraded",
"statusCode": "DEGRADED",
"previousStatus": "Operational",
"previousStatusCode": "OPERATIONAL"
},
"affectedComponents": [
{
"id": "child-id",
"name": "REST API",
"status": "Degraded",
"statusCode": "DEGRADED",
"previousStatus": "Operational",
"previousStatusCode": "OPERATIONAL"
}
],
"statusChange": {
"from": "Operational",
"fromCode": "OPERATIONAL",
"to": "Degraded",
"toCode": "DEGRADED",
"direction": "worsening",
"timestamp": "2026-01-30T10:15:35Z"
},
"url": "https://statusfield.com/services/github"
}Payload Fields
| Field | Description |
|---|---|
id | Unique delivery identifier |
event | Always "status_change" |
level | "service" for top-level changes, "component" for component changes |
service | Service name, slug, and last check time |
component | Affected component with current and previous status |
affectedComponents | Array of child components that changed |
statusChange.direction | "worsening", "improving", or "unchanged" |
statusChange.timestamp | ISO 8601 timestamp of the change |
url | Link to the service page on Statusfield |
Status Codes
| Status Code | Human-Readable |
|---|---|
OPERATIONAL | Operational |
DEGRADED | Degraded |
PARTIAL_OUTAGE | Partial Outage |
MAJOR_OUTAGE | Major Outage |
MAINTENANCE | Maintenance |
UNKNOWN | Unknown |
HTTP Methods
Choose the HTTP method that matches your endpoint:
- POST (default) — Standard for webhook receivers. Payload sent as JSON body.
- PUT — Payload sent as JSON body.
- PATCH — Payload sent as JSON body.
- GET — No request body sent. Use for simple ping-style endpoints.
- DELETE — No request body sent.
Content-Type
For POST, PUT, and PATCH requests, the payload is sent as application/json.
Delivery & Retries
- Notifications are sent within seconds of a status change
- Failed deliveries are retried up to 3 times with increasing delays
- Your endpoint should respond with a 2xx status code to confirm receipt
- Requests time out after 10 seconds
- HTTP redirects are not followed for security reasons
Use Cases
Webhooks are flexible enough for many integrations:
- Incident management — Create tickets in PagerDuty, Opsgenie, or ServiceNow
- Project management — Post to Jira, Linear, or Asana when services go down
- Custom dashboards — Feed status data into Grafana or Datadog
- Automation — Trigger Zapier, Make, or n8n workflows
- Internal tools — Update your own systems with real-time status data
- Chat tools — Send to Microsoft Teams, Telegram, or any chat with an incoming webhook
Managing Webhooks
Edit or Remove
- Open statusfield.com/integrations > Webhooks
- Click the menu (⋮) next to the integration
- Select Edit to update the URL, method, authentication, or headers
- Select Delete to remove the integration
Warning
Deleting a webhook integration removes all associated notification rules. This cannot be undone.
Troubleshooting
Not Receiving Webhook Notifications?
Common issues and solutions:
1. Endpoint Returns Non-2xx Status
- Your endpoint must return a 2xx status code (e.g., 200, 201, 204)
- Check your server logs for errors
- Verify the endpoint is accessible from the internet
2. HTTPS Certificate Issues
- Ensure your SSL certificate is valid and not expired
- Self-signed certificates may cause delivery failures
3. Authentication Errors
- Verify your Bearer token or Basic Auth credentials are correct
- Check that the authentication method matches what your endpoint expects
4. Timeout
- Webhook requests time out after 10 seconds
- Make sure your endpoint responds quickly — process the payload asynchronously if needed
5. Firewall or IP Restrictions
- Ensure your endpoint accepts requests from external sources
- Webhook requests originate from Cloudflare's IP ranges
Security
- All webhook URLs must use HTTPS
- Authentication credentials are encrypted in our database
- Custom headers are encrypted in our database
- HTTP redirects are rejected to prevent URL hijacking
- Each delivery has a unique
idfor deduplication
Need Help?
Contact our support team at [email protected]