Case lifecycle
Cases use these API/database statuses:Severity routing
Each case is sorted into one of three buckets at intake:
Severity is determined by AI classification and report reason hints configured in Settings → Moderation.
Cases as the unit of work
Moderation work is tracked per case (the canonical envelope). A single case can link duplicate reports, related content, and account-behavior signals. Each case has its own status, assignment, tags, and history.Automated actions
Two automated actions run at intake for high-confidence matches:
Everything else lands in a queue for human review.
Reviewer outcomes
Moderators choose from three primary actions:
Escalation to the escalation queue is available as a secondary action for sensitive categories (child safety, terrorism, imminent harm, unclear legal issues).
Escalation queue
The escalation queue is a dedicated view for time-sensitive and legally-sensitive cases:Notices
Every decision generates a structured notice to the affected user:- What action was taken
- Which policy or law was involved
- Whether automated means were used
- Duration of the action (if temporary)
- How to appeal
Appeals
Users can appeal enforcement actions within a defined window:- User submits an appeal with their explanation and any new context.
- A fresh reviewer (not the original decision-maker) reviews the case.
- The reviewer upholds, reverses, or modifies the action.
- Reversals automatically roll back the enforcement action and restore content.
Queue
The moderation queue reads organization cases (for exampleGET /api/v1/organizations/{orgSlug}/cases). Common filters:
- Project — limit to one integration surface.
- Open vs done — active cases are typically
OPEN,TRIAGED, orIN_REVIEW. - Severity bucket — Emergency, High, or Normal.
- Queue type — General or Escalation.

