Skip to content

Moderation & safety

Every organization running a community needs to answer the same question: what happens to a post before anyone else sees it, and what happens after somebody reports one.

Org settings → Community → Moderation — “What happens to a post before anyone else sees it.”

Learner posts are either:

  • Review before publishing — nothing a learner writes appears until a moderator approves it.
  • Publish immediately, review if reported — it goes live, and moderation is reactive.

AI moderation screens posts with a classifier:

It can hold a post for review; it never removes one.

That boundary is the point. A classifier can put something in front of a person; only a person removes it.

Blocked terms are matched on normalised text, “so disguises like zero-width spaces and letter-for-number swaps are caught.”

Link policy is one of: learners may not post links, only listed domains, or everything except listed domains. Subdomains are included either way.

Community → Moderation lists reports and held posts, with a count of what’s open, what’s Overdue, and what’s Due in N hours.

On each item:

  • Approve restores the post. “No explanation is required.”
  • Remove requires a reason given to the author, with a minimum length: “The author reads this text exactly as you write it, so write it to them.”

That asymmetry is deliberate. Letting something through needs no justification; taking somebody’s words down does.

Sanctions available alongside a post decision: Warning, Mute, Suspension, Ban, and Lift restriction.

Items the safeguarding team has taken are withheld from the ordinary queue and counted separately — “3 items are with the safeguarding team.”

Where it’s switched on, self-harm and grooming signals are routed to a named reviewer:

Route self-harm and grooming signals to a named reviewer. The post is still delivered.

Escalation opens a wellbeing case, notifies everybody holding the safeguarding permission, and puts self-harm on a one-hour clock. It happens server-side, with an audit record, whether or not anybody is looking at the queue.

Separately, and independently, a learner who writes something suggesting self-harm is shown support resources. That sheet:

  • Is learner-facing only. A guardian is never told.
  • Records nothing — no event, no analytics, no open-or-dismiss telemetry.
  • Opens on any signal, including a low-confidence one, because showing a helpline to somebody who didn’t need it costs nothing.

A guardian is deliberately not part of this path. A learner who discovers that writing honestly summons their parent stops writing honestly — and for the subset whose home is the problem, it is actively dangerous.

Anybody can contest a moderation decision.

Tell us why you think the decision was wrong. Somebody who was not involved in it will read this.

They write their grounds in their own words — “There is no form to follow.” — and the appeal goes to a queue, oldest first, because “a complaint has a clock on it.”

An appeal is Waiting, then Appeal succeeded or Appeal refused. Those words are used rather than the legal terms, which read backwards to most people.

An appeal reverses a hold, not a removal. A successful appeal against a removal restores the person’s standing and the record — not the words. A removed post’s text no longer exists to restore, which is a property of how removal works rather than a gap: keeping a copy of content somebody was told was removed is a different promise entirely.

Where the appellant’s account has since been closed, the decision is still recorded and the page says the person couldn’t be told.

Community → Moderation → Decisions records why each decision was made, in words rather than codes — Targeted harassment, Personal information shared, Link not on the allow-list, Blocked term, and so on.

It’s gated on the audit permission rather than the moderation one.

Any member can report a post. Reports land in the queue alongside held posts.

Control Where Effect
Learner posts Org settings → Community Review before publishing, or publish and review if reported
AI moderation Org settings → Community Holds for review; never removes
Safeguarding escalation Org settings → Community Routes signals to a named reviewer. The post is still delivered
Blocked terms Org settings → Community Matched on normalised text
Link policy Org settings → Community No links · allow-list · block-list. Subdomains included
Approve Queue No explanation required
Remove Queue A reason for the author is required
Appeal Any decision Decided by somebody not involved in the original
Decision log Moderation → Decisions Needs the audit permission

The queue won’t load. It says so explicitly and dismisses nothing — “Nothing has been dismissed — try again.”

I can’t open moderation. It needs the moderate-posts permission.

A held item isn’t in my queue. It’s with the safeguarding team, and counted separately.

An appeal succeeded but the post is still gone. An appeal restores standing and the record, not removed words.

I approved a post and no reason was asked for. Correct — only removals need one.

A learner says they saw a support message. The crisis sheet opens on any self-harm signal. It is learner-facing only, records nothing, and is separate from the escalation that reaches your safeguarding lead.