Skip to main content
Use an Odown webhook channel to send check down (ALERT_FAILURE), recovery (ALERT_RECOVERY), and SSL certificate expiry (ALERT_EXPIRED_SSL) notifications to Flashduty On-call. Each Odown check maps to one down alert: the alert triggers when the check goes down and recovers when the check is up again. SSL expiry notifications are point-in-time events and never recover.

In Flashduty On-call

You can get the integration push URL in either of the following ways.

Use a dedicated integration

  1. In the Flashduty console, go to Channels and open a channel
  2. Select Configuration → Integrations → Private integration, then click Add integration
  3. Select Odown and click Save
  4. Open the generated integration card and copy the Push URL

Use a shared integration

  1. In the Flashduty console, go to Integration Center → Alert Events
  2. Select Odown and enter an integration name
  3. Configure the default route and select a channel. You can add more rules under Routing after creation
  4. Click Save and copy the generated Push URL

Configure Odown

1

Add a webhook channel in Odown

Where: Odown › Alert Settings › Add more channels › WebhooksNone of the three Sending cases is ticked by default, and an unticked case is never sent. Save the channel.A webhook channel is global: after you save it, every check in the account is subscribed to it (the channel list shows the subscriber count, for example 1 / 1), so there is nothing to attach per check.Open the Test Webhook drop-down next to the URL and pick Recovered Test, Failure Test or Expired SSL Test to check the address: Flashduty answers with success and creates no alert, so the test only proves connectivity.
2

Verify the lifecycle

Let a check actually fail (for example, point it at an unreachable address temporarily) and confirm Flashduty receives an active alert and the integration shows Latest event time. Then restore the target and confirm the same alert recovers.

Payload

Odown POSTs each event as JSON. Flashduty parses it directly, so no template is needed: The alert title is the check name, or the monitored URL when the name is empty. SSL expiry alert titles start with SSL certificate expiring:.

Alert key

  • Down and recovery: Flashduty uses check.id as the Alert Key. ALERT_FAILURE and ALERT_RECOVERY for the same check carry the same check.id, so they land on one alert, while different checks produce different alerts. Renaming a check or a change in status code or run location does not change the Alert Key.
  • SSL expiry: the Alert Key is check.id plus :ssl_expiry. It is separate from the check’s down alert, so a recovery does not close the certificate alert, and repeated expiry notices for one check merge into one alert.
A request without check.id is rejected with a parameter error, because a recovery could not be matched to its alert.

Status and severity

Odown notifications carry no severity. A request with an empty or unknown event is rejected, so a request whose state is unclear never lands in the wrong alert lifecycle.

Turn on the auto-resolve timeout for one-shot alerts

An SSL expiry notice has no matching close notification, so these alerts do not recover automatically in Flashduty. Turn on the channel’s auto-resolve timeout and set it to 7 days, or close the alert by hand after you renew the certificate.

FAQ

No. The Test Webhook options in the Odown editor send the sample check from the Odown docs (named Check name, URL https://example.com). Flashduty recognizes it, answers with success, and creates no alert. If a real check happens to use that exact name and URL, its notifications are ignored too.
No. Notifications for one check carry the same check.id and merge into one alert.

Troubleshooting

  • Odown reports a failed delivery: check that the webhook URL is the complete push URL and includes integration_key
  • Flashduty returns a parameter error: check that the request is an Odown JSON notification with non-empty check.id and event
  • The alert does not recover: check that the check still uses the same webhook channel when it recovers; the recovery and down notifications must carry the same check.id
For the field reference, see the Odown docs Using Webhooks.