The Nuon Slack app posts deploy, action, workflow, and approval events into Slack channels you choose, and lets users approve workflow steps without leaving Slack.Documentation Index
Fetch the complete documentation index at: https://docs.nuon.co/llms.txt
Use this file to discover all available pages before exploring further.
The Slack integration is gated by an org feature flag. If you don’t see Slack
in the dashboard sidebar, ask Nuon support to enable the
slack feature flag for
your org.Overview
There are three pieces of state involved:| Concept | What it is |
|---|---|
| Slack installation | The OAuth installation of the Nuon app in a Slack workspace. One per workspace. |
| Org link | Connects a Nuon org to a Slack workspace. One Nuon org can be linked to multiple workspaces; one workspace can host multiple orgs. |
| Channel subscription | A per-channel rule that decides which events from a linked org are posted into that channel. Backed by match + interests. |
Installing the Slack app
- In the dashboard sidebar, click Slack.
- Click Install in Slack. You’ll be redirected to Slack’s OAuth consent screen.
- Approve the requested scopes. Slack redirects back to Nuon and creates the workspace installation.
- The workspace now shows up under Slack → Linked workspaces for your org.
Subscribing a channel
Subscriptions are created from inside Slack via the slash command:- Org — which linked Nuon org to subscribe to.
- Match — which entities in the org events must come from.
- Interests — which events you care about.
/nuon subscribe in a channel that already has a subscription opens
the modal pre-filled with the current settings — you can use it to edit.
Slash commands
| Command | What it does |
|---|---|
/nuon subscribe | Open the subscribe dialog for the current channel. |
/nuon unsubscribe | Open the unsubscribe dialog for the current channel. |
/nuon status | Show the workspace installation, linked orgs, and the current channel’s subscription (if any). |
/nuon help | Show the help message. |
Match — routing predicate
match decides which entities a subscription cares about. Three modes:
- Org-wide — every entity in the linked org.
- Specific IDs — an explicit list of install / app / component IDs.
- Label selector — entities whose labels match a selector (e.g.
env=prod,tier=critical).
match contract is shared with webhooks, so the same
mental model applies in both places.
Interests — event filter
interests decides which kinds of events are delivered. It’s a structured filter
across:
- Resource kinds —
installs,components,actions,workflows. - Operations —
deploy,destroy,plan, etc. - Outcomes —
completion,failures. - Approvals — approval requests and approval responses.
installs with
the env=prod label, and interests of deploy + failures.
Approvals from Slack
When a workflow step requires approval and a channel is subscribed to approval events, Nuon posts the approval request into that channel with Approve / Reject buttons. Clicking either button records the response against the approver’s Nuon account (resolved from their Slack identity), so the audit trail matches a dashboard approval.Unsubscribing
From inside the channel, run:Removing the workspace installation
To fully remove the Nuon app from a workspace, an org admin can delete the Slack installation from Slack → Linked workspaces in the dashboard. This deletes the OAuth token, all org links for the workspace, and all channel subscriptions tied to those links.Troubleshooting
/nuon subscribesays “this workspace isn’t linked to any Nuon org yet” — Open the dashboard and complete the OAuth install for the org you want to subscribe to.- No events arriving in a subscribed channel — Run
/nuon statusin the channel to confirm the subscription is recorded, then verify the source entity’s labels actually match thematchselector. - Buttons in approval messages do nothing — The Slack app’s Interactivity Request URL must be reachable from Slack. If you’re running locally, your Slack app config must point at a public tunnel (e.g. Tailscale Funnel or ngrok) in front of the Nuon Slack listener.