Integrations
Discord
Spend alerts can post straight into a Discord channel. Discord accepts the same message shape as Slack, so there is nothing to install and no app to authorise: you create a webhook in your server, paste the URL into Lineman, and alerts arrive in the channel as soon as they fire.
Paste the URL exactly as Discord gives it to you. Discord only accepts this message format at the /slack variant of the webhook URL, so Lineman adds /slack for you when it saves. Adding it yourself is fine too, we will not double it up. Without that suffix Discord answers with a bare 400 and no explanation, and nothing reaches the channel - a failure you would otherwise only notice as alerts that never turned up.
Create the webhook in Discord
- 1In Discord, open Server Settings → Integrations → Webhooks. The same screen is reachable from a single channel via Edit Channel → Integrations.
- 2Choose New Webhook, give it a name, and pick the channel the alerts should land in.
- 3Choose Copy Webhook URL. What you get looks like
https://discord.com/api/webhooks/000000000000000000/xxxxxxxx.
You need a role with Manage Webhooks on that server to create one. If the Webhooks screen is missing, or will not let you add anything, ask whoever administers the server to create the webhook and send you the URL.
Add it to Lineman
- 1Go to Dashboard → Integrations → Discord and paste the URL into the webhook field.
- 2Save. A URL that is not a Discord one is refused there and then, with the reason, rather than accepted and quietly never used.
- 3Press Test. That posts a real message into the channel, built exactly like a genuine spend alert, so a message appearing in Discord proves the whole delivery path works and not merely that the URL is well-formed.
Treat the webhook URL like a password. Anyone holding it can post into that channel. Lineman stores it encrypted and never shows it back to you in full, so if you need the URL again, copy it from Discord rather than expecting to read it out of Lineman.
Discord webhooks only
Discord is cloud-only, so Lineman requires the webhook URL to be on discord.com (or the older discordapp.com, which some long-standing webhooks still use) and refuses anything else when you save. That is deliberately stricter than our Mattermost, Rocket.Chat and Zulip destinations, where self-hosting is the norm and pinning a host would reject most people. If a save is refused because of the host, the usual cause is a shortened or redirecting link: paste the original URL Discord gave you.
What lands in the channel
- Spend alerts, as they fire. The same alerts you already get by email, formatted for Discord. Connecting Discord does not change which alerts fire and does not switch your email alerts off.
- Amounts are in US dollars. Lineman shows money in dollars everywhere, never cents, so a figure in the channel needs no conversion before you act on it.
- Each destination delivers on its own. If you have several chat destinations connected, one breaking does not stop the others, and none of them affect email.
If it stops working
- The usual cause is the webhook no longer existing. Deleting the webhook in Discord, or deleting the channel it posts to, invalidates the URL. Create a new webhook and paste the new URL in.
- Failures are recorded, not swallowed. A delivery Discord rejects is stamped on the integration and shown on its page in Lineman, so that page is the first place to look when the channel goes quiet.
- Press Test after any change. It is the only check that proves Discord is accepting messages now, rather than that the URL looks right.
Still rolling out. Integrations are behind a feature flag and are not open to every account yet. If Dashboard → Integrations does not list Discord for you, it has not reached your account yet, and there is nothing to set up in the meantime.