Integrations
Mattermost
Lineman posts spend alerts into a Mattermost channel through an incoming webhook. There is nothing to install on your server and no app to approve: you create a webhook in Mattermost, paste its URL into Lineman, and send a test message to prove it works.
Not generally available yet. Chat destinations sit behind the integrations feature flag, so the Mattermost page may not be in your dashboard yet. If you cannot see it, that is why, and not something you have configured wrongly.
Create the webhook in Mattermost
- 1Open Main menu, then Integrations, then Incoming Webhooks. If that entry is missing, incoming webhooks are switched off for the whole server and a system admin has to enable them in System Console, then Integrations.
- 2Choose Add Incoming Webhook, give it a title, and pick the channel the alerts should land in. The channel is chosen here, in Mattermost, not later in Lineman.
- 3Save, then copy the URL it generates. It looks like
https://mattermost.example.com/hooks/xxxxxxxxxxxxxxxxxxxxxxxxxx, on whatever host your Mattermost runs on.
The webhook is locked to that channel unless Allow integrations to override usernames and channels is switched on for your server. That is fine here: Lineman never tries to override the channel, so alerts land where you picked.
Add the URL to Lineman
- 1In the Lineman dashboard, open Integrations and choose Mattermost, at
/dashboard/integrations/mattermost. - 2Paste the webhook URL into the form and save. It has to start with
https://. The URL is a credential, so we will not carry it over plaintext, and a URL we reject tells you why straight away rather than failing quietly later. - 3Press Test. Lineman posts a real message to your channel using the same payload a live alert uses, so a message arriving is proof the real thing will arrive too.
Do not skip the test. Everything about this setup that can fail quietly - a revoked webhook, a typo in the host, a server the public internet cannot reach - fails during the test, in front of the person who just pasted the URL, instead of at 2am inside an alert nobody sees.
Self-hosted servers
Most Mattermost installations are self-hosted, so we deliberately do not restrict which host the webhook URL points at. Your own domain is expected and works exactly the same as Mattermost Cloud.
Two things still have to hold. The URL must be https://, and the server must be reachable from the public internet: Lineman refuses to post to private or internal network addresses, so a hostname that only resolves inside your VPN will never receive alerts.
Treat the URL like a password
Anyone holding the webhook URL can post into that channel, with nothing else needed to prove who they are. Lineman stores it encrypted and never shows it back to you in full. If it leaks, delete the webhook in Mattermost, create a new one, and paste the replacement in: there is nothing else to rotate on our side.
What lands in the channel
Mattermost renders Slack Block Kit natively, which is why the alert looks the same as the Slack one. Lineman builds the message once and posts it to every destination, so an improvement to the alert wording reaches Mattermost at the same time as everywhere else.
- Amounts are in US dollars, never cents. That holds everywhere in Lineman, not just in chat alerts.
- Chat does not replace email. A spend alert still goes out by email as well, and turning one destination off leaves the other running.
If it stops working
- A failed delivery is recorded against the integration and shown on its page. It is never silently dropped, so a channel that has gone quiet has a stated reason.
- The usual cause is a deleted webhook. Someone removes it in Mattermost and delivery starts returning an error. Create a new one, paste it in, and press Test again.
- Destinations are independent. A broken Mattermost webhook does not stop your other chat destinations receiving the same alert, and it has no effect on email.