# Site24x7

EvoHub receives Site24x7 alerts through a **Webhook** third-party integration. A monitor going Down, Critical or Trouble opens an EvoHub alert, and the monitor returning to Up resolves it. Site24x7's default incident parameters work as they are; no custom body is needed.

## Set it up

:::steps
### Create the integration
In EvoHub, go to **On-Call → Integrations → + Add Integration**, choose **Site24x7**, pick an **Escalation Policy** and click **Create Integration**. Copy the **Webhook URL**.
### Add a webhook
In Site24x7, go to **Admin → Third-Party Integration → Add Third-Party Integration** and choose **Webhooks**.
### Set the URL and options
Set **Hook URL** to your webhook URL and the HTTP method to **POST**, turn on **Send Incident Parameters**, and turn on **Post as JSON** (recommended; form mode also works).

```text
https://evohub.io/ingest/site24x7?key=YOUR_INTEGRATION_KEY
```
:::

## Turn on auto-resolve

Nothing extra is needed. When a monitor is back up, Site24x7 sends `STATUS` **UP**, and EvoHub resolves the matching alert.

## What EvoHub reads

EvoHub reads the default incident parameters, either as JSON (**Post as JSON** on) or as form values:

| EvoHub alert | Taken from |
| --- | --- |
| Title | "`MONITORNAME` is `STATUS`", for example "Checkout is DOWN" (or "Site24x7 Alert"). |
| Description | `INCIDENT_REASON`, else `INCIDENT_DETAILS`. |
| Labels | `monitor_type` (`MONITORTYPE`) and `status`; when sent, `monitored` (`MONITORURL`), `group` (`MONITOR_GROUPNAME`) and `failed_locations` (`FAILED_LOCATIONS`). |
| Links | `MONITOR_DASHBOARD_LINK` (the monitor in Site24x7) and `RCA_LINK` (its root cause analysis) as `rca_url`. They open from the alert. |
| Fingerprint | `MONITOR_ID`; without it, the monitor name. |

### Severity

| Status | Priority | EvoHub severity |
| --- | --- | --- |
| DOWN | any | critical |
| CRITICAL | any | high |
| TROUBLE | any | medium |
| any other | HIGH | high |
| any other | LOW | low |
| any other | other or missing | medium |

## Resolve and deduplication

- `STATUS` **UP** resolves the open alert for that monitor. Any other status opens an alert.
- A monitor that goes from Trouble to Down keeps one alert: the second notification is recorded as **Retriggered**.

## Troubleshooting

- **`401 INVALID_KEY`**: the URL's key is wrong or the integration is disabled. Copy the **Webhook URL** again from the integration.
- **`400 INVALID_BODY`**: the body is neither JSON nor form values with any of `MONITORNAME`, `STATUS` or `MONITOR_ID`. Turn on **Send Incident Parameters**, or remove a custom body.
- **Alerts never resolve**: check that the integration is notified when the monitor is up, not only when it goes down.

## Related

- [Integrations overview](https://docs.evohub.io/integrations-overview.md)
- [Pingdom](https://docs.evohub.io/pingdom.md)
- [Escalation policies](https://docs.evohub.io/escalation-policies.md)
