Skip to content
📦 Post Rules

📦 Post Rules - Lifecycle for whole Posts & Threads

Post Rules manage whole posts/threads — not the messages inside them. Use them to automatically archive, lock, or delete posts that went quiet, got answered, or outlived their purpose.

Typical uses:

  • “Archive support posts 3 days after the last reply, delete after 14 days”
  • “Lock introduction posts once they’re 24h old”
  • “Delete posts tagged solved after 2 days of silence”
  • “Delete a post once autodelete has emptied it”

✨ Premium: Post Rules are currently a Premium feature during the staged rollout.


Where to manage them

  1. Run /forum-setup and pick the forum (or media channel)
  2. Click “Post Rules”
  3. Create a rule, configure it (all options below), then Enable it

One rule per forum. Message autodelete inside posts stays a separate setting (the config menu above, see Forum Setup) — both can run at once and don’t interfere.

🔐 Permissions: Manage Threads is required — Discord hard-requires it for locking and deleting threads, and it’s also what lets the bot cover private threads. The bot checks this when you enable the rule and will tell you exactly what’s missing; it will not bother servers that never use thread features.


The lifecycle model

A rule tracks every post of the forum and runs its actions as soon as any trigger matches. Think:

“WHEN [trigger] matches a post (with [conditions/exclusions] in effect), DO [stage 1], then [stage 2] after [delay], then …”

Everything is time-anchored to the moment the trigger first matched, and a post can “escape” again — for example, a new reply restarts the inactivity clock, and a community manager pinning it removes it from consideration entirely. The bot also re-checks each post’s live state right before every action, so it never acts on stale assumptions.


Triggers

All are optional; a rule needs at least one to do anything. Multiple triggers use OR logic — whichever matches first starts the actions.

TriggerWhat it meansNotes
Inactive forTime since the last message in the postResets on every new message. Great for “went quiet” workflows
Max post ageTime since the post was createdNever resets. Great for time-boxed content (“weekly Q&A”)
Max messagesThe post reaches at least N messagesChecked as messages arrive
When emptiedAutodelete has removed all tracked messages in the postFires after this bot itself emptied the post. Verified live before acting — no false positives

Durations accept the usual syntax (30s, 45m, 12h, 7d). Leaving a field empty turns that trigger off.

ℹ️ Info on the timestamps: for posts that already existed when the rule was enabled, the bot anchors to their real last-activity time (not “now”), so a long-dead post gets treated as long-dead immediately — it doesn’t gain a fresh grace period just because you adopted the feature today.


Conditions & Exclusions

Posts matching an exclusion are never touched — even mid-sequence: if a post becomes excluded between two stages, the remaining stages are skipped automatically.

OptionMeaning
Skip pinned postsPinned posts are never affected (on by default; unpinning + archiving by a moderator removes the pin flag and makes the post manageable again)
Skip owners…Comma-separated user IDs whose posts are never touched (e.g. staff accounts). Enable Discord’s developer mode to copy user IDs
Skip roles…Posts whose author has one of the selected roles are never touched (role picker). New members gaining/losing the role become eligible/ineligible from the next check onwards
Require tags…Only act on posts that carry at least one of these forum tags (comma-separated tag IDs)
Skip tags…Never act on posts carrying one of these forum tags (comma-separated tag IDs)

About tag IDs: for now, tags are entered by ID (developer mode → right-click a tag). If unsure, open the forum’s tag list and copy via right-click.


Actions (stages)

Actions run in order, each waiting its configured delay after the trigger first matched. Think escalation, not instant doom.

ActionEffectReversible?
ArchiveThe post disappears from the active list and becomes read-only. It stays searchable and restorable✅ Reversible
Lock+ archived; regular members can no longer post✅ Reversible (by moderators)
DeletePost and its content are gone❌ Permanent

Editing tools per stage: ⏱ set delay, ▲ move up, 🗑 remove. Plus “Add stage” to append new ones. Rules:

  • Delete is terminal — anything after it could never run, so it’s allowed once, and only as the last stage
  • Up to 3 stages per rule (covers every realistic escalation)

Canonical example — “soft-close support posts”:

Trigger:  Inactive for 7 days
Actions:  1. Archive — 0s      (close it once quiet)
          2. Delete — 23d      (hard-delete a month-ish after it went quiet)
Exclusions: Skip pinned

New replies before stage 2 lands revive the post: the trigger un-matches, the clock restarts — the post stays alive as long as the conversation does.


How it decides what’s “real”

Instead of trusting old snapshots, before every single action the bot asks Discord for the post’s current state. Practical consequences you can rely on:

  • A moderator manually archiving/unarchiving is respected, never fought
  • A pin that happened after the trigger matched still protects the post in time
  • A post that was deleted by hand doesn’t produce errors — the rule simply lets go

And if permissions are lost along the way, the rule backs off that post instead of spamming failures.


Coverage & the permission-based limits

Enabling a rule immediately covers:

  • existing known posts (everything the bot has ever seen), and
  • already-archived posts, found via the Discord API where your server’s permissions allow:
Post typeCoverage when enabling
Public posts (all forum posts are public!)✅ Active and already-archived ones
Private threads (text channels only)✅ If the bot has Manage Threads or was invited into them; ❌ otherwise impossible — Discord hides their very existence

Existing posts are seeded with their true history, so a “delete after 30 days inactive” rule correctly catches a post that has already been idle for 45 days on day one of using the feature.

New posts are registered the instant they’re created.


Managing an existing rule

  • Edit any part while it’s enabled or disabled — running instances see updates within moments
  • Disable pauses everything for that rule (stages stop wherever they are) — re-enabling resumes from live state
  • Delete removes the rule and unwinds all running instances immediately
  • The rule is configured per forum; use /forum-setup → “Post Rules” again to reopen the editor

Troubleshooting

“Nothing happens to old posts” → Check the rule actually got Enabled (top of the editor shows 🟢 Active), that a trigger is set, and that the posts you expect aren’t excluded (pinned? author role?)

“A post got archived while people were still talking” → Impossible if the trigger is inactivity — replies reset the clock — but possible with the Max age or Max messages triggers, which don’t care about activity. That’s by design; use “Inactive for” for conversation-driven behavior.

“Posts disappeared with no warning” → Sounds like the Delete stage. If that’s spicier than intended, insert an Archive stage with a delay before it, and keep “Skip pinned posts” on.

See also: Forum Setup · Include Threads · Category Setup

Last updated on