Skip to main content
A Discord endpoint posts each event to one Discord channel as an embed: what happened, one sentence of detail and a link to the right page in Runcrate. You need no server. You need the Manage Webhooks permission on the Discord server.

Get a webhook URL from Discord

1

Open the server's integrations

In Discord, open your server’s menu and go to Server Settings > Integrations > Webhooks.
2

Create the webhook

Select New Webhook (Create Webhook if the server has none yet). Open the new webhook, give it a name such as Runcrate, and pick the Channel the messages should go to. Select Save Changes.
3

Copy the URL

Select Copy Webhook URL. It looks like https://discord.com/api/webhooks/1234567890/....

Add it to Runcrate

1

Add an endpoint

In Settings > Webhooks, select Add endpoint and choose Discord.
2

Paste the URL

Paste all of it into Discord webhook URL. Runcrate accepts discord.com/api/webhooks/... URLs (and the ptb. and canary. hosts).
3

Choose events and test

Pick All events or Choose events, then select Send a test event. An embed titled “Test from Runcrate” appears in the channel.

What the message looks like

Each event is one embed:
  • Title, linked to the page in Runcrate where you act on it, for example “production used 80% of its monthly budget”.
  • Description: one sentence with the detail and what happens next.
  • Colour on the left edge: green when something worked (an instance is ready, money was added), blue for information, amber for a warning (a budget at 80%, a runtime ending) and red when something stopped or failed.
  • Fields side by side, such as Environment, Month to date and Budget.
  • The event’s time, and Runcrate in the footer.
This is the exact body Runcrate posts for a budget.threshold_reached event:
What arrives in the endpoint drawer shows this for any event before you save.

The URL is the secret

Discord signs nothing. Anyone who has the webhook URL can post to your channel, so treat it like a password:
  • Do not paste it into tickets, chat or a repository.
  • Runcrate stores it encrypted and only ever shows its host and last four characters.
  • If it leaks, delete the webhook under Server Settings > Integrations > Webhooks, make a new one and paste the new URL into the endpoint with Edit.

When a message does not arrive

The delivery log shows each attempt with a sentence about what went wrong. For Discord it reads Discord’s answer: Failed messages are retried on the same schedule as any webhook. See retries.

Slack

The same events in a Slack channel.

Events

What each event means and when it is sent.