Notification channels
Connect email, Slack, Discord, webhook, or browser push notifications to receive DomainCare alerts wherever your team already works.
Notification channels
DomainCare sends alerts over five channels: email, Slack, Discord, webhook, and browser push. All five channels are available on every plan, including the 30-day free trial.
Add channels at Settings → Notifications → Channels.
Email is the default channel and requires no extra configuration. DomainCare sends HTML and plain-text emails with the alert headline, a brief description, an optional before/after diff block for record changes, and a link to the relevant docs article.
Config: enter the recipient address when creating the channel. You can add multiple email channels for different addresses — for example, a team inbox and an on-call pager address.
From address: notifications@domaincare.io (sent via SMTP2GO). Add it to your safe-senders list if alerts end up in spam.
Slack
DomainCare posts rich messages to a Slack channel using an incoming webhook URL. Messages include a severity-coloured stripe, the alert title, domain name, and a short description.
Config:
- In Slack, go to Apps → Incoming WebHooks → Add to Slack.
- Pick a channel and copy the webhook URL. It starts with
https://hooks.slack.com/services/. - Paste the URL into DomainCare and click Save. DomainCare sends a test message immediately to confirm connectivity.
Severity colours: red (Critical), amber (Needs attention), grey (Low / Info).
Discord
DomainCare posts embeds to a Discord channel using a Discord webhook URL.
Config:
- In Discord, open Channel Settings → Integrations → Webhooks → New Webhook.
- Copy the webhook URL. It starts with
https://discord.com/api/webhooks/. - Paste it into DomainCare and save. A test embed is sent on save.
Embed shape: title is the alert type, description is the domain name and summary, footer shows domaincare.io · <timestamp>, colour reflects severity.
Webhook
The webhook channel sends a signed HTTP POST to any URL you control. Use it to connect DomainCare to PagerDuty, Opsgenie, a custom Slack bot, or your own pipeline.
Config: paste your endpoint URL. DomainCare makes a POST with a JSON body and these headers:
| Header | Value |
|---|---|
X-DomainCare-Signature | sha256=<hex> — HMAC-SHA256 of the raw body, signed with your channel secret |
X-DomainCare-Event-Id | The event UUID |
X-DomainCare-Delivery-Id | A unique delivery UUID (different from the event ID) |
Payload shape:
{
"eventId": "evt_01hw...",
"eventType": "ssl_cert_expired",
"severity": "high",
"domain": { "id": "dom_01hw...", "name": "example.com" },
"subject": "SSL cert for example.com has expired",
"body": "The TLS certificate for example.com is expired...",
"createdAt": "2026-05-02T14:23:00.000Z"
}The body is capped at 64 KB. If truncated, a "truncated": true field is added to the root object.
Retries: one automatic retry on a 5xx or network error, after a 2-second delay. Requests time out after 10 seconds.
Verifying the signature:
const crypto = require('crypto');
function verifySignature(rawBody, secret, signatureHeader) {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signatureHeader),
);
}The secret is shown once at channel creation. Store it securely — it cannot be retrieved later.
Browser push
Browser push sends native operating-system notifications through the Web Push protocol. Alerts arrive even when DomainCare is not open in a tab — you only need the browser running in the background.
Config:
- Go to Settings → Notifications → Push notifications.
- Click Enable. Your browser will ask for notification permission — allow it.
- That's it. The subscription is tied to this browser on this device. Repeat on other devices/browsers to receive push there too.
What you see: a native notification with the severity prefix, alert title, and a short description. Clicking the notification opens DomainCare to the relevant domain.
Automatic cleanup: if a browser subscription becomes invalid (e.g. you cleared browser data or revoked permission), DomainCare removes it automatically on the next delivery attempt.
Sending a test notification
Every channel row has a Send test button. It dispatches a synthetic test_notification payload directly through that channel without writing to your event history. Use it to confirm connectivity after setup or after rotating a webhook URL.
Channel resolution rules
When an alert fires, DomainCare picks the correct channels using this logic:
- Fetch all enabled rules for the event's severity.
- For each channel, prefer a per-domain rule over an org-wide rule ("most-specific match wins").
- Apply any per-event-type filters on that rule — if the event type is not in the allowed list, that channel is skipped.
This means you can send SSL alerts to PagerDuty while DNS change alerts go to Slack, all from a single domain.
Common questions
Can I add the same channel type more than once? Yes. You can have multiple email addresses or multiple Slack webhooks pointing at different workspaces.
What happens if a delivery fails? Failed deliveries are logged in Settings → Notifications → Delivery log. The event stays unnotified so a retry (manual re-run or the next scheduled scan) can attempt again.
Is there a rate limit? DomainCare applies a per-org outbound rate limit. Alerts blocked by the rate limit are logged with reason rate_limited in the suppression log.
Start alerting your team in minutes
Add a DomainCare account and connect your first channel in under two minutes.
Start free trial