Summary
When a user mentions the bot in a Discord channel, OpenAB currently creates a public thread that is visible to everyone in the channel. We should support creating private threads (GUILD_PRIVATE_THREAD, type 12) so that only the initiating user (and server moderators) can see the conversation.
Motivation
Some conversations with the bot may contain sensitive information (e.g. billing, personal configs, security topics). Users should have the option to start a private conversation directly in a channel without others being able to see the thread content.
Proposed Design
Discord API Mechanism
- When creating a thread, pass
type: 12 (GUILD_PRIVATE_THREAD) and invitable: false to the Discord API
- Only the initiating user and members with
MANAGE_THREADS permission will be able to see the thread
- The bot should add the initiating user as a thread member via
PUT /channels/{thread_id}/thread-members/{user_id}
User-Facing Trigger Options
- Keyword/emoji trigger — User includes a marker like
🔒 or /private in their mention message to request a private thread
- Channel-level default — Admins can configure specific channels to always create private threads
- Both options can coexist: channel default + per-message override
Example Flow
- User sends:
@Bot 🔒 help me check my billing
- Bot detects the
🔒 marker
- Bot creates a private thread (type 12, invitable: false)
- Bot adds the user to the thread
- Bot optionally deletes the original message in the channel to avoid leaking the question
- Bot replies inside the private thread
Requirements
Notes
- Private threads require the server to have Boost Level 2
- Moderators with
MANAGE_THREADS can always see private threads — this is a Discord platform limitation
- The bot itself is automatically a member of threads it creates
Summary
When a user mentions the bot in a Discord channel, OpenAB currently creates a public thread that is visible to everyone in the channel. We should support creating private threads (
GUILD_PRIVATE_THREAD, type 12) so that only the initiating user (and server moderators) can see the conversation.Motivation
Some conversations with the bot may contain sensitive information (e.g. billing, personal configs, security topics). Users should have the option to start a private conversation directly in a channel without others being able to see the thread content.
Proposed Design
Discord API Mechanism
type: 12(GUILD_PRIVATE_THREAD) andinvitable: falseto the Discord APIMANAGE_THREADSpermission will be able to see the threadPUT /channels/{thread_id}/thread-members/{user_id}User-Facing Trigger Options
🔒or/privatein their mention message to request a private threadExample Flow
@Bot 🔒 help me check my billing🔒markerRequirements
GUILD_PRIVATE_THREAD(type 12) when creating threadsinvitable: falseto prevent non-moderators from adding othersNotes
MANAGE_THREADScan always see private threads — this is a Discord platform limitation