Published: April 24, 2026 Updated: April 24, 2026 By Anony Botter Team

Banned Topics in Slack Anonymous Messaging: AI Policy Enforcement (2026)

Write a policy paragraph. Let AI enforce it on every anonymous message. Rejections happen in a private DM with the original quoted back — and nothing that identifies the author ever leaves the bot.


Banned Topics AI policy enforcement for anonymous Slack messages

📖 What You'll Learn

  • How to write a policy paragraph that AI enforces reliably
  • The exact post-ack flow: ack → AI check → DM the author → (optional) heads-up to mods
  • How to write anonymous Slack messages that stay on the right side of your policy
  • What moderators see (spoiler: the blocked text and the reason — never the person)
  • Five real scenarios, from salary talk to confidentiality

Anonymous channels in Slack have one persistent problem: the more freedom people have to speak, the harder it is to keep the channel on the rails your organization actually needs. Pay transparency is great in theory, but a single message listing specific compensation figures can trigger an HR escalation. A safety-reporting channel is essential, but a personally-named complaint about "Dave from ops" is a legal liability. And a DEI channel that's supposed to feel safe collapses the moment someone posts a slur.

The old answer was a full-time moderator reading every message before it hit the channel. That works — and it's slow, expensive, and creates the exact kind of latency that kills anonymous participation. Anony Botter's new Banned Topics feature takes a different route: an admin writes a plain-English policy paragraph, and every anonymous message is AI-checked against it in under a second. Messages that match the policy never reach the channel. The author gets a DM explaining why. And if you've configured an approval channel, your moderators get a heads-up — with zero author identity.

The Problem Banned Topics Solves

Imagine a workspace with an anonymous #ask-me-anything channel. It runs for a quarter and by the end of it, three messages have hit the channel that HR needs to do something about:

  • "I make $142K as a senior engineer — is that low for Austin?"
  • "Why does Sarah on the design team get to WFH when nobody else can?"
  • "The new pricing strategy is a joke, leadership is clearly out of their depth."

None of these are malicious. All three are honest. Each one creates a different kind of mess — a compensation-discussion liability, a named-person singling-out, and a tone problem that'll show up in the next engagement survey. The author probably didn't know any of that when they hit send. And the moderator who has to deal with it definitely didn't sign up to read every message before it posts.

📊 Why AI Enforcement Wins Here

A policy paragraph describes intent. A human moderator applies intent to individual messages. AI closes the loop: it reads intent the same way every time, doesn't miss shifts between 9am and 2am, and never escalates a false positive because it had a rough standup that morning.

How Banned Topics Works, End-to-End

The feature is deliberately boring in its mechanics. That's the point — you want the guardrail to be predictable, not clever. Here is the complete flow, in order:

  1. User triggers the anonymous post. They type /anony and submit their message through the normal modal.
  2. The bot acknowledges. Slack requires acknowledgment within 3 seconds, so the bot accepts the submission immediately. The user sees the modal close — same as always.
  3. Post-ack AI check runs. The message text is checked against your workspace's policy paragraph by the AI model. This happens in the gap between "accepted by the bot" and "posted to the channel."
  4. If the policy matches: the message is never posted. Instead, the bot DMs the author the original quoted back with a one-line reason.
  5. If an approval channel is configured: moderators get a heads-up card containing the blocked text, the reason, and the channel the post was targeted at. No author identity— the mod can see the content was blocked, not who wrote it.
  6. If the policy doesn't match: the message posts normally as an anonymous post. No latency visible to anyone.

💡 Why post-ack, not pre-ack? Slack's 3-second acknowledgment window is tight. Running the AI check before ack risks timeouts on a slow day. Running it after ack means the user's modal closes instantly while the check finishes in the background — and the message never publishes if it fails. Tone Coach (hostility-focused) runs pre-ack because the cost of a timeout is a legitimate post getting through; Banned Topics runs post-ack because the cost of a timeout is a policy violation going live. The feature that can't afford to miss runs after ack.

What the Author Sees

From the author's seat, a blocked message looks like this:

From @Anony Botter (DM):

Your anonymous message wasn't posted because it matches a banned topic in this workspace.

Your message:

"I make $142K as a senior engineer — is that low for Austin?"

Reason: Contains specific salary figures. This workspace's policy does not permit individual compensation figures in anonymous channels.

You can rephrase and try again — for example, by asking about market ranges or benchmarks without naming a specific number.

What Moderators See

If your workspace has an approval channel wired up, that same block also fires a heads-up card into it. The card contains the blocked text, the AI-generated reason, and the target channel. It does not contain anything about who the author was — no pseudonym, no user ID, no email hash, nothing. Mods can see what the policy caught. They cannot see who it caught.

This is a deliberate design choice. The point of the heads-up is aggregate signal: if the same kind of block fires fifteen times in a week, your policy paragraph needs updating, or a broader conversation needs to happen. It is not an enforcement log that identifies individuals.

Writing Anonymous Messages That Stay On-Policy (Employee Lens)

If you're the person hitting /anony, Banned Topics is not censorship — it's a bounce-back that helps you land the feedback you actually want heard. A policy violation gets you a DM, not a public flag, not a manager ping, and not a moderation record tied to your identity. The friction is private, and the fix is usually a single rephrase.

Here are the patterns that land versus the ones that bounce, across the most common policy categories.

Pay, Compensation, and Benefits

❌ Bounces

  • "I make $142K and think that's underpaid"
  • "Dave got a $25K raise and I didn't"
  • "The bonus pool this year was $1.2M"

✅ Lands

  • "Is our senior-engineer band competitive for this market?"
  • "How does the bonus formula weigh individual vs team results?"
  • "Where do we publish compensation bands? I can't find them."

People and Named-Person Complaints

❌ Bounces

  • "Sarah on design is unprofessional"
  • "Mike always interrupts women in meetings"
  • "The VP of Eng plays favorites"

✅ Lands

  • "Design reviews feel rushed and people's feedback gets cut off"
  • "I've noticed a pattern of interruptions in engineering meetings"
  • "How is stretch-project allocation decided in this org?"

Confidential or Non-Public Information

❌ Bounces

  • "We lost the Acme contract last week" (not public)
  • "Layoffs are coming in Q3" (leadership hasn't announced)
  • "The new CFO candidate is supposedly Jane Doe"

✅ Lands

  • "What's the process for communicating deal outcomes?"
  • "How should employees prepare for potential org changes?"
  • "Can leadership share a hiring timeline for the open C-suite role?"

💡 The reframe rule: Most blocked messages become on-policy when you zoom out one level. Specific number → band or range. Specific person → specific behavior. Confidential fact → question about process. The policy is almost never banning the underlying concern — it's banning the form the concern arrived in.

Admin Setup: Writing a Policy That Actually Works

The policy paragraph is the whole configuration. No rules engine, no regex lists, no keyword blocklists. You write a paragraph in plain English, the AI interprets it, and blocks match when the interpretation matches.

Three rules of thumb for writing a policy that enforces the way you expect:

  1. Be concrete about categories. "Nothing unprofessional" is too vague. "Specific salary figures, named-person complaints, and confidential customer information" is enforceable.
  2. Include an example. One concrete example per category dramatically improves matching quality.
  3. Explain why. AI interprets intent better when it knows the reason. "No specific salary figures, because compensation discussion belongs in structured settings" matches more precisely than the same rule without the clause.

Three Starter Policy Paragraphs

HR / General Employee Policy

"Anonymous messages in this workspace may not contain specific individual compensation figures, complaints naming a specific employee, or allegations of illegal conduct (please use our formal reporting channel for those — link in the workspace welcome message). General concerns about pay structure, team dynamics, or leadership decisions are welcome. The goal is feedback that can be acted on without creating privacy or legal risk."

DEI Safe-Space Policy

"This channel is for feedback on inclusion and belonging. Do not post slurs, insults, dehumanizing language about any group, or messages that name a specific colleague as the subject of a complaint. Questions about programs, policies, or patterns you've observed (described at the behavior-not-person level) are exactly what we want to hear."

Engineering Retro Policy

"Anonymous retro posts may not attack individuals by name, reveal non-public product information (unreleased features, partner names under NDA, security details), or claim specific performance figures without a source. Frustration about process, priorities, and technical decisions is welcome — we want honest signal, not polished posts."

Five Real Scenarios

1. The Salary Leak That Almost Was

A senior engineer at a 200-person SaaS company posts to #feedback-anon: "I make $142K and think that's below market for this city — anyone else willing to share?" The policy paragraph mentions "specific individual compensation figures." The AI check blocks the post. The engineer gets a DM within two seconds suggesting they ask about compensation bands instead. They rephrase to "Are our senior-engineer bands benchmarked annually?" and it posts. The mods never see a dollar amount; the engineer gets the conversation they wanted to start.

2. The Named Complaint, Handled Privately

In a DEI channel, someone posts "Mike in product keeps cutting off women in standup." The policy forbids messages that name a specific colleague as the subject of a complaint. The bot blocks it, DMs the author with the reason, and suggests rephrasing at the behavior level. The author posts "I've noticed a pattern of interruptions in our team's standup — is anyone else seeing it?" Mods see the aggregate block in their approval channel with the reason, but no identifying information. The team lead can follow up on the pattern without this becoming a direct individual-to-individual dispute.

3. The Confidential Deal Leak

During an acquisition rumor cycle, someone posts "We're getting acquired by Acme, it leaked in the all-hands." The policy calls out non-public M&A and legal events. The block fires, the message never hits the channel, and the approval channel shows the mods a heads-up — which triggers an internal conversation with comms about releasing an actual announcement earlier than planned. The leak doesn't happen. The policy works as a safety net, not a muzzle.

4. The False Positive

An employee posts "We shipped the pricing experiment to 50% of traffic yesterday — curious if anyone has data on conversion" to an engineering anonymous channel. The policy mentions "non-public product details." The AI blocks it as a confidential-product leak. The employee reads the DM and realizes the policy was written with a tighter definition than they expected. They post in the public engineering channel instead. Later, an admin reviews the approval-channel log and softens the policy paragraph — "non-public product details meaningful to customers or competitors" — so experiment chatter flows but customer-facing roadmaps still block.

5. The Anger, Reframed

A frustrated employee posts "Leadership is incompetent and the new pricing is a joke." Banned Topics doesn't fire (there's nothing in the policy that blocks this). But if the workspace also has Tone Coach enabled, the pre-ack hostility check catches it and offers a rewrite. The employee chooses the softer version: "I disagree with the new pricing strategy — here are three concerns." The feedback lands, leadership engages, and no policy was needed to get a productive conversation. Banned Topics handles what you post; Tone Coach handles how you post it. The two features stack.

Limitations and Trust

A few things Banned Topics explicitly does not do:

  • It doesn't store the author identity of a block. The bot knows the sender (it has to — to DM them) but that information is not written into any moderator view or audit record that mods see.
  • It doesn't punish. There is no strike count, no reputation score, no policy score tied to a user. A block is a bounce, not a record.
  • It doesn't pre-moderate for tone. That's Tone Coach's job. Banned Topics is specifically about content categories you've defined.
  • It doesn't guarantee zero false positives. The AI is accurate, not perfect. The approval-channel heads-up gives admins the data they need to tune the policy when needed.

Frequently Asked Questions

Does the bot see who sent a banned message?

The bot has to know the sender to DM them the rejection and quoted original — but nothing identifying is shared with moderators or admins. The approval-channel heads-up that mods see contains the reason and the blocked text, never the author.

When does the banned-topic check run?

Post-acknowledgment. Slack requires the bot to acknowledge the slash command within a few seconds, so the check runs right after that. If it finds a violation, the message never reaches the channel — it's intercepted before posting.

What does a rejection DM look like?

You receive a direct message from the bot that quotes your original text back to you verbatim, plus a one-line reason based on your workspace's policy paragraph (for example: "Contains specific salary figures — not permitted under the pay-discussion policy").

Can I rewrite and resend?

Yes. The rejection is not a strike or a flag — it's a bounce-back. Rephrase the message so it no longer trips the policy, then post it again through the normal /anony flow.

How do admins write a good policy paragraph?

Keep it concrete. Describe the categories you want blocked (salary specifics, named-person complaints, confidential product details, etc.) in one short paragraph. The AI is better at matching specific intent than at interpreting vague principles.

What happens if the AI is wrong?

The DM rejection includes the reason so you can judge whether it was a false positive. If you believe it was, contact your workspace admin — they can adjust the policy paragraph or review the approval-channel log where every block is recorded with full context.

Related Reading

Turn Your Policy Paragraph Into a Working Guardrail

Install Anony Botter, write one policy paragraph, and your anonymous channels enforce it on every message — without breaking anonymity and without adding a human bottleneck.

🧠 AI-Checked

Every message read against your policy

🔒 Anonymity Held

No author identity in mod views

✉️ Private Bounce

DM to author, not a public flag

🆓 Free to Try

Works on the free plan

Conclusion: Policy as Infrastructure, Not Paperwork

For most teams, a content policy has always been a document — a page in the handbook, a training slide, a reminder in a town hall. Banned Topics turns that document into infrastructure. The policy paragraph runs on every message automatically, bounces violations back in private, and keeps moderators focused on aggregate patterns instead of individual refereeing. The employees who want to post honest feedback get the same bar every time. And the team that owns the policy gets the data to refine it, not just enforce it.