Esc
  • Search every page and section of the docs.
Sign up

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.

TypeWhat it isPlansVerification
EmailAn email addressEvery planA confirmation link is emailed to it
SlackA Slack channel, through an incoming webhookEvery planNone needed - Mon posts a welcome message
WebhookA URL of your own that Mon callsEvery planNone needed - Mon sends a test call
SMSA phone numberPaid plansA 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:

ParameterMeaning
monitorIdThe monitor's ID
monitorNameThe monitor's name
monitorUrl, monitorHost, monitorPort, monitorDomainWhat the monitor watches, where it applies
contactNameThe contact's name
eventTypeUp or Down
eventDurationHow long the monitor was in its previous state, in seconds
occurredOnWhen it happened, in milliseconds since 1 January 1970 (UTC)
detailsWhat 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