Alerts & contacts overview
HostTracker alerting has two separate ideas that are easy to mix up: a contact is where an alert can be delivered, and a subscription is what it gets alerted about. Set up a contact once, then subscribe it to as many monitors as you like.
Contacts vs subscriptions
Section titled “Contacts vs subscriptions”- A contact is a delivery address: an email, a phone number, a Telegram chat, a Slack webhook, a PagerDuty key and so on. Creating a contact does not alert anyone by itself - and for email, SMS and voice it stays that way until it’s confirmed.
- A subscription binds one monitor to one contact and picks which events it should hear about (Up, Down, still-down) or which scheduled reports it should receive.
- Contact groups are a passive, named preset you apply to a monitor in one step - applying it writes ordinary subscriptions once, it isn’t a live link. Subscribing monitors to a contact manages subscriptions from the contact’s side, one contact against many monitors.
- In the app, a new monitor is subscribed to all your contacts (Up and Down alerts, Weekly and Monthly reports) because the create form’s Subscribe all switch starts on; turn it off before saving to choose contacts yourself. A monitor created through the API or MCP has no subscriptions until you add them.
Channels at a glance
Section titled “Channels at a glance”| Channel | Typical use |
|---|---|
| The default, always-on channel. Free. | |
| SMS / Voice call | Loud, hard-to-miss alerts. Billed from your SMS credit - see SMS & voice billing. |
| Telegram / Discord / Viber | Chat apps, set up by registering with the HostTracker bot rather than typing an address. |
| Slack / Microsoft Teams / Mattermost | Team chat, set up with an incoming webhook. |
| PagerDuty / Opsgenie ¹ | On-call paging, addressed by an integration key. Every alert is sent immediately, never batched. |
| Pushover / Pushbullet | Personal push notifications, addressed by a key or token. |
| WhatsApp ¹ | Sent via the Meta Cloud API. |
| Web push | A browser notification, registered from the web app itself. |
| Webhook | Send the alert as JSON to your own endpoint (unsigned - the signed, typed webhooks system is a separate resource under Integrations). |
¹ Opsgenie and WhatsApp aren’t creatable for any account today - the New Contact picker hides both (along with
the retired Skype and the hidden-by-design Facebook/Google Chat bot channels). Every other type in the table,
including all seven flavors an http contact can take (Slack, Teams, PagerDuty, Pushover, Pushbullet,
Mattermost, or a plain webhook), is live. See what a contact is for the
full picture.
See the full channel list and setup guides for details on every option.
Escalation, timing and grouping
Section titled “Escalation, timing and grouping”- Alert delays & escalation - a contact can wait before it hears about a Down (a fixed ladder from instant up to 24 hours), and an outage that keeps going can escalate to later contacts.
- Active hours - restrict a contact to chosen hours, days and a timezone.
- Grouped alerts - many alerts firing close together for the same contact can be coalesced into one message instead of a flood; on-call channels (PagerDuty, Opsgenie) never do this.
- Test a contact - send a real sample alert to confirm a contact is wired up correctly, before you rely on it.
Check it with the API or MCP
Section titled “Check it with the API or MCP”An agent auditing or rebuilding a user’s alerting setup typically works top-down: list_contacts (or
GET /contact) to see every delivery address and whether each is confirmed, then list_subscriptions (or
GET /alert / GET /report) to see who’s subscribed to what. GET /contact/{id}?expand=subscription folds
both together for one contact. See what a contact is and
subscriptions for the exact fields and bodies.

