UptimeRobot offers webhook integrations only on the Team plan and higher paid plans (such as Team, Scale, and Enterprise). Free and Solo plans cannot add them.
In Flashduty On-call
You can get the integration push URL in either of the following ways.
Use a dedicated integration
- In the Flashduty console, select Channel and open a channel
- Select Configuration → Integrations → Private integration, then click Add an integration
- Select UptimeRobot and click Save
- Open the new integration card and copy the Push URL
Use a shared integration
- In the Flashduty console, select Integration Center → Alert Events
- Select UptimeRobot and enter an integration name
- Configure the default route and select a channel. You can add more rules under Routes after creation
- Click Save and copy the generated Push URL
Configure UptimeRobot
1
Add a webhook integration
- Sign in to the UptimeRobot dashboard, select Integrations in the left sidebar, and click Add Integration
- Select Webhook
- Paste the complete Flashduty integration push URL into Webhook URL
2
Configure the POST value
- Under Send default variables, leave As query string and As POST parameters unchecked
- Paste the following JSON into POST value and check Send as JSON (application/json)
3
Choose events to notify about
Under Events to notify about, check both Down events and Up events. With only Down events checked, Flashduty alerts never recover automatically. To receive certificate and domain expiry reminders, also check SSL & Domain expiry. Click Save.
4
Attach Monitors
Edit each Monitor you want to connect, select the new webhook integration in its notification settings, and save. Only Monitors attached to the integration send notifications to Flashduty.
5
Verify
On the Monitor details page, click Test Notification and select the webhook. UptimeRobot sends a simulated Down notification followed by a simulated Up notification, which confirms that the push URL and POST value are correct. During a real outage, UptimeRobot sends the Up notification after the Monitor recovers, and the matching Flashduty alert closes.
Alert Key
Flashduty uses
*monitorID* (the monitor_id field) as the Alert Key. UptimeRobot includes the same Monitor ID in both Down and Up notifications, so a Monitor’s outage, repeated reminders, and recovery land on one alert, and different Monitors produce different alerts.
Changes to the Monitor name, URL, alert details, HTTP status code, or timestamps do not change the Alert Key. A Monitor that is deleted and recreated gets a new Monitor ID and is no longer linked to its old alerts.
Status and severity
An empty or other
alert_type is rejected so that an ambiguous request cannot enter the wrong alert lifecycle.
SSL certificate and domain expiry reminders have no matching recovery notification. Each reminder creates a separate Warning alert that does not recover automatically, so close it manually once handled.
Delivery
- UptimeRobot sends Down and Up notifications once. It does not retry after a timeout, a connection error, or a non-2xx response. If an Up notification is lost, the matching alert stays active until you close it manually
- Recurring notifications configured on a Monitor resend the Down notification with the same Monitor ID, and Flashduty merges them into the existing alert
Troubleshooting
- Flashduty reports an invalid parameter: verify that Send as JSON (application/json) is checked, the POST value is valid JSON, and
monitor_idandalert_typeare unchanged - JSON parsing fails: check whether the Monitor name or alert details contain double quotes or backslashes, which can make the rendered POST value invalid JSON
- The alert does not recover: verify that Up events is checked under Events to notify about, and that the Flashduty push URL was reachable when the Up notification was sent
- No notifications arrive: verify that the Monitor is attached to the webhook integration and that the UptimeRobot account is on the Team plan or higher
- Custom headers: UptimeRobot supports up to 10 custom headers per webhook. Flashduty authenticates with the
integration_keyin the push URL, so no extra header is needed