Webhooks enable your applications to receive real-time notifications when events occur in your monitoring and observability systems. This eliminates the need for polling and ensures your systems stay synchronized with alerts, metrics, and infrastructure changes across all integrated platforms.
Unizo normalizes webhook events from Datadog, New Relic, Splunk, Prometheus, Grafana, and other observability providers into a consistent format. This means you write your webhook handler once and it works with all supported platforms.
Webhook Configuration
To set up webhooks for your integration, visit the Unizo Console Webhooks section for step-by-step configuration guide.
These are the event types currently supported by Unizo's Observability webhooks. The list keeps growing as we add support for more events across different platforms.
Event Type
Description
Trigger Conditions
alert:triggered
An alert has been triggered
Threshold breach, anomaly detection, or custom conditions
alert:resolved
An alert has been resolved
Metrics return to normal or manual resolution
alert:acknowledged
An alert has been acknowledged
User acknowledges the alert
monitor:created
A new monitor has been created
Monitor creation via UI or API
monitor:updated
Monitor configuration has been modified
Threshold, condition, or notification changes
monitor:deleted
A monitor has been deleted
Monitor removal from the system
dashboard:created
A new dashboard has been created
Dashboard creation via UI or API
dashboard:updated
Dashboard has been modified
Widget additions, layout changes, or filter updates
metric:anomaly_detected
Anomaly detected in metrics
ML-based anomaly detection or statistical deviation
Webhook Security
All webhooks from Unizo include security headers to verify authenticity:
Headers
Header
Description
x-unizo-event-type
The type of event that triggered the webhook
x-unizo-signature
HMAC SHA-256 signature for request validation
x-unizo-timestamp
Unix timestamp when the event was sent
x-unizo-delivery-id
Unique identifier for this webhook delivery
Signature Verification
Verify the authenticity of incoming webhooks using HMAC SHA-256:
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/observability - Route by category (observability, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
Content-Type
string
Yes
Always application/json
x-unizo-event-type
string
Yes
Event type: alert:triggered
x-unizo-webhook-id
string
Yes
Unique webhook configuration ID
x-unizo-delivery-id
string
Yes
Unique delivery ID for idempotency
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
alert.id
string
Yes
Unique alert identifier
alert.name
string
Yes
Alert name
alert.description
string
No
Alert description
alert.severity
string
Yes
Severity level: critical, high, medium, low
alert.status
string
Yes
Current status: triggered, acknowledged, resolved
alert.metric
object
Yes
Metric that triggered the alert
alert.threshold
object
Yes
Threshold configuration
alert.triggeredDateTime
string
Yes
ISO 8601 timestamp
alert.tags
array
No
Associated tags
integration
object
Yes
Integration details
Example Payload
{
"type":"alert:triggered",
"version":"1.0.0",
"alert":{
"id":"alert-123456",
"name":"High CPU Usage - Production Server",
"description":"CPU usage exceeded 90% for more than 5 minutes",
"severity":"critical",
"status":"triggered",
"metric":{
"name":"system.cpu.usage",
"value":92.5,
"unit":"percentage",
"host":"prod-web-01"
},
"threshold":{
"operator":"greater_than",
"value":90,
"duration":"5m"
},
"triggeredDateTime":"2024-01-15T14:00:00Z",
"tags":[
"production",
"web-server",
"critical"
]
},
"integration":{
"type":"OBSERVABILITY",
"id":"int_123456",
"name":"Datadog Production",
"provider":"datadog"
}
}
Response
200 OK
Webhook processed successfully
400 Bad Request
Invalid webhook payload
401 Unauthorized
Invalid or missing signature
Alert Resolved
alert:resolved
Triggered when an alert condition is no longer met
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
Content-Type
string
Yes
Always application/json
x-unizo-event-type
string
Yes
Event type: alert:resolved
x-unizo-webhook-id
string
Yes
Unique webhook configuration ID
x-unizo-delivery-id
string
Yes
Unique delivery ID for idempotency
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
alert.id
string
Yes
Unique alert identifier
alert.name
string
Yes
Alert name
alert.severity
string
Yes
Severity level
alert.status
string
Yes
Current status: resolved
alert.duration
string
Yes
How long the alert was active
alert.resolvedDateTime
string
Yes
ISO 8601 timestamp
alert.resolvedBy
string
Yes
Resolution method: auto, manual
integration
object
Yes
Integration details
Example Payload
{
"type":"alert:resolved",
"version":"1.0.0",
"alert":{
"id":"alert-123456",
"name":"High CPU Usage - Production Server",
"severity":"critical",
"status":"resolved",
"duration":"15m30s",
"resolvedDateTime":"2024-01-15T14:15:30Z",
"resolvedBy":"auto",
"metric":{
"name":"system.cpu.usage",
"value":75.2,
"unit":"percentage",
"host":"prod-web-01"
}
},
"integration":{
"type":"OBSERVABILITY",
"id":"int_123456",
"name":"Datadog Production",
"provider":"datadog"
}
}
Response
200 OK
Webhook processed successfully
400 Bad Request
Invalid webhook payload
401 Unauthorized
Invalid or missing signature
Alert Acknowledged
alert:acknowledged
Triggered when a user acknowledges an alert
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
Content-Type
string
Yes
Always application/json
x-unizo-event-type
string
Yes
Event type: alert:acknowledged
x-unizo-webhook-id
string
Yes
Unique webhook configuration ID
x-unizo-delivery-id
string
Yes
Unique delivery ID for idempotency
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
alert.id
string
Yes
Unique alert identifier
alert.name
string
Yes
Alert name
alert.status
string
Yes
Current status: acknowledged
acknowledgment.note
string
No
Acknowledgment note
acknowledgment.acknowledgedBy
object
Yes
User who acknowledged
acknowledgment.acknowledgedDateTime
string
Yes
ISO 8601 timestamp
integration
object
Yes
Integration details
Example Payload
{
"type":"alert:acknowledged",
"version":"1.0.0",
"alert":{
"id":"alert-123456",
"name":"High CPU Usage - Production Server",
"status":"acknowledged"
},
"acknowledgment":{
"note":"Investigating the issue, likely due to traffic spike",
Triggered when a new monitor is created in the observability system
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Widget additions, layout changes, or filter updates
Dashboard Created
dashboard:created
Triggered when a new dashboard is created
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture
Headers
Name
Type
Required
Description
Content-Type
string
Yes
Always application/json
x-unizo-event-type
string
Yes
Event type: dashboard:created
x-unizo-webhook-id
string
Yes
Unique webhook configuration ID
x-unizo-delivery-id
string
Yes
Unique delivery ID for idempotency
x-unizo-signature
string
Yes
HMAC SHA-256 signature
Request Body Schema
Property
Type
Required
Description
type
string
Yes
Event type identifier
version
string
Yes
Webhook payload version
dashboard.id
string
Yes
Unique dashboard identifier
dashboard.name
string
Yes
Dashboard name
dashboard.description
string
No
Dashboard description
dashboard.widgets
array
Yes
List of widgets
dashboard.createdDateTime
string
Yes
ISO 8601 timestamp
dashboard.createdBy
object
Yes
User who created the dashboard
integration
object
Yes
Integration details
Example Payload
{
"type":"dashboard:created",
"version":"1.0.0",
"dashboard":{
"id":"dashboard-789",
"name":"Production Overview",
"description":"Main production environment metrics",
ML-based anomaly detection or statistical deviation
Anomaly Detected
metric:anomaly_detected
Triggered when an anomaly is detected in metrics
POSThttps://api.yourapp.com/webhooks/unizo/scm
Best Practice: Use a dedicated webhook endpoint that can handle multiple event types. You have two architectural options: • Single endpoint:https://api.yourapp.com/webhooks/unizo - Route all events to one handler • Category-based endpoints:https://api.yourapp.com/webhooks/unizo/scm - Route by category (scm, ticketing, etc.) for microservices architecture