> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Site24x7 alert integration

> Send Site24x7 monitor status changes to Flashduty On-call through a webhook. Alerts recover automatically when the monitor returns to Up.

Use the Site24x7 Webhooks third-party integration to send monitor status changes to Flashduty On-call. Each Site24x7 monitor maps to one Flashduty alert: a change to Down, Trouble, or Critical triggers or updates the alert, and a return to Up closes it.

<div className="hide">
  ## 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, select **Channel** and open a channel
  2. Select **Configuration** → **Integrations** → **Private integration**, then click **Add an integration**
  3. Select **Site24x7** and click **Save**
  4. Open the new integration card and copy the **Push URL**

  ### Use a shared integration

  1. In the Flashduty console, select **Integration Center → Alert Events**
  2. Select **Site24x7** and enter an integration name
  3. Configure the default route and select a channel. After creation, you can add more rules under **Routes**
  4. Click **Save** and copy the generated **Push URL**
</div>

## Configure Site24x7

***

<Steps>
  <Step title="Add a Webhooks integration">
    1. Log in to Site24x7 and go to **Admin → Third-Party Integrations → Integrations**
    2. Find **Webhooks** in the integration list and click **Integrate Now** (if integrations already exist, click **Add Third-Party Integration** at the top right first to open that list)
    3. Set **Integration Name** to `Flashduty`
    4. Paste the complete Flashduty integration push URL, including `integration_key`, into **Hook URL**
  </Step>

  <Step title="Set the request method and body">
    1. Set **HTTP Method** to **POST**
    2. Select **Post as JSON**
    3. Select **Send Incident Parameters**. Site24x7 then puts incident parameters such as `MONITOR_ID`, `MONITORNAME`, and `STATUS` into the JSON request body
    4. Leave **Authentication Method** empty. Flashduty authenticates the request by the `integration_key` in the push URL

    <Warning>
      Select both **Post as JSON** and **Send Incident Parameters**. Flashduty rejects a request that lacks `STATUS`, or lacks `MONITOR_ID` when `MONITOR_DASHBOARD_LINK` does not contain a monitor ID either, because later status changes and the recovery could not be linked to the same alert.
    </Warning>
  </Step>

  <Step title="Choose monitors and trigger statuses">
    1. Under **Integration Level**, choose what to send: specific Monitors, Tags, Monitor Groups, or All Monitors
    2. Under **Tags to Be Sent With Alerts**, optionally choose the tag keys to send with alerts. If you choose none, all tags of the monitor are sent
    3. Under **Trigger Alerts for Monitor Status Change**, select the statuses to notify on. Selecting **Down**, **Trouble**, and **Critical** is recommended
    4. Click **Save**
  </Step>

  <Step title="Verify the alert lifecycle">
    Put a monitor into Down for real, for example by pointing it at an unreachable address for a while, and confirm that Flashduty receives an active alert. Then let it return to Up and confirm that the same alert recovers. The test alert sent by **Save and Test** only proves that the push URL is reachable. Use a real monitor status change to verify that alerts group and recover correctly.

    <Note>
      The test alert is a `DOWN` notification for a fixed sample monitor (`MONITOR_ID` `123456`, named `[Site24x7 Test Alert] Zylker Monitor`), so Flashduty opens a Critical alert for it. Site24x7 never sends an Up notification for this monitor, so close that alert in Flashduty manually.
    </Note>
  </Step>
</Steps>

## Alert Key

***

Flashduty uses the Site24x7 monitor ID as the Alert Key. It takes `MONITOR_ID` first and, when that is missing, extracts the ID from `MONITOR_DASHBOARD_LINK` (for example `.../home/monitors/<monitor ID>/Summary`). The Down, Trouble, Critical, and Up notifications of one monitor all carry the same monitor ID, so they are grouped into the same alert and the Up notification recovers it.

Changes to `STATUS`, the monitor name, the incident reason, the failed locations, or the time do not change the Alert Key.

## Status and severity mapping

***

| Site24x7 `STATUS`         | Flashduty status or severity |
| :------------------------ | :--------------------------- |
| `DOWN`                    | Critical                     |
| `CRITICAL`                | Critical                     |
| `TROUBLE`                 | Warning                      |
| `UP`                      | Recovered                    |
| Any other non-empty value | Warning                      |

Requests with an empty `STATUS` are rejected.

## Alert labels

***

Flashduty writes the following incident parameters to alert labels for filtering and troubleshooting:

| Label                     | Source                                                     |
| :------------------------ | :--------------------------------------------------------- |
| `monitor_id`              | Monitor ID (the Alert Key)                                 |
| `monitor_name`, `check`   | `MONITORNAME`                                              |
| `monitor_url`, `resource` | `MONITORURL`                                               |
| `monitor_type`            | `MONITORTYPE`                                              |
| `monitor_group`           | `MONITOR_GROUPNAME`                                        |
| `monitor_dashboard_link`  | `MONITOR_DASHBOARD_LINK`                                   |
| `status`                  | Raw `STATUS` value                                         |
| `failed_locations`        | `FAILED_LOCATIONS`                                         |
| `incident_time`           | `INCIDENT_TIME_ISO`, or `INCIDENT_TIME` when it is missing |
| `outage_time`             | `OUTAGE_TIME_UNIX_FORMAT`                                  |
| `rca_link`                | `RCA_LINK`                                                 |
| `tags`                    | `TAGS`, comma-separated                                    |

The alert title comes from `MONITORNAME` and the alert description from `INCIDENT_REASON`.

## Troubleshooting

***

* **Site24x7 reports an integration failure**: Make sure the Hook URL is complete, includes `integration_key`, and uses POST
* **Flashduty returns a parameter error**: Make sure **Post as JSON** and **Send Incident Parameters** are both selected and the request body contains `MONITOR_ID` and `STATUS`
* **The alert does not recover**: Make sure the monitor is within the scope selected in **Integration Level** and has actually returned to Up

For parameter details, see the Site24x7 [Webhooks integration](https://www.site24x7.com/help/admin/third-party-integration/webhooks.html) and [Incident Parameters](https://www.site24x7.com/help/admin/configuration-profiles/incident-parameters.html) pages.
