How to Configure Slack Alerts for Client SSL Expiry
Slack is where most agency teams already live. Routing SSL expiry alerts to a dedicated Slack channel means you catch certificate problems before your clients do — without needing to check a separate dashboard.
This guide walks through the two-channel setup that most agencies use: a #monitoring-internal channel that receives all alerts (warning and critical), and a second channel or client contact that only receives critical alerts. The setup takes about ten minutes.
What you need
- A Merlonix account with at least one asset configured
- A Slack workspace where you can create an app and Incoming Webhook
- Admin permission in your Slack workspace (or a Slack admin who can create the webhook for you)
Part 1: Create a Slack Incoming Webhook
A Slack Incoming Webhook is a URL that accepts POST requests and posts messages to a specific Slack channel. You create one per channel you want to receive alerts.
Step 1: Go to the Slack API dashboard
Visit api.slack.com/apps and click Create New App.
Choose From scratch, give it a name (e.g., Merlonix Alerts), and select your workspace.
Step 2: Enable Incoming Webhooks
In the left sidebar, click Incoming Webhooks. Toggle Activate Incoming Webhooks to On.
Step 3: Add a webhook to a channel
Scroll down and click Add New Webhook to Workspace. Select the channel you want alerts to go to (e.g., #monitoring-internal).
Authorize the app. Slack generates a webhook URL that looks like:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
Copy this URL. You will use it in the next step.
For a second channel: repeat steps 2–3, selecting a different channel (e.g.,
#client-alerts). Each channel needs its own webhook URL.
Part 2: Add the Slack channel to Merlonix
Step 1: Open Alert Channels
In Merlonix, go to Settings → Alert channels and click Add channel.
Step 2: Select Slack
Choose Slack as the channel type. Paste the Incoming Webhook URL from the previous step.
Step 3: Set the severity filter
Choose which alert levels this channel should receive:
| Channel purpose | Severity setting |
|---|---|
Internal team channel (#monitoring-internal) | Warning and above |
| Client-facing channel or client contact | Critical only |
Warning captures SSL certificates 8–30 days from expiry — enough time to act before clients notice anything. Critical fires at 7 days or less, and also for key downgrades and issuer anomalies that require immediate attention.
Setting your internal channel to warning means you see the problem 8–30 days early. Setting it to critical only means you might get a 7-day warning and have to scramble for a renewal over a weekend.
Step 4: Save and test
Click Save. Then click Test — Merlonix sends a sample alert payload to your webhook URL.
In Slack, you should see a test message appear in the channel within a few seconds. If it does not arrive:
- Confirm the webhook URL is correct (no extra spaces, correct channel)
- Check that the Slack app is still authorized (visit your app's webhook settings and confirm the webhook is active)
- Check your Slack workspace's app restrictions if your workspace has admin-only app installation
Part 3: Add a second channel for critical-only alerts
If you want clients to receive Slack alerts directly, or if you want a separate #client-critical channel, repeat Part 1 and Part 2 with:
- A new webhook pointing to the target channel
- Severity filter set to Critical only
This produces two alert streams:
#monitoring-internalreceives everything at warning and above — your team sees problems early#client-criticalor client Slack channel receives only critical alerts — the ones that need action right now
What alert messages look like
When Merlonix fires a Slack alert, the message includes:
🔴 [CRITICAL] SSL expiry — Client A — main site
clienta.com expires in 6 days
→ https://app.merlonix.com/app/assets/<id>
The emoji and severity level change with the alert level:
- 🔴 CRITICAL — requires immediate action
- 🟡 WARNING — action needed within days
- 🔵 INFO — state change, no immediate action required
The direct link opens the asset detail page in Merlonix, where you can see the full check history and trigger a manual recheck.
Common configurations
Agency managing 20+ clients
- One
#monitoring-internalSlack channel, connected to Merlonix with severity: warning and above - No client-facing Slack channels — use email to notify clients on critical-only events
Agency with dedicated account managers per client
- One internal
#monitoringchannel for the full team - One private Slack channel per major client, with a webhook set to critical-only
Small agency, 1–5 clients
- Single Slack channel connected to all alerts
- Severity: warning and above for everything — small team can handle the volume
Keeping webhooks active
Slack deactivates Incoming Webhooks that have not received requests in 30 days. If you go a month without a critical alert and then one fires, the webhook may have been deactivated.
To keep webhooks active, Merlonix sends a keepalive test every 28 days to any connected Slack channel. If the test fails (the webhook has been deactivated), you receive an email notification to re-enable it.
If you receive this notification, go to Settings → Alert channels, find the Slack channel, click Test, and follow the prompt to regenerate the webhook if needed.
Troubleshooting
Alert fires in Merlonix but Slack message does not arrive: Check the webhook URL in Settings → Alert channels. Visit the Slack API dashboard and confirm the webhook is still active under your app's Incoming Webhooks settings.
Receiving too many alerts: Increase the severity filter to Critical only. Warning-level alerts for gradual expiry can accumulate when monitoring a large portfolio. Reduce noise by handling warnings in Merlonix and reserving Slack for critical-only events.
Not receiving any alerts:
Confirm at least one asset has an active monitoring schedule. Navigate to an asset and click Run check to trigger a manual check. If the result is warning or critical and you have a matching Slack channel with the correct severity filter, an alert should fire.
Related:
- Alert Channels — full reference for email, Slack, and webhook alert configuration
- Monitoring Concepts — how SSL severity levels are classified
- How to Set Up SSL Monitoring for All Your Client Domains in 30 Minutes — complete portfolio setup guide