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 an integration
  3. Select Odown and click Save
  4. Open the new 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 Routes after creation
  4. Click Save and copy the generated push URL

Configure Odown


1

Add a webhook channel

  1. Sign in to Odown, go to Alert Settings for the account, click Add more channels, and choose Webhooks
  2. Paste the complete Flashduty push URL as the URL
  3. Under Sending cases, tick A check recovers, A check fails and, for certificate notices, An SSL certificate is due to expire in (none is ticked by default, and an unticked case is never sent)
  4. Open the Test Webhook drop-down next to the URL and pick Recovered Test, Failure Test or Expired SSL Test: Flashduty answers with success and creates no alert
  5. Save the channel
2

Attach the channel to your checks

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). Odown sends ALERT_FAILURE when a check goes down, ALERT_RECOVERY when it recovers, and ALERT_EXPIRED_SSL as the certificate approaches expiry.
3

Verify the lifecycle

Let a check actually fail (for example, point it at an unreachable address temporarily) and confirm Flashduty receives an active alert. 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.