Slack Integration
Table of contents
- Overview
- Quick Setup (Incoming Webhooks)
- What the Slack integration does today
- Troubleshooting
- Best Practices
- Integration Examples
- Related
Overview
Connect ButterStack to Slack for instant notifications about builds, asset updates, and approvals. The integration uses Slack incoming webhooks; see What the Slack integration does today for the current scope.
Requires Team or above
Slack is not included on the Indie plan - it appears under Needs upgrade on the integrations page. Discord is available on every plan and supports separate channels per notification type.Quick Setup (Incoming Webhooks)
The fastest way to get started is with incoming webhooks for basic notifications.
Step 1: Create Webhook in Slack
- Go to api.slack.com/apps
- Click Create New App → From scratch
- Name it “ButterStack” and select your workspace
- Go to Incoming Webhooks → Enable
- Click Add New Webhook to Workspace
- Select the channel for notifications
- Copy the webhook URL
Step 2: Configure in ButterStack
- Navigate to Project → Integrations
- Click Add Integration → Slack
- Paste the Incoming Webhook URL
- Optionally set a default Channel (e.g.
#builds) - Save, then click Test Connection
Those two fields are the whole form - there is no per-notification-type selection.
What the Slack integration does today
The Slack integration is outbound incoming-webhook notifications only. In ButterStack it has exactly two fields - the incoming webhook URL and a default channel - and it posts build, asset and approval notifications to that webhook.
Not available yet
There is no ButterStack Slack app. The following do not exist and cannot be configured: OAuth / bot-token mode, a signing secret, slash commands (/butterstack ...), interactive message buttons (approve from Slack), Events API subscriptions, per-notification-type channel routing, and custom message templates. ButterStack exposes no /slack/commands, /slack/interactive or /slack/events endpoints for Slack to call.If you want notifications split across several channels today, use Discord - it supports separate webhooks for builds, assets, alerts and approvals - or create more than one Slack integration, each with its own channel’s incoming webhook.
Approvals are performed in ButterStack: follow the link in the notification.
Troubleshooting
Messages Not Delivering
Check these common issues:
- Webhook URL: Ensure it’s correctly copied
- Channel permissions: the incoming webhook is bound to the channel you chose when you created it in Slack
- Rate limits: Slack limits to 1 message/second per channel
- Network: Verify ButterStack can reach Slack (no firewall blocking)
Test with cURL:
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Test from ButterStack"}' \
YOUR_WEBHOOK_URL
Best Practices
📢 Channel Strategy
- Create one Slack integration per channel you want to post to
- Keep a dedicated channel for build failures so they are not buried
- Prefer Discord if you need builds/assets/alerts/approvals split automatically
Integration Examples
Python Webhook Example
import requests
import json
def send_butterstack_notification(webhook_url, message):
payload = {
"text": "ButterStack Notification",
"attachments": [{
"color": "#5D5DFF",
"title": message['title'],
"text": message['description'],
"fields": [
{"title": "Status", "value": message['status'], "short": True},
{"title": "Time", "value": message['timestamp'], "short": True}
],
"footer": "ButterStack",
"footer_icon": "https://www.butterstack.com/icon.png"
}]
}
response = requests.post(
webhook_url,
data=json.dumps(payload),
headers={'Content-Type': 'application/json'}
)
return response.status_code == 200
Related
- Discord Integration - Multi-channel notifications for gaming communities
- Troubleshooting - Common issues and solutions