Prerequisites
- Network access from the sender to the OpenCluster intake endpoint over HTTPS.
- A sender that can set the
X-OpenCluster-Tokenheader and send JSON. - The Admin role in OpenCluster.
Least-privilege access
The sender needs permission only to reach its generated webhook URL and read the one-time secret. The credential authenticates this Integration only; it is not a product API credential.Connect
Create a Generic Webhook integration, then copy its webhook URL and one-time secret. Send each alert to that URL with the secret inX-OpenCluster-Token.
eventId, startedAt, and deduplicationKey for the matching resolution,
set status to resolved, and add resolvedAt. Repeating the same phase is safe. Reusing
an eventId with different content in the same phase returns 400.
Schema limits
Unknown or duplicate fields, invalid UTF-8, trailing JSON, and an Organization identifier
are rejected. Annotation text is displayed as untrusted source content. OpenCluster never
fetches
sourceUrl during intake.
Verify
Send one firing event and confirm the response is202 Accepted. Open the matching
Webhook Delivery, Alert Event, and Incident. An exact retry should return 200 OK without
creating another lifecycle phase.
Evidence available
The Alert Event supplies its title, severity, lifecycle timestamps, labels, annotations, deduplication key, and optional source URL. It creates Incident context but does not let OpenCluster read the sender or the linked source URL during an Investigation.Limitations
Generic Webhook performs no field mapping or enrichment. The sender must preserve one stable lifecycle identity and canonical schema. Connect a separate evidence Integration when an Investigation needs runtime, change, or conversation data.Delivery responses
Troubleshooting
400: validate the canonical fields, lifecycle identity, timestamps, and body size.401: check the Integration ID and current secret; rotate it if the stored value is uncertain.429or503: retry with bounded backoff and preserve the same lifecycle identity.