Alerts and contacts
Who Mon tells when something goes wrong, how, and when - contacts, what each one hears about, and how to wait out a blip.
Contacts
A contact is somewhere Mon sends alerts. Add them under Contacts.
| Type | What it is | Plans | Verification |
|---|---|---|---|
| An email address | Every plan | A confirmation link is emailed to it | |
| Slack | A Slack channel, through an incoming webhook | Every plan | None needed - Mon posts a welcome message |
| Webhook | A URL of your own that Mon calls | Every plan | None needed - Mon sends a test call |
| SMS | A phone number | Paid plans | A 6-digit code is texted to it |
The email address you signed up with is already a contact. A contact has to be verified before it can be attached to a monitor, and its type and address can't be changed once it's created - add a new contact instead.
How many contacts you can have depends on your plan: 2 on Free, 5 on Solo, 10 to 15 on Team and 20 to 30 on Enterprise. Each SMS uses a credit from your plan's allowance.
An email contact whose messages bounce, or are reported as spam, stops receiving alerts until it's sorted out.
What each contact hears about
Each contact has switches for what it's sent:
- Monitor Down and Monitor Up - a monitor going down, and coming back.
- SSL Expiring - reminders before a certificate expires. Sent to email and Slack contacts.
- WHOIS Status Changed and Domain Registrar Changed - changes to a domain's registration. Sent to email contacts.
- Weekly Report - a summary of every monitor in the account, once a week.
New contacts start with everything on.
When an alert is sent
Every monitor has its own list of contacts, and for each contact, when to alert it:
- Alert on the Nth failure. From the 1st to the 10th failed check in a row. Waiting for a few failures means a blip that clears itself on the next check never reaches anyone.
- Repeat. If the monitor stays down, send the alert again - up to 10 more times.
- Every Nth check. How far apart the repeats are: every check, or every 2nd, 3rd and so on, up to every 10th.
When the monitor comes back up, each contact that was told it went down is told it's back.
Different contacts can have different settings on the same monitor. That's how to escalate: alert the team's Slack channel on the 1st failure, and the person on call by SMS on the 5th.
Flood protection
A monitor that keeps flipping between down and up - more than five changes in quick succession, from a service that's half working, say - would send a stream of alerts that drowns out everything else. When that happens, Mon stops sending that monitor's alerts. Its state, checks and events are still recorded on the dashboard as usual.
A monitor that starts down
A monitor that is already down the first time it's checked doesn't send a down alert - there's no "up" for it to have gone down from. You'll see its state on the dashboard straight away.
Default alerts
Each contact can hold default alert settings for each type of monitor. When you add a monitor, contacts with a default for its type are ticked for you, with those settings. Out of the box, HTTP monitors alert on the 5th failure, DNS monitors on the 2nd, and everything else on the 1st, with no repeats.
Apply Default Alerts on a contact puts it on every matching monitor with its defaults - replacing any settings you'd changed on individual monitors.
Slack
Create an incoming webhook in Slack for the channel you want, and paste its URL (it starts https://hooks.slack.com/services/) into a new Slack contact. Alerts read:
Monitor acme.com is Down. It was Up for 3 days.
Webhooks
A webhook contact sends a POST request to your URL for every down and up alert, with the details as query-string parameters:
| Parameter | Meaning |
|---|---|
monitorId | The monitor's ID |
monitorName | The monitor's name |
monitorUrl, monitorHost, monitorPort, monitorDomain | What the monitor watches, where it applies |
contactName | The contact's name |
eventType | Up or Down |
eventDuration | How long the monitor was in its previous state, in seconds |
occurredOn | When it happened, in milliseconds since 1 January 1970 (UTC) |
details | What was found - the reason it's down, for instance |
To put a value somewhere else in the URL, write the parameter's name between asterisks in your URL's own query string - https://example.com/hook?state=*eventType* - and Mon fills it in.
SMS
Text alerts read: Your HTTP Monitor acme.com on Mon is Down. SMS is available on paid plans, and each message uses a credit.
Last updated Oct 25, 2026