In Flashduty On-call
Create either a dedicated or shared Phare alert integration and copy its complete Push URL.
Configure Phare
A Phare webhook body is written by you from placeholders, so the template below is the one to paste. Flashduty parses exactly this template.
1
Create an outgoing webhook integration
- Sign in to Phare, go to Integrations, and create an Outgoing webhook
- Paste the complete Flashduty Push URL (including
integration_key) into Callback URL - The signing secret can stay auto-generated. Flashduty does not verify the signature
2
Set the payload template
Paste this JSON as the payload template. Set
event to the event key of the alert rule, for example uptime.incident.created or uptime.incident.recovered:3
Create alert rules
In Alert rules, create one rule per event for this webhook integration:
- Incident created (
uptime.incident.created) - Incident propagated (requires smart incident merging in Phare)
- Incident partially recovered (requires smart incident merging in Phare)
- Incident recovered (
uptime.incident.recovered)
4
Verify the lifecycle
Make a monitored target actually fail and confirm Flashduty receives an active alert, then restore the target and confirm the alert recovers. Phare’s documentation describes no test button for webhooks, so verify with a real event.
Alert Key
Flashduty uses
incident.id as the Alert Key. Phare’s created, propagated, partially recovered, and recovered events all expose the same incident entity, and {{ incident.id }} is that incident’s number, so every notification for one incident gets the same Alert Key. Changes to the title, description, state, impact, or affected monitors do not change it.
Status and severity
The event type comes from the
X-Phare-Request-Event header:
Severity comes from
incident.impact:
An incident is created when a monitor check fails, so an unknown impact is treated as Critical. A recovery event keeps the severity that
impact maps to and sets the status to recovered.
Troubleshooting
- Flashduty returns an invalid-parameter error: confirm the template is valid JSON,
incident.idis not empty, and the request carriesX-Phare-Request-Eventor aneventfield - The alert does not recover: confirm an Incident recovered rule exists and uses the same template
- No notification arrives: check the request and response in Phare’s webhook logs. Phare retries a non-2xx response up to 4 times
- You want certificate expiry events: those events carry no incident number, so this integration does not handle them