Skip to content

Connect Slack

From the console, choose Add to Slack. You will land on Slack’s own consent screen, pick the channel Nodrik should post to, and approve — Slack sends the resulting token straight to Nodrik without it ever passing through a person. Nodrik joins the channel you picked as part of the same step.

One incident, one thread. When an investigation finishes, Nodrik posts a card: the verdict, the evidence used, a suggested fix, and a confidence level — see Reading the card for the exact shape. An alert storm on the same underlying incident coalesces into that one thread rather than posting again for every alert.

Every permission the Slack app asks for, and what each one is actually for:

  • chat:write — post messages, including thread replies. The permission used most.
  • incoming-webhook — asked for at install only, to get a channel. Without it OAuth returns a token and no channel, and we would have to ask you which channel to post to in our own UI after you had already answered that question on Slack’s consent screen. Nodrik posts through chat.write and never uses the webhook URL Slack hands back.
  • app_mentions:readthe one that reads. It delivers the messages that name Nodrik, and nothing else, which is what lets you ask a follow-up in a thread. Following a thread unprompted would need channels:historyread every message in the channel — and we do not ask for it.
  • channels:read — list your public channels, so choosing where a project posts is a list rather than a channel id you have to find.
  • chat:write.public — post to a public channel it has not been invited to. Without it, choosing a channel would only work if somebody had already sent an invite, and the failure would be silent.
  • groups:read — the private channels Nodrik has already been invited to, so those can be chosen too. Narrower than it sounds: a private channel it has not joined stays invisible.

There are no slash commands. Nodrik cannot read an ordinary message in your channel — a conversation between you and a colleague under one of its cards stays unread unless somebody types Nodrik’s name into it.

This page said something stronger until 2026-09-11 — that Nodrik reads nothing at all — and that stopped being true when follow-up questions shipped. Corrected here rather than quietly reworded.

Interactivity is switched on, which is a different thing and worth separating: it is what lets the buttons on a card come back to us. Slack sends us the click — which button, on which card, and which user pressed it — and nothing else in the channel. A click is something a person hands over deliberately; it is not a read. Those requests carry Slack’s own signature, and that signature is the whole of their authentication. What the buttons do is on The console’s history.

Nothing about connecting Slack changes Nodrik’s access to your Google Cloud project — that grant is entirely separate and covered on its own page.

The workspace channel — where everything goes unless you say otherwise — is chosen at connection time, on Slack’s own consent screen, which is also what invites Nodrik into it. To move it, reconnect through Add to Slack and pick a different channel.

One channel for everything stops working at the second project: the people who care about payments scroll past the batch alerts until they stop reading either.

In the console, Settings → Projects has a Reports to column. It says Workspace channel for a project that has not been given one of its own; press it to pick a different channel for that project alone.

Two things are worth knowing:

  • The default is a real choice. A project you never configure keeps reporting to the workspace channel. There is no state where a project has nowhere to post.
  • The channel is checked before it is saved. If Nodrik cannot post there, the console says so while you are still looking at the picker, rather than at 3am when the first alert arrives.

Removing a project from Settings also forgets its channel.

Nodrik can post to any public channel in your workspace without being invited. A private channel with no invite is different: Slack provides no way for an app to join one, by design.

So a private channel appears in the picker only once somebody has invited Nodrik to it. In the channel, type:

/invite @nodrik

Then reopen the picker and it will be there. This is deliberately the same set: what Nodrik can see is exactly where it can post, so the picker never offers something the first incident disproves.

If you would rather not invite Nodrik anywhere private, nothing breaks — the workspace channel keeps working, and so does every public channel.

Remove the app from your workspace’s Settings → Manage apps → Nodrik → Remove App. The token is invalidated immediately and Nodrik loses all Slack access with it — there is nothing further to ask us to revoke.

A missing post is silent by design — a Slack delivery failure never fails the investigation, so the report is still saved and viewable in the console even if Slack did not receive it. If a report is missing from the channel, check the console’s investigation history first: if the report exists there but never posted, the most common cause is Nodrik having been removed from the channel after the initial connection. Reconnecting through Add to Slack sends the invite again.

A report that is not in the console either was never investigated, and the reason is one of four — see When no card appears.