A connection is a third-party OAuth install — today only Slack, with Discord and Telegram to follow — attached to a Nevo project. One connection captures the workspace-level identity and bot token; one or more channels then subscribe to specific slices of that workspace’s events.
Two primitives, two levels:
- Connection — “my Acme Slack workspace is connected to this project.”
- Channel — “I want events whenever the bot is @mentioned, and separately whenever anyone posts in
#support.”
You can have many channels on one connection, but the combination of (connection, subscription) is unique — you can’t have two channels both listening to @mentions on the same workspace, or both listening to #support messages.
Lifecycle
1. Install
Go to Projects → your project → Connections and click connect slack. You’ll be redirected to Slack’s consent screen where you approve the Nevo bot for your workspace, then bounced back to Nevo. The connection now exists but has no subscriptions — you add those next.
A Slack workspace can only be connected to one Nevo project globally. Attempting to connect the same workspace to a second project returns a clear “workspace taken” error.
2. Add a subscription (a channel)
From Channels → new channel → slack, pick which connection to use and which slice you want:
@mentions— only events where the bot is@mentioned. One per connection.channel messages— every non-bot message in one specific Slack channel. One per(connection, slack channel)pair. Requires the bot to be invited to the channel (/invite @nevoinside Slack) before events flow.
Give the subscription a short label (e.g. “support questions”) — it shows up on the events list and in the dashboard.
3. Reauthorize (if needed)
A fresh install grants just enough scope to receive @mentions and read channel metadata (so the picker can list your Slack channels by name). Subscribing to channel messages needs additional permission (channels:history + groups:history) that the initial install didn’t ask for — Nevo detects the gap and surfaces a reauthorize in slack button inline. Clicking it redirects to Slack with the extra scopes; on approval you’re back in the dashboard with the subscription ready to save.
Subsequent subscriptions on the same workspace don’t re-prompt — scope is remembered per connection.
4. Disconnect
From the connections page, click the trash icon on the connection card. Nevo refuses if any channels still reference it — remove them first. On confirm, the bot is uninstalled from your Slack workspace and the connection row is dropped. Past events stay for audit.
Subscription shapes
Today:
{ "kind": "mention" }
{
"kind": "channel_messages",
"slack_channel_id": "C01ABCD…",
"slack_channel_name": "support"
}
The slack_channel_id is what the router matches on — if the Slack channel is renamed, delivery keeps working; only the display label goes stale (refresh by re-picking the channel in the dashboard).
Plan availability
Same as Slack channels today — Pro and Scale include Slack connections. Hobby and Hacker don’t.
| Tier | Slack connections |
|---|---|
| Hobby | |
| Hacker | |
| Pro | ✅ |
| Scale | ✅ |