Skip to main content

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:
  1. User submits an appeal with their explanation and any new context.
  2. A fresh reviewer (not the original decision-maker) reviews the case.
  3. The reviewer upholds, reverses, or modifies the action.
  4. Reversals automatically roll back the enforcement action and restore content.

Queue

The moderation queue reads organization cases (for example GET /api/v1/organizations/{orgSlug}/cases). Common filters:
  • Project — limit to one integration surface.
  • Open vs done — active cases are typically OPEN, TRIAGED, or IN_REVIEW.
  • Severity bucket — Emergency, High, or Normal.
  • Queue type — General or Escalation.
Exact fields and filters are in the API reference and OpenAPI spec.