Site24x7
Connect Site24x7 to an Oppex service so that a monitor that changes to a failing status creates an
incident. When the monitor returns to UP, Oppex resolves the incident. Site24x7 sends each status
change to Oppex through a webhook.
Before you start
You need the following:
- An Oppex API key from the workspace that owns the service. Open Settings, and in your workspace's section click API Keys. If your organization has only one workspace, click Organization → API Keys instead. See API Keys to create one.
- The service's integration key. Oppex shows it in the service's Site24x7 guide, as described in step 1.
- Access to the Site24x7 admin panel, including Admin → Third-Party Integrations.
The Site24x7 guide inside Oppex says Settings > Account > API Keys. The API Keys page is under your workspace's section of Settings, as described above.
Step 1: Open the Site24x7 guide in Oppex
- Open Services.
- In the service's row, click Integration Details and select Site24×7.
- In In Oppex: Get Your Service Key, click the copy icon to copy the service integration key.
Every Oppex service uses the same Site24x7 webhook URL. The service integration key you send in a header decides which service receives the incident.
Step 2: Add a webhook in Site24x7
-
Sign in to Site24x7.
-
Go to Admin → Third-Party Integrations → Webhooks.
-
Click Add Webhook.
-
Set Webhook URL to the Oppex webhook URL:
https://api.oppex.ai/integrations/webhook/incident/site24x7 -
Set HTTP Method to
POST. -
Set Content Type to
application/json. -
Enable both Post as JSON and Send Incident Parameters.
Post as JSON sends the alert as a JSON body, and Send Incident Parameters includes the
monitor's name, type, status and incident time. Oppex requires the fields MONITORNAME, STATUS,
MONITORTYPE and INCIDENT_TIME, in capitals, and rejects an alert that is missing any of them.
Do not replace the incident parameters with a custom payload of your own.
Step 3: Add the custom headers
In the webhook editor, click Add Custom Header for each row below. Oppex uses these headers to authenticate the request and to decide how it creates incidents.
| Header | Example value | Required |
|---|---|---|
X-SITE247-SERVICEKEY | The service integration key from step 1 | Yes |
X-SITE247-APIKEY | Your Oppex API key | Yes |
X-SITE247-SEVERITY | {"DOWN":1,"CRITICAL":2,"TROUBLE":3} | Yes |
X-SITE247-TRIGGERED | DOWN,CRITICAL,TROUBLE | Yes |
X-SITE247-AUTORESOLVE | true | No |
Save the webhook, then select it as the alert destination for the monitors that should create incidents in this service.
What each header does
X-SITE247-SEVERITY is a JSON object that maps Site24x7 monitor statuses to Oppex severity,
where 1 is the most critical and 5 is informational. With the example value, DOWN creates a
Severity 1 incident, CRITICAL a Severity 2 incident and TROUBLE a Severity 3 incident. A status
missing from the map creates a Severity 1 incident.
Oppex looks up the status exactly as Site24x7 sends it, which is in capitals. Write each severity
as a whole number, such as 1, and not as text, such as "1". Oppex cannot process an alert whose
severity map contains text values.
X-SITE247-TRIGGERED is a comma-separated list of the statuses that create incidents, such as
DOWN, CRITICAL and TROUBLE. Oppex ignores any other status, except UP.
The in-app guide says that only DOWN creates incidents when this header is omitted. Oppex rejects
any alert that arrives without the header, so always include it.
X-SITE247-AUTORESOLVE controls what happens when the monitor recovers. When the header is
absent or true, Oppex resolves the monitor's open incidents when Site24x7 sends UP. Any other
value, including false, leaves the incidents open for your team to resolve by hand.
What happens when Site24x7 sends an alert
Each Site24x7 monitor maps to one incident group in Oppex, keyed by the monitor name.
| Monitor status | What Oppex does |
|---|---|
A status listed in X-SITE247-TRIGGERED, such as DOWN | Creates an incident with the severity from X-SITE247-SEVERITY |
| A status not in the list | Ignores the alert |
UP, auto-resolve on | Resolves the monitor's open incidents |
UP, auto-resolve off | Leaves the incidents open |
The incident contains the following:
- Title: the monitor name and its status. For a monitor named Mount Doom Health Check, the title is Mount Doom Health Check is DOWN.
- Source: Site24x7.
- Type: the monitor type, and Component: the monitor name.
- Details: the monitor ID, the incident reason and details, the dashboard link, the monitored URL, the poll frequency and the monitor's tags.
If the same monitor fails again while its first incident is still open, Oppex attaches the new alert to the open incident instead of opening a new one. After the incident is resolved, or after the workspace's grouping time window passes, the next failure opens a new incident. See Grouping strategy.
Oppex matches UP to incidents by monitor name across your whole organization, not only within
this service. If two monitors on different services share a name, the recovery of one resolves the
other's open incidents.
Test the integration
In Site24x7, use the webhook's test option, or let a monitor fail. Check the Incidents page in Oppex for an incident titled with the monitor's name and status. When the monitor recovers, the incident is resolved.
If no incident appears, check the webhook's delivery log in Site24x7 for the reply from Oppex:
| Reply | Cause |
|---|---|
| Missing or invalid Authorization header or cookie | The API key header is missing |
| Invalid or disabled API key | The API key is wrong or disabled |
| X-SITE247-TRIGGERED header is required | A required header is missing (the message names it) |
| Field 'MONITORNAME' is required in payload | Send Incident Parameters is off, or a custom payload replaced the incident parameters |
| Status TROUBLE not in triggered states - incident not created | The status is not in X-SITE247-TRIGGERED |
In-product guide
Oppex shows the same setup steps inside the product, with your service's integration key filled in. Open Services, click Integration Details in the service's row, and select Site24×7.