Docs · Integrations
Slack voting-window notifications
Connect a Slack incoming webhook to a room so it posts a message when an async voting window opens, is closing soon, and closes. This is a Pro feature, configured per room.
Last updated: July 5, 2026
Overview
SprintBee can post a Slack message on a room's behalf at three points in an async voting window's lifecycle: when the window opens, when it's closing soon with participants still outstanding, and when it closes. This gives a team a heads-up in Slack instead of everyone needing to check the room directly.
Notifications are configured per room, not per account — each room has its own webhook (or none). This is a Pro feature: rooms on the Free plan don't have async voting windows at all, so there's nothing to notify about.
Prerequisites
Before setting this up, make sure you have:
- A SprintBee room on a Pro-plan account. The Notifications section shows "Voting-window notifications are a Pro feature" until then.
- Moderator access to the room — only a moderator can view, save, test, or remove notification settings.
- Permission in your Slack workspace to add an incoming webhook to a channel.
Set up the Slack webhook
Create the webhook on Slack's side first, then paste its URL into the room.
- In Slack, go to api.slack.com/messaging/webhooks and follow the prompts to create a new Slack app (or use an existing one) for your workspace.
- Under that app's "Incoming Webhooks" feature, activate incoming webhooks and click "Add New Webhook to Workspace".
- Pick the channel that should receive voting-window updates and authorize it.
- Copy the generated webhook URL — it looks like https://hooks.slack.com/services/....
Configure the room in SprintBee
In the room, open Room settings (the gear icon in the topbar — moderators only), then the "Integrations" tab. The Notifications section sits below the Jira integration section.
Use the "Slack" card — Microsoft Teams has its own card right below it, and both can be configured at once.
Paste the webhook URL into the Webhook URL field and click "Save". Once saved, the field only shows a placeholder ("Webhook saved — leave blank to keep it") — the stored URL is never displayed again.
Click "Send test message" to confirm delivery. A successful test shows "Test message sent — check the Slack channel."; a failed one shows "Slack didn't accept the message. Double-check the webhook URL."
To change the webhook, paste a new URL and save again. To stop notifications for the room, click "Turn off" — this deletes the stored configuration entirely rather than disabling it in place.
What each message contains
Every message links back to the room ("Open the room") and its content depends on which event triggered it. No participant names ever appear in these messages.
- Window opened: how many items are ready for estimation, and when the window closes (an absolute UTC time, since SprintBee doesn't track each participant's timezone).
- Window closing soon: how many participants still haven't cast every vote available to them, and when the window closes. This message is only sent if at least one eligible participant still has an outstanding vote — a window where everyone already voted doesn't get a reminder.
- Window closed: how many items were auto-accepted by consensus and how many still need discussion.
Storage and removal
The webhook URL is encrypted at rest and is treated like a credential — SprintBee never sends it back to the browser once saved, and it's never written to logs. The settings panel only ever shows whether a webhook is configured, which provider, and a delivery-health signal.
Removing the webhook ("Turn off") deletes the stored configuration for that room. There's no separate "pause" state — turning notifications back on means saving a webhook URL again.
Microsoft Teams
The same voting-window notifications can also post to a Microsoft Teams channel — the "Microsoft Teams" card sits alongside the Slack card in the room's Integrations tab, and a room can use both at once. Teams uses a Power Automate Workflows webhook rather than a Slack-style incoming webhook, so it has its own setup guide.
Read the Teams notifications setup guide
Troubleshooting
Most problems fall into a few categories:
- "Enter a valid URL" / "Enter a Slack incoming-webhook URL (https://hooks.slack.com/services/...)" on save — the URL isn't a well-formed https:// URL on the hooks.slack.com host. SprintBee only accepts genuine Slack incoming-webhook URLs.
- "Slack didn't accept the message. Double-check the webhook URL." on a test send — the request reached SprintBee but Slack rejected the post (for example, the webhook was revoked or the channel/app was removed). Regenerate the webhook in Slack and save the new URL.
- "Recent notifications may be failing to deliver. Check the webhook URL below." — shown once three voting-window sends in a row have failed. Live window events fail silently in the moment (a failed send never blocks or interrupts the voting window), so this banner and the test-message button are the way to notice a broken webhook without waiting to hear from participants that Slack went quiet.
- No message arrived for a closing-soon reminder — check whether every eligible participant had already voted; that case intentionally sends nothing.
- Notifications section shows a Pro-only message — the room's account isn't on a Pro plan, or you're not a moderator on the room.
FAQ
Who can configure this? Only room moderators can view, save, test, or remove notification settings — the section doesn't appear for other participants.
Can I send to more than one Slack channel? No — a room has exactly one webhook configured at a time. Point it at a channel that everyone who needs updates can see, or use a Slack workflow on that channel to fan out further.
Does a failed send retry? No. Each event is a single fire-and-forget attempt; if it fails, the next event still tries independently, and the consecutive-failure counter is what surfaces a broken webhook to the moderator.
Can I preview what a message looks like without waiting for a real window event? Yes — "Send test message" posts a real message using the same delivery path production events use, so a successful test is a genuine signal the webhook works.