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.
budget.threshold_reached event:
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.