Overview
The generic webhook accepts simple JSON from any system that canPOST — scripts, CI/CD, internal jobs, tools with no dedicated integration.
1. Create the alert source
Under Alert sources, create a source of type Generic. Copy the URL and the token.2. Send the alert
202 Accepted.
Accepted fields
If
status is absent, the alert is treated as a trigger. If it is present with a value other than firing or alerting, the alert is accepted with 202 but no incident is created — including for resolved.Grouping
Repeated sends with the sameexternalId for the same service are aggregated into the open incident instead of creating duplicates. Use a stable externalId per problem — the job name, the check identifier, the rule key.
Examples
Troubleshooting
Returned 202 but no incident appeared
Returned 202 but no incident appeared
The
status field probably has a value other than firing or alerting — in which case the alert is accepted and discarded. Send firing or omit the field.Duplicate incidents
Duplicate incidents
The
externalId is changing between sends (for example, by including a timestamp). Use a stable identifier per problem.Incident with no service or no owner
Incident with no service or no owner
The
service field does not match any service in the organization, or the service has no responsible team with an active schedule.How do I resolve the incident?
How do I resolve the incident?
From the dashboard or the app. The generic webhook does not auto-resolve.