Push Nightingale alerts to the Flashcat alert response platform via the FlashDuty integration. Beginners can finish the setup step by step.
Overview
FlashDuty (flashcat.cloud) is the one-stop alert response platform offered by Flashcat, providing end-to-end capabilities such as alert aggregation, deduplication, on-call scheduling, claiming, escalation, notification, and reporting. Once Nightingale is integrated with FlashDuty, you can:
- Aggregate alerts from multiple Nightingale instances and multiple monitoring sources into a single platform for unified management;
- Configure on-call schedules, phone/SMS escalation by Collaboration Space (Channel) so no alert slips through;
- See the full lifecycle of an alert — “when triggered, who claimed, whether resolved” — on a single dashboard, plus quality reports.
The biggest difference compared to other notification channels: FlashDuty does not go through template rendering. Nightingale directly POSTs the raw alert events (an AlertCurEvent JSON array) to the FlashDuty integration URL, and FlashDuty handles display and processing on its side.
- Use case: you need advanced capabilities such as on-call scheduling, escalation, and post-incident reporting; or you want to consolidate alerts from multiple monitoring systems into one place.
- Prerequisites: a FlashDuty account, plus a Collaboration Space (Channel) already created in FlashDuty.
- The whole setup has three steps:
- Step 1: Create a Nightingale integration in FlashDuty
- Step 2: Create a FlashDuty notification channel in Nightingale
- Step 3: Pick the target Collaboration Space in the notification rule
Step 1: Create a Nightingale integration in FlashDuty
-
Go to the FlashDuty Console, sign in, and from the left menu open Integration Center → Integrations (direct link: https://console.flashcat.cloud/settings/source/alert).
-
Switch to the Alert Events tab at the top, click Add Integration, and in the integration panel pick Nightingale.
-
Pick a Collaboration Space (Channel) and give the integration a name (such as
Nightingale - Production). After saving, you will get a push URL like:https://api.flashcat.cloud/event/push/alert/n9e?integration_key=xxxxxxxxxxxxxxxxxxxxxxxxThis entire URL is what you fill into Nightingale as the URL (Integration URL). Copy and save it in full — do not strip the
integration_key=part.
Tip: the default Collaboration Space for this integration URL is exactly the Channel you picked here. If you do not specify a
channel_id, all alerts go into this space. Later in the notification rule you can also route alerts to other Collaboration Spaces (provided the same account has permission).
Step 2: Create a FlashDuty notification channel in Nightingale
-
Sign in to Nightingale → left menu Notification → Notification Channels.
-
In the type panel on the left, click FlashDuty to enter the create page (URL
/notification-channels/add?ident=flashduty).
-
Fill in the form:

Section Field Edit needed Notes Basic Name Yes e.g. FlashDuty. This is what appears when you select the channel in a notification ruleBasic Enabled Keep on If turned off, the channel will not be used Basic Note Optional A note for your team, such as “Production integration” FlashDuty URL Required Paste the full push URL from Step 1 (in the form https://api.flashcat.cloud/event/push/alert/n9e?integration_key=xxx)FlashDuty Proxy Optional If Nightingale is deployed in an internal network and needs an HTTP proxy to reach FlashDuty, set the proxy address here FlashDuty Timeout (ms) Keep default Default 5000; usually no need to changeFlashDuty Retries Keep default Default 3; transient network issues are retried automatically -
Click Save in the lower-left corner.
Note: a FlashDuty channel does not need a “message template” — Nightingale packages triggered/recovered events into an
AlertCurEventJSON array and POSTs it as-is to FlashDuty. If the request returns a non-2xx status, Nightingale does not retry (resending alert events would break dedup on the FlashDuty side), but the response body is fully recorded for you to inspect in the notification logs.
Step 3: Pick the Collaboration Space in the notification rule
If you want alerts from different business lines to land in different FlashDuty Collaboration Spaces, specify the Channel inside the notification rule:
-
Left menu Notification → Notification Rules → New (or edit an existing rule).
-
In the “Notification Configuration” area:
- Notification Channel: pick the FlashDuty channel you just created;
- Channels: a multi-select dropdown that automatically pulls the list of Collaboration Spaces you have access to from FlashDuty;
- Pick nothing (recommended for newcomers): alerts go into the default Collaboration Space attached to the integration URL;
- Pick one or more: Nightingale sends one request per selected Channel, appending
?channel_id=<id>, so each alert lands in the corresponding Collaboration Space.
- Applicable Severity / Time Range / Tags: filter which events to push as needed.
-
After saving, click “Notification Test” — a test alert should show up in FlashDuty immediately.
FAQ
Q1: The Channel dropdown is always empty?
A: The dropdown is fetched via the FlashDuty API. It needs: (1) the URL on the channel is reachable; (2) the integration_key in the URL is valid; (3) the network where Nightingale runs can reach api.flashcat.cloud. If it still fails, check the response of the /api/n9e/flashduty-channel-list/{id} request in your browser DevTools Network panel.
Q2: How do I confirm the event reached FlashDuty successfully?
A: The most direct way — sign in to the FlashDuty console → Alert → Alert Events, the test alert should be there. If not, open Nightingale’s “Notification Logs” and check the Response. Common results:
status_code:200, response:{"code":0, ...}→ success;status_code:400, response:{"code":400, "msg":"integration key invalid"}→ wrong or disabledintegration_key;- Network errors (
connection refused/timeout) → check network / proxy.
Q3: Will recovered events be recognized?
A: Yes. Nightingale’s JSON includes is_recovered: true, which FlashDuty interprets as “auto-recovered”. The corresponding alert is closed and will not be treated as a new alert.
Q4: Why don’t I see our Business Group/Tags in the FlashDuty Collaboration Space?
A: Nightingale sends the group_name, tags, annotations and other fields with each alert. FlashDuty by default treats tags as routing/filtering criteria. For finer-grained dispatching by tag, configure matching rules under Collaboration Space → Dispatch Strategy in FlashDuty.
Q5: How do I route different severities to different Collaboration Spaces?
A: Create multiple notification rules in Nightingale. Each rule picks the same FlashDuty channel but a different Channels target, then uses “Applicable Severity” to differentiate — no need to create a separate channel per Collaboration Space.
Q6: Nightingale has its own “Alert Notification Rules”, and FlashDuty has “Dispatch Strategies” — where should I do the filtering?
A: We recommend doing it inside FlashDuty. On the Nightingale side, send all alerts through to FlashDuty as much as possible, and let FlashDuty handle on-call, escalation, and dedup uniformly — you get more complete reports for post-incident reviews.