AdministrationSlack notifications

Slack notifications

Neens can post its insights (new failure modes, regressions, alert rule breaches, pre-production gate failures, judge drift and more) into the Slack channels your teams already watch. Your company, each org and each agent can have its own channels and its own rules, so the returns team hears about the returns agent and the platform team hears about everything critical, without anyone sharing a firehose.

At a glance

WhereSettings → Integrations
Building blocksSlack workspaces you connect, channels and webhooks Neens may post to, and routing rules that pick which insights go where
ScopesCompany, org or agent. Each one owns its own channels and rules
LimitsNone. Connect any number of workspaces, add any number of channels, and send one rule to any number of channels
Who can change itAn admin, for the parts of the company they administer. Everyone else sees the channels and rules for the parts they can access, read-only
DeliveryImmediately, or as a daily or weekly digest, with an optional cooldown
What is sentMetadata by default: titles, severities, counts and a link back to Neens. See What Neens shares with Slack
Acting from SlackTriage, Mute 7d and Generate fix on new-failure-mode cards, once you link your Slack account. Every button runs as you, with your Neens permissions
Asking from SlackThe /neens command, link previews, a morning inbox DM, review DMs and @Neens in a thread. All run as you, and only for people who linked their account
AuditEvery change, and every button pressed in Slack, is recorded in the audit log (chat.* events)

How the pieces fit

  • A Slack workspace connection is made once, by an admin, with Add to Slack. Every part of your company can then use it, unless the admin who connected it limits it to their own org or agent. You can connect as many workspaces as your teams use.
  • A channel (or an incoming webhook) is a place Neens may post. It is owned by your company, an org or an agent. The owner decides whether rules further down may use it too.
  • A routing rule belongs to your company, an org or an agent, and says which insights to send where: insight types, a minimum severity, optional tags, which agents, and one or more channels.

Rules are additive. Every rule that matches an insight sends it, and Neens de-duplicates by channel: if a company rule and an agent rule both send the same insight to #alerts, it is posted there once.

Who can do what

You are…You can
A company-wide adminConnect and disconnect any workspace; manage every channel and rule in the company
An org adminConnect a workspace for your org; manage the channels and rules of your org and its agents
An admin of one agentConnect a workspace for that agent; manage that agent’s channels and rules
A member or viewerSee the channels, rules and delivery log for the parts of the company you can access. You can’t change them

A rule can only send to a channel owned by the same scope, or to a channel an ancestor scope has shared down (the Let rules for orgs and agents below this scope use this channel option). An agent’s rule can never post to another agent’s channel or to a sibling org’s channel.

Being an admin of a Slack workspace doesn’t give you any rights in Neens, and being a Neens admin doesn’t give you any in Slack. Connecting a workspace needs both: a Neens admin who can also approve apps in that Slack workspace.

Connect a Slack workspace

Open Settings → Integrations

Find Slack workspaces at the top of the tab.

Select Add to Slack

If you administer more than one scope, Neens asks Connect Slack for…. Pick your company, an org or an agent. That only records where the connection came from; by default the whole company can still use it.

Approve the app in Slack

Slack shows the permissions Neens asks for (listed below). Choose the workspace and select Allow. On Slack Enterprise Grid you can instead choose your organization, to install Neens in every workspace at once (see Enterprise Grid).

Back in Neens

You return to Settings → Integrations with a confirmation, and the workspace is listed as Active. Repeat for every workspace your teams use.

Neens asks for the smallest set of Slack permissions it needs:

PermissionWhy
chat:writePost and update messages in channels Neens has been invited to
channels:readList public channel names in the channel picker
groups:readList the private channels Neens has been invited to in the channel picker
commandsReceive the /neens command
links:read, links:writePreview Neens links posted in Slack
im:writeSend the morning inbox DM and review DMs to the people who ask for them
app_mentions:readAnswer @Neens in a thread

If a later Neens feature needs another permission, the workspace shows Missing permissions and an Update permissions button. Nothing stops working in the meantime; only the new feature waits for your approval. A workspace connected before /neens, previews, DMs and @Neens arrived shows Update permissions until an admin approves them.

Enterprise Grid: install for the whole organization

On Slack Enterprise Grid, a Slack org admin can approve Neens for the whole organization in the Approve the app in Slack step. Neens then shows one row for the organization, labelled <organization> (organization), and every workspace in it can use Neens with no separate install.

  • Requests from any workspace of the organization reach your Neens account.
  • An organization and the workspaces in it belong to one Neens company. If another Neens company already connected the organization, or any workspace in it, the install ends with This Slack workspace is already connected to another Neens company, the same as for a single workspace. The same applies the other way round: a workspace inside an organization that another company connected can’t be connected on its own.
  • Slack lists channels one workspace at a time, so when you add a channel from an organization, Neens first asks Workspace in this organization. It lists only the workspaces the app has been added to. If it lists none, or the one you need is missing, a Slack organization admin adds the Neens app to that workspace in Slack’s organization settings first. You can also type /neens subscribe #channel <agent> in the workspace.
  • Removing the app from the organization in Slack disconnects it in Neens.

Limit a workspace to one org or agent

By default a connected workspace is usable by the whole company. To stop other teams from adding channels from it, open the row’s ⋯ menu and choose Limit to … (the org or agent it was connected from). Let the whole company use it undoes that.

Add a channel

Invite the Neens bot to the channel in Slack

In the Slack channel, type /invite @Neens. Neens can only post in channels it is a member of, public or private. It never posts into a channel it hasn’t been invited to.

Select New channel

Under Channels and webhooks, select New channel and keep Slack channel selected.

Choose who owns it

Owned by lists only the scopes you administer. It defaults to the agent you have selected.

Pick the channel

Choose the Slack workspace, then search for the channel. If the channel you pick doesn’t have Neens in it yet, the dialog reminds you to /invite @Neens there first.

If you choose a whole Enterprise Grid organization, also choose the Workspace in this organization the channel is in; the channel list then shows that workspace’s channels. The list holds only workspaces the app was added to: a Slack organization admin adds it to more in Slack’s organization settings.

Decide whether rules below may use it

For a company or org channel, Let rules for orgs and agents below this scope use this channel lets an org or agent admin route their own insights into it. It is off by default.

Select Add channel, then Send test message

From the channel’s row, Send test message posts a short test card and reports Test message sent or, if something is wrong, why (for example Neens isn’t in the channel).

Recipes

Critical insights for one agent, and a weekly digest for the team

“Send every critical insight for the returns agent to #returns-agent-alerts right away, and everything else about it to #team-weekly once a week.”

Add both channels

Select the returns agent in the agent switcher. In Settings → Integrations, add #returns-agent-alerts and #team-weekly with Owned by set to that agent (invite @Neens to both first).

Create the critical rule

Select New rule:

  • Name: Returns agent: critical
  • Applies to: the returns agent
  • Insight types: leave all unticked (every type)
  • Minimum severity: Critical
  • Delivery: Immediately
  • Send to: #returns-agent-alerts

Create the digest rule

Select New rule again:

  • Name: Returns agent: weekly digest
  • Applies to: the returns agent
  • Minimum severity: Low (Neens switches Delivery to Digest for you)
  • Delivery: Digest, How often Weekly, Day Monday, Time (UTC) 09:00 UTC (the picker also shows the time where you are)
  • Send to: #team-weekly

A critical insight now reaches #returns-agent-alerts immediately. It also matches the digest rule, so it appears in Monday’s digest in #team-weekly as well. The two rules send to different channels, so each channel gets it once.

A Monday summary of every agent for the team

“Every Monday at 09:00 UTC, post one summary per agent to #agent-review: its KPIs, its top failure modes and the fixes that held last week.”

Add the channel

In Settings → Integrations, add #agent-review with Owned by set to your company (invite @Neens to it first).

Create the weekly agent digest rule

Select New rule:

  • What to send: Weekly agent digest
  • Name: Monday agent review
  • Applies to: your company (or one org, to cover only its agents)
  • Agents: All agents in scope, or Only these agents
  • Day Monday, Time (UTC) 09:00 UTC
  • Send to: #agent-review

Each Monday, #agent-review gets one message per agent. Changing the day or time later in the week doesn’t send that week’s digest a second time.

One org-wide channel for every agent in an org

“Post every high-severity insight from any agent in the Customer Support org to #support-quality, except the sandbox agent.”

  1. Add #support-quality with Owned by set to the org.
  2. Create a rule that Applies to the org, keep All agents in scope, and tick the sandbox agent under Except these agents.
  3. Set Minimum severity to High, Delivery to Immediately, and Send to #support-quality.

New agents created in the org later are included automatically, because the rule covers the whole org.

To let each agent’s own admin route insights into that channel too, edit the channel and turn on Let rules for orgs and agents below this scope use this channel.

A company-wide “anything critical” channel

Add #neens-alerts owned by your company, then a company rule: Minimum severity Critical, Delivery Immediately, Send to #neens-alerts. Turn on the share-down option on the channel if teams should be able to add their own rules that post there.

An incoming webhook instead of the app

Use an incoming webhook when you can’t install the Neens app in a workspace, or want to post into a channel without inviting a bot.

Create the webhook in Slack

In Slack, create an incoming webhook for the channel (Slack’s Incoming Webhooks app, or your own Slack app) and copy its URL. It starts with https://hooks.slack.com/services/.

Add it in Neens

Select New channel, choose Incoming webhook, give it a Display name (for example Support weekly), choose Owned by, paste the Webhook URL and select Add channel.

Neens encrypts the URL and never shows it again; the list shows only its last few characters. To point the destination at a new webhook, edit it and choose Replace URL.

A webhook can only post. Neens can’t edit a message it posted through a webhook, so when an insight is resolved it posts a short Resolved follow-up instead of updating the original card, and a mute is not reflected there at all. Use a Slack channel through the app when you want cards to update in place.

Writing a rule

FieldWhat it does
NameUp to 120 characters
What to sendMatching insights, or a Weekly agent digest (see below). Fixed once the rule is created
Applies toThe company, org or agent whose insights the rule sees. Fixed once the rule is created
AgentsFor a company or org rule: All agents in scope (optionally Except these agents), or Only these agents
Insight typesLeave all unticked for every type, or tick the types you want
Only insights with any of these tagsOptional. Matches insights carrying at least one of the tags
Minimum severityLow, Medium, High or Critical. An insight with no severity never matches
DeliveryImmediately, or Digest: daily or weekly, at an hour in UTC
Cooldown (minutes)0 to 10080 (one week). See below
Message contentMetadata only or Redacted excerpts. See What Neens shares with Slack
Send toOne or more channels. Only channels this rule may use are listed
Rule is onTurn a rule off without deleting it

New rules default to High and Immediately.

Cooldown: held, never dropped

A cooldown limits how often one rule posts to one channel. After the rule sends an insight to a channel, any further insights it matches for that channel during the cooldown are held, then sent together as one summary message when the cooldown ends. Nothing is dropped. Updates to cards that were already posted (resolved, recurred) are never delayed by a cooldown.

Digests

A digest rule holds the insights it matches and posts one summary at the chosen hour (daily) or day and hour (weekly), listing each insight and its current state, so an insight that resolved in the meantime is shown as resolved rather than silently left out.

Weekly agent digest

A Weekly agent digest rule posts one summary per agent, once a week, on the day and hour (UTC) you choose: the agent’s KPIs against their targets, its top open failure modes, and the fixes that held in production that week. It ignores insight types, tags, severity and cooldown, and always sends metadata only. A section Neens could not read says so instead of showing zero. If Neens was down at that hour, the digest still goes out within the next few hours, and never twice for the same week.

Low-severity insights are usually best left to digests, so picking Low for a Matching insights rule switches its delivery to Digest (you can change it back).

When several rules match

Every matching rule counts, and each channel gets the insight once. If any of those rules wants it immediately (and is not in a cooldown), it is posted immediately; otherwise it waits for the earliest cooldown end or digest. Excerpts are included only if every rule sending to that channel asks for them.

What a message looks like

Each insight is posted as a card with its title, a short summary, its severity, the agent and company it is about, a few key numbers, and a link back to Neens. When the same insight recurs, Neens updates the original card and replies in its thread instead of posting a new one; when it is resolved, the card is updated and a reply says so.

For example, an alert rule breach on the Help Bot agent arrives in #agent-alerts as:

┃ Alert: Error rate
┃ Error rate is 25% over the last 1h.
┃
┃ Value        Threshold
┃ 0.25         > 0.1
┃ Measure      Window
┃ error_rate   1h
┃
┃ [ Open alerts ]
┃ High · Open · Acme Corp · Help Bot · 2026-10-14 09:30 UTC

The coloured bar on the left follows the severity (red for critical and high, orange for medium), turns green once the insight is resolved and grey when it is muted. The same card is what you see in a notification preview: [HIGH] Alert: Error rate — Acme Corp · Help Bot · 2026-10-14 09:30 UTC.

A digest or a cooldown summary is one message listing every held insight with its severity, its current state and a link, for example [HIGH] 2 insights since 2026-10-13 09:00 UTC.

With Redacted excerpts turned on for both the rule and the agent, a failure-mode or novelty card also carries a short excerpt of one example conversation (User: … / Agent: …), with personal data masked. See What Neens shares with Slack.

Muting an insight in Neens greys out its card in Slack and posts nothing new. A webhook message can’t be edited, so for a webhook destination a resolve is posted as a short Resolved: … message and a mute posts nothing.

Buttons on Neens cards in Slack act as you, so Neens first needs to know which Neens login belongs to your Slack account. You link it once per Slack workspace (and per Neens account, if several Neens accounts share that workspace).

Press any button on a Neens card in Slack

If your Slack account isn’t linked yet, the button does nothing except reply to you privately (only you see it) with Connect your account.

The link opens Neens. Sign in as you normally do (password, single sign-on or two-factor). The page shows exactly what will be linked: the Slack user, the Slack workspace, your Neens login and the Neens account. The link expires after 10 minutes and works once.

Select Continue with Slack

Slack asks you to sign in to Slack. This proves you are the Slack user who pressed the button, so a link forwarded to someone else can’t connect the wrong account. You land on Settings → Integrations with Your Slack account is linked.

Press the button again

From now on the buttons act as you.

Neens never links accounts by email address, and a Slack workspace admin gets no extra rights in Neens. What a button can do depends only on your role in Neens, for the agent the card is about.

Linked Slack accounts in Settings → Integrations lists the Slack accounts linked to you, with Unlink. A company-wide admin can switch to Everyone to see and unlink any account in the company. Removing someone from the company unlinks their Slack accounts at once.

Act from Slack

A card about a new failure mode (or a novel failing session) shows the failure mode, how many sessions it affects, a link to an example trace, and three buttons:

ButtonWhat it doesWho can use it
TriageOpens the failure mode in NeensAnyone who can see that agent in Neens
Mute 7dMutes the insight for 7 days, recorded as your rating. The card turns grey; after 7 days Neens un-mutes it and the card reopensMembers and admins of that agent
Generate fixDrafts a fix for the failure mode, as if you selected Generate fix in Neens. A reply in the card’s thread links to itMembers and admins of that agent

Each button acts once per press: pressing the same button again within a minute (a double-click) is ignored. Each button runs the same permission check as Neens itself, as you. If your role doesn’t allow an action, Slack tells you privately (Your Neens role doesn’t allow this) and nothing changes. A card from another Neens account in a shared workspace only works for people linked in that account.

Follow a fix in the card’s thread

Once a failure-mode card is posted, the fix’s progress is added as replies in that card’s thread, so one thread tells the whole story:

ReplyWhen
Fix draftedSomeone pressed Generate fix
Fix PR openedA pull request for the fix was opened (by the fix engine or a coding agent)
Fix mergedThe pull request was merged
Fix held in production or Fix regressed in productionNeens measured the failure mode before and after the merge, with the session counts

Replies are added only under a card that was actually posted to that channel. Incoming webhooks can’t be threaded, so a webhook channel gets these as separate messages, without buttons.

The /neens command

Type /neens in any channel or DM of a connected workspace. Replies are visible only to you, and every command runs as you, with your Neens permissions. If your Slack account isn’t linked yet, /neens only replies with how to link it (or type /neens link).

CommandWhat it doesExample
/neens status [agent]What changed in the last 7 days: new failures, regressions, metric anomalies, fixes waiting for review and fixes that held. With an agent, also its business KPIs against target/neens status Returns Bot
/neens failures [agent]The top failures right now, ranked by how many sessions they hit, with links/neens failures
/neens subscribe #channel <agent>Sends the agent’s high and critical insights to the channel, immediately. Creates a channel and a routing rule for that agent, exactly as Settings → Integrations would. Needs admin rights on the agent/neens subscribe #returns-alerts Returns Bot
/neens review <agent>Sends you the next trace from your review queue as a DM, with Pass and Fail/neens review Returns Bot
/neens inbox on [hour], /neens inbox offTurns your morning inbox DM on (at the hour you give, 0–23 in UTC) or off/neens inbox on 8
/neens link, /neens unlinkLink your Slack account, or unlink it
/neens use <account>Pick the Neens account to use when your Slack account is linked in several/neens use acme
/neens helpLists the commands

The agent is matched by its name (or its slug); quotes are optional. With no agent, status and failures cover every agent you can open, and subscribe and review ask which one you mean. Neens only ever lists agents you can open, so a name you can’t access gets No agent called … that you can open in Neens. Use here instead of #channel to subscribe the channel you are typing in. If Neens isn’t in that channel yet, the reply tells you to type /invite @Neens there.

/neens subscribe is a shortcut, not a different system: the channel and rule it creates show up in Settings → Integrations, where you can change or delete them, and the audit log records them as yours, from Slack.

When someone posts a link to Neens in Slack, Neens adds a preview under it:

Who posted the linkPreview
A person who linked their Slack account and can open that page in NeensThe page’s name and a few facts: a failure mode’s name, its session count and status; a fix’s title and status; a trace’s agent, status and duration
Anyone else (not linked, or can’t open that page)Only the kind of page, for example Neens · Failure mode

A preview is visible to everyone in the channel, so it never includes trace content, even for agents that allow excerpts in cards. Links need the agent in them to get a full preview, as links copied from Neens do (…/clusters/<id>?project=<agent>). Links to other sites are left alone.

Your morning inbox DM

Neens can DM you each morning with the items that need you, ranked like your action inbox in Insights: each item’s title, severity, agent and how many sessions it hit in the last 24 hours, plus a link. It lists only agents you can open, and it is sent only on days when something needs you.

It is off until you turn it on, for each linked Slack account:

  • in Neens: Settings → Account → Slack, switch Morning inbox DM on and pick Send at (shown in UTC and in your own time), or
  • in Slack: /neens inbox on 8 (8:00 UTC), and /neens inbox off to stop.

The DM arrives in the Neens app’s Messages tab in Slack.

Review traces from Slack

Label traces without leaving Slack: type /neens review <agent> and Neens DMs you the next trace from your review queue for that agent, with why it was picked and Pass and Fail buttons. Your verdict is saved as your label, exactly as on the Review page, and is what judges are aligned against. The next trace follows automatically until your queue is done.

  • The DM shows a short, redacted excerpt of the trace (the user’s first message and the agent’s final answer, with personal data masked) only when the agent’s Data shared with Slack setting is Redacted excerpts. Otherwise it shows the reason and a link to the trace.
  • Reviewing needs the member or admin role on the agent. A viewer gets Your Neens role can’t review traces in ….

Ask @Neens in a thread

Mention @Neens with a question, in a channel Neens is in, and it answers in the thread:

@Neens what’s failing in Returns Bot this week?

@Neens which fixes held after release for the Stylist agent?

@Neens how do I set up a weekly digest?

  • It answers as you, from the Neens data you can read, using the same tools as the assistant in Neens, but read-only: from Slack it can’t create, change or run anything.
  • It uses the LLM connection your agent uses in Neens. If none is set up it says so; an admin can add one in Settings → LLM providers.
  • Ask about an agent you can’t open and it refuses, without reading anything about it. Refusals and setup hints are shown only to you, not to the channel.
  • Links in its answers are live only when they point to Neens; anything Slack would treat as a mention or a channel-wide notification is shown as plain text.
  • Each person can ask a few questions a minute. Past that, it replies (only to you) that it is answering too many questions; wait a minute and ask again.
  • Its answer is visible to the channel, so it is told never to quote trace content. Neither your question nor its answer is stored in Neens.
  • If it can’t answer, it replies with a short reference such as (ref: 3f2a…); give it to your Neens admin to look up.

Several Neens accounts in one workspace

This only happens when your Neens deployment lets several Neens accounts share one Slack workspace (by default a workspace belongs to one account). If your Slack account is linked in more than one Neens account that shares the same Slack workspace, /neens, link previews and @Neens need to know which one you mean. They ask you to choose once:

/neens use acme

Buttons on cards don’t need this: each card already belongs to one Neens account.

The delivery log

Delivery log at the bottom of the tab lists every message Neens tried to send in the last 30 days, for the channels you can see, with what happened:

StatusMeaning
Waiting to sendQueued, or waiting to retry after Slack asked Neens to slow down or was unavailable
SendingBeing sent now
SentPosted
Held for a digest or cooldownWill go out with the next digest or when the cooldown ends (the time is shown)
Sent in a batchWent out as part of a digest or cooldown summary
Not sentDeliberately skipped, for example the channel is off or the workspace is disconnected
FailedSlack refused it for a reason a retry can’t fix, such as Neens isn’t in the channel
Gave upSlack stayed unavailable for too long (72 hours), so Neens stopped retrying

When Slack is down, messages wait and are delivered once it recovers; they are not lost.

Disconnect, reconnect and update permissions

  • Disconnect (the row’s ⋯ menu) tells you how many channels stop receiving messages, then removes the connection and tells Slack to revoke Neens’ access. Your channels and rules stay in Neens, so reconnecting later brings them back without setting anything up again.
  • A Slack workspace can be connected to only one Neens company at a time: Slack gives the Neens app a single access token per workspace, so a second company would see and could post in the first company’s channels. If your deployment’s operator has allowed a workspace to be shared and another Neens account also uses it, Neens removes only your connection and leaves the app in place for them. The confirmation says so.
  • To remove Neens from Slack’s side instead, open Slack’s Manage apps page for your workspace, pick Neens and select Remove App. The connection then shows as Disconnected in Neens.
  • Only an admin of the scope a workspace was connected from (or of a scope above it) can reconnect a workspace that was disconnected, so an agent admin can’t undo a company admin’s disconnect.
  • An org or agent admin can disconnect a workspace they connected only while no channel outside their scope uses it; otherwise a company-wide admin has to.
  • A workspace someone removed from Slack’s side shows as Disconnected. One whose access Slack rejected shows Needs attention. Use Reconnect from the ⋯ menu.
  • Deleting an agent removes its channels, rules and delivery history, and disconnects a workspace that was connected from that agent and used only by it.

Demo workspaces

A demo environment comes with a workspace labelled Demo: messages are not sent, with example channels and rules. Neens routes insights through those rules for real, and the delivery log shows what would have been posted as Not sent (demo workspace). Nothing is ever sent to Slack from a demo workspace.

The company admin also has a demo Slack account linked, with the morning inbox DM switched on under Settings → Account → Slack. A demo link can’t act and never receives a message, so /neens, previews and @Neens need a real workspace.

Manage it with the API

Everything on the tab is also available under /api/integrations/, with a session token or an admin’s credentials (a project API key can read but not change anything). For example, to create a rule:

curl -s -X POST https://neens.example.com/api/integrations/chat/rules \
  -H "Authorization: Bearer $ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Returns agent: critical",
    "scopeType": "project",
    "scopeId": "<agent id>",
    "minSeverity": "critical",
    "mode": "immediate",
    "destinationIds": ["<channel id>"]
  }'
RoutePurpose
GET /api/integrations/chat/scopesThe company, orgs and agents you may view and manage
GET /api/integrations/chat/installationsConnected Slack workspaces
GET /api/integrations/chat/installations/{id}/teamsThe workspaces a connection covers (every workspace of an Enterprise Grid organization the app was added to)
GET /api/integrations/chat/installations/{id}/channelsA workspace’s channels; for an organization, pass teamId from the list above
GET, POST /api/integrations/chat/destinationsChannels and webhooks
POST /api/integrations/chat/destinations/{id}/testSend a test message
GET, POST /api/integrations/chat/rulesRouting rules
GET /api/integrations/chat/insight-typesThe insight types and severities a rule can match
GET /api/integrations/chat/deliveriesThe delivery log
GET /api/integrations/chat/prefs, PUT /api/integrations/chat/prefs/{linkId}Your morning inbox DM setting, per linked Slack account

The full reference, with every field and error code, is in the API reference.

Troubleshooting

SymptomCauseFix
Add to Slack isn’t shownYou don’t administer any scope, or Slack isn’t set up on this Neens deployment (the tab says so)Ask an admin; incoming webhooks work either way
A channel shows Neens isn’t in this channelThe bot wasn’t invitedType /invite @Neens in the channel, then Send test message
New channel for an organization says Choose a workspace in this Slack organizationAn Enterprise Grid organization covers several workspaces, and Slack lists channels for one at a timePick the Workspace in this organization first
New channel for an organization lists no workspaces, or says Neens isn’t added to that workspaceThe app was approved for the organization but not added to that workspaceA Slack organization admin adds the Neens app to the workspace in Slack’s organization settings, then you try again
A private channel is missing from the pickerNeens only sees private channels it has been invited toInvite @Neens, then search again
A rule can’t pick a channelThe channel belongs to another scope and isn’t shared downEdit the channel’s owner scope, or turn on its share-down option
A rule shows only allows metadata, so excerpts are not sentThe agent’s own setting caps it at metadataChange Data shared with Slack for that agent, if you mean to
Nothing arrives for low-severity insightsThe rule is a digestWait for the digest hour, or switch the rule to Immediately
A webhook destination shows Webhook no longer worksThe webhook was deleted or its channel archived in SlackCreate a new webhook and use Replace URL
You came back from Slack with The connection was started in a different browser or sessionThe install was finished in a different browserStart Add to Slack again from the same browser
A Slack button only replies Connect your accountYour Slack account isn’t linked to Neens in the account that owns the cardFollow the link it sends you (Link your account)
A Slack button replies Your Neens role doesn’t allow thisYour role for that agent is viewerAsk an admin of the agent to change your role, or act in Neens
Linking ends with A different Slack account signed inSlack was signed in as someone else in that browserSign in to Slack as yourself, press the button again and use the new link
A card has no Mute 7d or Generate fix buttonIt was sent through an incoming webhook, or it isn’t a failure-mode cardUse Triage or open it in Neens
You came back from Slack with This Slack workspace is already connected to another Neens companyAnother Neens company already uses that workspace, and a workspace can’t be shared between companiesUse a workspace your company owns, or an incoming webhook; ask your Neens operator if the two companies really should share it
A channel shows Neens can’t post in this channelThe channel only lets certain people post (for example an announcement-only channel)Allow the Neens app to post there in the channel settings, or pick another channel, then Send test message
A workspace shows Needs attentionSlack rejected Neens’ access token (it was revoked, or the workspace was deactivated)Reconnect from the ⋯ menu
A workspace shows Missing permissionsIt was connected before Neens asked for a permission it now needsSelect Update permissions and approve in Slack
Send test message works but no insights arriveThe rule is turned off, its minimum severity is higher than the insights you expect, it is limited to other agents, or the channel is turned offCheck the rule’s fields and the channel’s switch, then look for the insight in the Delivery log
Slack says /neens failed, or the command doesn’t existThe workspace was connected before /neens arrivedAn admin selects Update permissions on the workspace
/neens subscribe replies Only an admin of … can subscribe a channelYou aren’t an admin of that agentAsk one of its admins, or ask for the rule in Settings → Integrations
/neens asks you to pick an account with /neens useYour Slack account is linked in several Neens accounts on this workspaceType /neens use <account> once
A Neens link shows only Neens · …The person who posted it isn’t linked, can’t open that page, or the link has no agent in itLink your account, or copy the link from Neens
@Neens says no LLM connection is set upThe agent has no LLM connection in NeensAn admin adds one in Settings → LLM providers
@Neens replies I’m answering too many questions right nowYou asked several questions within a minute, or many people are asking at onceWait a minute and ask again
/neens review says Check your DMs but no DM arrivesThe workspace was connected before DMs arrived and is missing the permission to send themAn admin selects Update permissions on the workspace
A Pass or Fail button on someone else’s review DM says the button isn’t validReview buttons only work for the person the DM was sent toRun /neens review <agent> yourself
No morning DM arrivesIt is off, nothing needed you that day, or your link was removedCheck Settings → Account → Slack; /neens inbox shows the current setting

Related: What Neens shares with Slack · Insights · Alert rules · Members & roles