AlertOps Heartbeat Monitoring
Listen for a regular signal from an external source. If the signal stops, AlertOps raises an alert; when the signal resumes, the alert auto-closes.
Permissions
The InboundIntegrations_GlobalAccess entitlement is necessary for creation, update, and deletion of inbound e-mail, API, and chat integration templates in the environment. The user roles that have access to this entitlement are Owner, App Admin, and Integrations Admin.
OverviewRelevant for App Admins and Integrations Admins
AlertOps Heartbeat Monitoring allows customers to listen for a signal — a heartbeat — from an external source. When the heartbeat is interrupted for a specified period, an alert is sent to a person or team.
- Only one alert is sent for a Heartbeat alert.
- When heartbeat pulses resume for an open alert, the alert is closed automatically.
- You can create multiple Heartbeat Monitors; each one is tracked separately.
Relevant for App Admin / Integrations Admin
Heartbeat Monitoring lives under Configuration → Integrations, in the Inbound Integrations section.
Add a Heartbeat Integration
On the Inbound Integrations list, open the integration-type drop-down and choose Heartbeat. The list filters to your Heartbeat integrations and the Add button changes to + ADD HEARTBEAT. Click it to open the configuration form.

Figure 1. Choose Heartbeat from the inbound integration-type drop-down (API / Email / Chat / Heartbeat). This filters the list and sets the Add button to + ADD HEARTBEAT.
Configure the Heartbeat Integration
On the configuration form, fill in the following:
|
Field |
Value |
|
Integration Name |
A unique name that identifies what is being monitored, e.g. "Nightly Backup - Production DB" or "Datadog Webhook Job." (Required.) |
|
Escalation Policy / Response Play |
The Escalation Policy (or Response Play) that delivers the alert when the heartbeat misses an interval check. (Required.) |
|
Heartbeat Interval (minutes) |
How often a heartbeat is expected to arrive, in minutes. (Required.) |
|
Recipient Group(s) |
One or more groups to notify when the heartbeat is missed. |
|
Recipient User(s) |
One or more individual users to notify when the heartbeat is missed. |
|
Bridge |
Optional conference bridge to attach to the alert. |
|
Enabled |
Checked by default. Uncheck to create the integration without activating it. |

Figure 2. The Add Heartbeat form (Basic Settings). Integration Name, Escalation Policy / Response Play, and Heartbeat Interval (minutes) are required; Recipient Group(s), Recipient User(s), and Bridge are optional; Enabled is checked by default.
- Click Submit.
- Open the saved integration. The API URL appears at the top of the detail page next to the COPY button — click COPY to grab the endpoint. This is the URL your system pings; for a Heartbeat it looks like https://notify.alertops.com/Heartbeat/…

Figure 3. The saved Heartbeat integration's detail page. The API URL (https://notify.alertops.com/Heartbeat/…) sits at the top next to COPY — this is the endpoint your system pings on each heartbeat.
How the Timing Works
The Heartbeat Interval is your expected cadence. Each ping that reaches the API URL resets the timer. As long as a ping arrives within every interval, the heartbeat is healthy and nothing happens. If a full interval passes with no ping, AlertOps treats the silence as a problem and opens a single Heartbeat alert, routed through the integration's Escalation Policy. When pings resume, that open alert closes automatically — you don't have to close it by hand.
|
What to send in the ping The ping is a POST to the API URL. The body can be an empty JSON object ({}) — AlertOps only cares that the request arrived, not what's in it. Set Content-Type to application/json. Any successful POST resets the interval timer. |
Test the Heartbeat
Using a tool such as Postman, send a POST with a JSON body (an empty {} is fine) to your Heartbeat Integration's API URL and confirm the integration registers a successful ping. Then stop sending and confirm an alert opens once the interval elapses — exercising both the healthy and the missed states gives you confidence before wiring it into a real job.
Receiving Heartbeat Alerts
When a heartbeat is missed, alert notifications are sent according to the configured Escalation Policy — the same notification, escalation, and on-call behavior as any other AlertOps alert.
When to Use a Heartbeat
Reach for a Heartbeat any time the failure you care about is silence — a process that should run on a schedule but might simply not run at all, where no error is ever emitted because nothing fired. Classic fits: nightly backups, cron jobs, scheduled ETL / data pipelines, RMM scripts, batch jobs, and any "dead man's switch" where no news is bad news. For systems that actively send errors when something breaks, use an API or Email integration instead; use a Heartbeat to catch the cases where the system goes quiet.
Use Case — Windows Scheduler + PowerShellRelevant for Anyone setting up a Windows-based heartbeat sender
Example scenario: ping your AlertOps Heartbeat URL every 5 minutes from a Windows machine using Task Scheduler.
1. Create the Heartbeat Integration in AlertOps
- Go to Configuration > Integrations and select Heartbeat from the integration drop-down in AlertOps.
- Click Add Heartbeat.
- Name your Heartbeat (for example, "Windows Server Health Check").
- Associate it with an Escalation Policy and a Group / User.
- Set the heartbeat interval (e.g., 5 minutes).
- Copy the heartbeat URL — it looks like https://notify.alertops.com/...
2. Create a PowerShell Script to Send the Ping
Create a file called Send-Heartbeat.ps1 and paste the following:
# Send-Heartbeat.ps1
$heartbeatUrl = "" # Replace with your actual Heartbeat URL
try {
$headers = @{ "Content-Type" = "application/json" }
# Optional body — empty JSON object is fine
$body = @{} | ConvertTo-Json
$response = Invoke-RestMethod -Uri $heartbeatUrl -Method Post -Headers $headers -Body $body
Write-Output "Heartbeat POST sent successfully at $(Get-Date)"
} catch {
Write-Error "Failed to send heartbeat POST: $_"
}
You can also use Invoke-WebRequest instead of Invoke-RestMethod.
3. Set Up Windows Task Scheduler
- Open Task Scheduler (search it in the Start Menu).
- Click Create Basic Task on the right panel.
- Name it (e.g., "AlertOps Heartbeat Ping").
- Choose Daily, then click Next.
- Set the Start time, then click Next.
- Select Repeat task every 5 minutes for a duration of 1 day. To set this, tick "Open the Properties dialog for this task when I click Finish."
- Choose Start a Program, then click Next.
- In Program/script, enter: powershell.exe
- In Add arguments, enter: -ExecutionPolicy Bypass -File "C:\Path\To\Send-Heartbeat.ps1"
- Click Finish. In the Properties window, go to the Triggers tab → click Edit → set Repeat task every 5 minutes for a duration of Indefinitely.
4. Test It
- Right-click the task in Task Scheduler and click Run.
- Check that the ping is received in AlertOps under Alerts.
Optional Enhancements
- Add a log file to the PowerShell script for better diagnostics.
- Use Windows Event Logs or custom scripts to trigger the ping only after certain services succeed (e.g., backups, batch jobs).
- If you have multiple servers or jobs, create separate Heartbeat integrations in AlertOps for each so you can monitor them independently.
Relevant for Anyone designing a heartbeat strategy
1. Job Completion Check
A scheduled backup job, ETL pipeline, or report generation task runs every night. After success, it sends a heartbeat to AlertOps. If no heartbeat is received, AlertOps assumes the job failed or never ran, triggering an alert.
Works well for SQL Server Agent jobs, cron jobs, RMM scripts, and Power Automate flows.
2. Batch Job or Data Pipeline Hand-off
A data warehouse ETL system (e.g., Airflow, Informatica, SSIS) runs multiple jobs. The heartbeat is sent only after all stages complete. AlertOps detects missed steps even if no failure is reported in the pipeline UI.