Skip to content

Mattermost integration

The Mattermost integration posts to a channel through an incoming webhook, using Mattermost’s Slack-compatible attachment format. It works with self-hosted and Cloud instances alike, since the webhook URL is yours.

  1. In Mattermost, go to Integrations → Incoming Webhooks.

  2. Add Incoming Webhook, pointed at the channel you want alerts in.

  3. Copy the URL. It looks like https://your-mattermost.example.com/hooks/....

In the dashboard, Integrations → Add Integrations → Mattermost. Name it, paste the URL into Webhook URL, and click Add. Or via the API:

Terminal window
curl -X POST https://api.siteqwality.com/integration/mattermost \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"friendly_name": "Acme Mattermost",
"url": "https://your-mattermost.example.com/hooks/xxxxxxxx"
}'

The request field is url; the stored and returned field is mattermost_webhook_url. Both fields are required and must be non-empty, and the URL is not validated or tested at save time.

Terminal window
curl -X POST https://api.siteqwality.com/notification \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"notification_group_id": "<your-group-id>",
"type": "mattermost",
"details": { "mattermost_integration_id": "<mattermost-integration-id>" }
}'

Messages post as SiteQwality with a Slack-style attachment: a colored bar, a title, and fields for the monitor details.

EventColor
Monitor downred (#ff0000)
Monitor recoveredgreen (#36a64f)
Domain expiry warningamber (#ffcc00)

Each attempt has a 15 second timeout, and any non-2xx response counts as a failure.

Mattermost channels fire for HTTP monitors, browser checks, and DNS/domain expiry. TLS expiry and cron/heartbeat monitors only support email, SMS, and Slack today; a Mattermost channel on a group used by those monitor types is skipped.