Get a webhook URL from Slack
1
Create a Slack app
Go to api.slack.com/apps and select Create New App, then From scratch. Name it (for example
Runcrate), pick your Slack workspace and select Create App.2
Turn on incoming webhooks
In the app’s menu, open Incoming Webhooks and switch Activate Incoming Webhooks on.
3
Add a webhook to a channel
Select Add New Webhook to Workspace, pick the channel the messages should go to and select Allow.
4
Copy the URL
Back under Incoming Webhooks, find the new row and select Copy next to its Webhook URL. It looks like
https://hooks.slack.com/services/T.../B.../....If your Slack workspace requires approval for apps, an admin approves the app before the webhook works. One app can hold webhooks for several channels: repeat the last two steps for each.
Add it to Runcrate
1
Add an endpoint
In Settings > Webhooks, select Add endpoint and choose Slack.
2
Paste the URL
Paste it into Slack webhook URL. Runcrate accepts only
https://hooks.slack.com/services/... URLs (and hooks.slack-gov.com for GovSlack).3
Choose events and test
Pick All events or Choose events, then select Send a test event. A message titled “Test from Runcrate” appears in the channel.
What the message looks like
Each message is built with Slack’s Block Kit:- Title in bold, for example “production used 80% of its monthly budget”.
- One sentence with the detail and what happens next.
- Open in Runcrate, a link to the page where you act on it (the instances list, billing, environments, or webhook settings).
- Fields below, side by side, such as Environment, Month to date and Budget.
budget.threshold_reached event:
The URL is the secret
Slack 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, for example
hooks.slack.com/...Xy9Q. - If it leaks, remove the webhook in the Slack app (under Incoming 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 Slack it reads Slack’s answer and says it plainly:
Failed messages are retried on the same schedule as any webhook. See retries.