Notification
A notification is a channel that is used to send alerts when your monitor status changes. By default no notifications are created in your workspace.
Notification Channels:
Section titled “Notification Channels:”Require a Slack incoming webhook
Require an email address
Discord
Section titled “Discord”Require a discord webhook e.g. https://discordapp.com/api/webhooks/123456789012345678/abcdefghijklmnopqrstuvwxyz1234567890
Require a phone number (international format e.g. +14155552671)
Due to provider routing, SMS may not be delivered to all countries. Please contact support if you encounter any issues. Or use whatsapp notification instead.
Require a phone number (international format e.g. +14155552671)
Telegram
Section titled “Telegram”Requires to know the chat id.
This integration is fully functional but accessing the chat id is not smooth yet. It requires manual effort to access your chat id. You can ask RawDataBot
@raw_info_botfor your chat id.
The bot’s id is @openstatushq_bot to make sure you are getting the correct notifications.
Webhook
Section titled “Webhook”- URL (require)
- Headers (optional)
Notification Payloads
Section titled “Notification Payloads”Payload for Monitor Recovery
Section titled “Payload for Monitor Recovery”{ "monitor": { "id": 1, "name": "test", "url": "http://openstat.us" }, "cronTimestamp": 1744023705307, "status": "recovered", "statusCode": 200, "latency": 1337}Fields Explanation:
- monitor: Contains details about the monitor.
- id: Unique identifier for the monitor.
- name: Name of the monitor.
- url: The URL being monitored.
- cronTimestamp: The timestamp when the check was executed, in milliseconds since epoch.
- status: Indicates the current status of the monitor (in this case, “recovered”).
- statusCode: The HTTP status code returned by the monitored service.
- latency: The time taken to complete the check, in milliseconds.
Payload for Monitor Failure
Section titled “Payload for Monitor Failure”{ "monitor": { "id": 1, "name": "test", "url": "http://openstat.us" }, "cronTimestamp": 1744023705307, "status": "error", "errorMessage": "Connection refused"}Fields Explanation:
- monitor: Contains details about the monitor.
- id: Unique identifier for the monitor.
- name: Name of the monitor.
- url: The URL being monitored.
- cronTimestamp: The timestamp when the check was executed, in milliseconds since epoch.
- status: Indicates the current status of the monitor (in this case, “error”).
- errorMessage: A description of the error encountered during the check.
Zod Schema
Section titled “Zod Schema”import { z } from "zod";
export const PayloadSchema = z.object({ monitor: z.object({ id: z.number(), name: z.string(), url: z.string(), }), cronTimestamp: z.number(), status: z.enum(["degraded", "error", "recovered"]), statusCode: z.number().optional(), latency: z.number().optional(), errorMessage: z.string().optional(),});OpsGenie
Section titled “OpsGenie”- API key from OpsGenie (required)
PagerDuty
Section titled “PagerDuty”Follow the step in PagerDuty workflow
- Ntfy topic (required)
- Custom server url (optional)
- bearer token (optional)