storyId (the Site Operations story ID) identifies one event: Flashduty triggers or updates the alert while the story is open, and recovers it when storyStatus becomes RESOLVED (or endDate is set).
In Flashduty On-call
Get the push URL in either of the following ways.
Use a dedicated integration
- In the Flashduty console, select Channel and open a channel
- Select Configuration → Integrations → Private integration, then click Add an integration
- Select Cato and click Save
- Open the generated integration card and copy the Push URL
Use a shared integration
- In the Flashduty console, select Integration Center → Alert Events
- Select Cato and enter an integration name
- Configure the default route and choose a channel; you can add more rules under Routes later
- Click Save and copy the generated Push URL
In Cato
You need permission to manage Subscriptions in CMA.
1
Create the webhook
- In CMA, go to Account > Subscriptions, open the Webhooks tab, and click New Webhook
- Enter a name and enable it
- Choose POST (Create) as the request method and paste the full Flashduty push URL, which includes
integration_key - No authentication is needed;
integration_keyis already in the URL
2
Paste the body template
Set the body to Custom and paste the template below. Cato replaces each Field definitions: Understanding the JSON Fields for Alert Integrations. Keep
${field:} with the field value; the text after the colon is the default when the field has no value (empty here):storyId, correlationId, storyStatus and endDate; they decide how alerts are merged and recovered.3
Subscribe and verify
- Under Account > Subscriptions, add this webhook as a delivery target for the alert types you want (Site Operations stories and so on)
- Click Test on the webhook page. The Cato documentation does not show the test request body, and Flashduty handles it as a normal alert: without
storyIdandcorrelationIdit returns a parameter error, otherwise it opens a separate alert that you close manually after the check - Trigger a real event (for example, disconnect the Socket of a test site), confirm Flashduty receives an active alert, then confirm it recovers when the story resolves
Alert Key
Flashduty uses
storyId as the Alert Key, and correlationId when storyId is empty. Cato defines storyId as “Unique identifier for the Site Operations story” and correlationId as “Unique identifier used to correlate related events, messages, or operations”. Changes to title, level or time never change the Alert Key. A request with neither field is rejected with the field name.
Status and severity
An alert recovers when
storyStatus is RESOLVED or endDate is not empty; other states such as OPEN and IN_PROGRESS trigger or update it. Severity comes from level:
Labels
Troubleshooting
- Cato test fails: confirm the URL is complete, includes
integration_key, and the method is POST - Flashduty returns a parameter error: confirm the body is valid JSON and contains
storyIdorcorrelationId. If a title or subject contains double quotes, Cato’s substitution may break the JSON; remove thetitleorsubjectfield from the template - Alert does not recover: confirm the template keeps
storyStatusandendDate, and that the resolution notification is also delivered to this webhook