Skip to main content
Use the Dead Man’s Snitch Webhooks integration to send snitch status notifications to Flashduty On-call. When a scheduled job does not check in during an interval, Dead Man’s Snitch sends a missing notification (snitch.missing) and a Flashduty alert triggers. When the job checks in again, Dead Man’s Snitch sends a recovery notification (snitch.reporting) and the alert recovers. According to the Dead Man’s Snitch pricing page, integrations are available from the Private Eye plan up. Error Notices (snitch.errored) are available only on the Surveillance Van plan.

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 Dead Man’s Snitch 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 Dead Man’s Snitch 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 Dead Man’s Snitch


1

Add a webhook integration

  1. Sign in to Dead Man’s Snitch and click Integrations in the top navigation bar
  2. In the Available Integrations list, click ADD next to Webhooks
  3. Paste the full Flashduty push URL (including integration_key) into the Hook URL field and click Save
  4. Click SEND TEST. Dead Man’s Snitch sends a sample snitch.reporting notification; Flashduty returns success and creates no alert, and Dead Man’s Snitch shows Webhook is working correctly.
2

Filter by tag (optional)

By default, an integration receives notifications for every snitch in the current case. To send only some snitches to Flashduty:
  1. On the Integrations page, click the Manage Tags icon next to the webhook
  2. Add one or more tags and click Save
After that, only snitches that carry at least one of these tags are sent to Flashduty. Remove all tags to send every snitch again.
3

Verify

  1. Create a snitch with the hourly interval and open its check-in URL (for example https://nosnch.in/<token>) in a browser for the first check-in
  2. Do not check in during the next full interval. When the interval ends (about one minute past the hour), Dead Man’s Snitch sends a missing notification and an active alert appears in Flashduty
  3. Open the check-in URL again. Dead Man’s Snitch sends a recovery notification and the alert in Flashduty recovers
If your plan includes Error Notices, you can also report a non-zero exit status with curl -d s=1 https://nosnch.in/<token> to trigger an errored notification, then check in normally with curl -d s=0 https://nosnch.in/<token>.

Payload fields


Dead Man’s Snitch sends the following fields as JSON: The alert title is the snitch name followed by its state, for example Nightly Backup is missing. When the name is empty, Snitch is used. Every alert also carries the label source=dead-mans-snitch.

Alert Key


The token is the check-in credential of the snitch: anyone who holds it can check in to the snitch. Flashduty therefore never shows the token in alerts and uses the MD5 hash of the token as the Alert Key:
  • The missing, errored, and recovery notifications of one snitch land on the same alert
  • Renaming a snitch or changing its notes or tags does not change the Alert Key
The token stays the same for the whole life of a snitch. After an alert recovers, the next time the same snitch goes missing a new alert is created; the recovered alert is not reopened. Deleting a snitch and creating it again produces a new token that is no longer linked to the old alert.

Status and severity


Dead Man’s Snitch webhooks carry no severity. Flashduty maps them as follows: type is case-insensitive. Requests without data.snitch.token, or with an empty or other type, are rejected.

FAQ


The Dead Man’s Snitch FAQ says email alerts repeat once per failed period until the snitch is paused or checks in again. With a webhook integration, a snitch on a 1-minute interval sent only one missing notification over several failed periods. Any repeated missing notification has the same Alert Key as the original alert and is merged into that active alert instead of creating a new one.
No. Pausing is a manual action: when Flashduty receives snitch.paused it creates no alert and does not close existing ones. A paused snitch unpauses automatically on its next check-in and sends snitch.reporting, which recovers the alert. If the snitch will not check in again, close the alert in Flashduty manually.
The first check-in of a new snitch also sends snitch.reporting. There is no active alert to recover at that point, so this notification creates nothing.

Troubleshooting


  • Flashduty returns a parameter error: make sure the push URL is complete (it includes integration_key) and the request body contains type and data.snitch.token
  • No notifications arrive: make sure your plan includes integrations. If the webhook has tag filters, make sure the snitch carries one of those tags
  • No errored notifications arrive: Error Notices are available only on the Surveillance Van plan, and the job must report its exit status when it checks in (s=$?) or run through the Dead Man’s Snitch Field Agent
  • The alert does not recover: Dead Man’s Snitch does not guarantee the order of notifications. If a recovery notification arrives before the missing notification, the alert does not recover automatically; close it in Flashduty manually