Policies and actions
A moderation policy decides what happens to an asset based on its moderation report. Each category gets a default action, and rules add exceptions using the category's qualifiers. Policies change actions, never category definitions.
How policies apply
Each project uses one account policy that covers all six categories. The project stores only settings.moderationProfileId, which references a built-in or account-owned policy. New projects start with General community.
In the portal’s Portal › Moderation policies page, choose a policy and select Use this policy to apply it to the current project.
- Save policy updates the policy for every project that uses it. Shared policies list the other affected projects and ask you to confirm before saving.
- Save as copy creates a new account policy from your draft and applies it to this project only. Built-in presets are read-only, so editing one always requires a copy.
- A custom policy can be deleted only when no project uses it.
Changes apply to future moderation checks, including checks that reuse cached classification evidence. Existing asset decisions are not reprocessed. Saves check the policy version and project list; after a conflict, reload and review before saving again. Policies and their project lists are private to the owning account.
Actions
Every category has a default action. If several categories match, the strongest action wins, in the order purge, hide, alert, then ignore.
| Action | Asset result | Content behavior |
|---|---|---|
| ignore | approved, with report.flagged: false when no other action applies | No moderation action is taken. |
| alert | approved, with report.flagged: true | Delivery remains enabled. |
| hide | rejected, with report.flagged: true | Stored content is retained but delivery is blocked. |
| purge | rejected, with report.flagged: true | Stored source, preview and retained extracted text are deleted. The asset record and report remain. |
alert, hide and purge all record an asset.flagged event. Connectors decide where it goes: the notification bell by default, plus any webhook, Slack or email connector subscribed to it. Use alert when you want to hear about content without blocking it.
ignorechanges the action only; moderation still runs. A high score can therefore stay unflagged.- Normal retention still applies to
ignoreandalert, sokeepContentAfterProcessing: falsecan leave no content to deliver.hidekeeps content for review regardless;purgedeletes it regardless. processingOptions.flaggedContentPolicyoverrides the policy action for a single asset.- Ignoring one category never exempts another matching category.
Built-in policies
Choose the preset closest to your community, then save a copy if you need different actions or exceptions.
General community
Hide qualifying content across all six categories while allowing wholly supportive or preventive content. Explicit restricted forms override allowances.
| Category | Default action | Qualifier exceptions |
|---|---|---|
| sexual | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Any sexual-solicitation → hide (qualifier boundary 90%) |
| violence | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Any graphic OR Any violent-preparation OR Any violent-encouragement → hide (qualifier boundary 90%) |
| self-harm | hide at 40% | Only support-prevention → ignore (qualifier boundary 90%); Any self-harm-methods OR Any self-harm-encouragement → hide (qualifier boundary 90%) |
| harassment | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Any harassment-encouragement → hide (qualifier boundary 90%) |
| hate | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Any hate-threat OR Any discriminatory-exclusion OR Any dehumanization → hide (qualifier boundary 90%) |
| criminal-activity | hide at 70% | Only support-prevention → ignore (qualifier boundary 90%); Any criminal-instructions OR Any criminal-promotion OR Any criminal-preparation OR Any criminal-request → hide (qualifier boundary 90%) |
Children’s platform
Hide qualifying content across all six categories, including content presented for support or prevention. No qualifier allowances.
| Category | Default action | Qualifier exceptions |
|---|---|---|
| sexual | hide at 60% | None |
| violence | hide at 60% | None |
| self-harm | hide at 40% | None |
| harassment | hide at 60% | None |
| hate | hide at 60% | None |
| criminal-activity | hide at 70% | None |
Education and support
Allow wholly historical, documentary, supportive or preventive content across all six categories. Restricted forms remain hidden.
| Category | Default action | Qualifier exceptions |
|---|---|---|
| sexual | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Only historical → ignore (qualifier boundary 90%); Only documentary → ignore (qualifier boundary 90%); Any sexual-solicitation → hide (qualifier boundary 90%) |
| violence | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Only historical → ignore (qualifier boundary 90%); Only documentary → ignore (qualifier boundary 90%); Any graphic OR Any violent-preparation OR Any violent-encouragement → hide (qualifier boundary 90%) |
| self-harm | hide at 40% | Only support-prevention → ignore (qualifier boundary 90%); Only historical → ignore (qualifier boundary 90%); Only documentary → ignore (qualifier boundary 90%); Any self-harm-methods OR Any self-harm-encouragement → hide (qualifier boundary 90%) |
| harassment | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Only historical → ignore (qualifier boundary 90%); Only documentary → ignore (qualifier boundary 90%); Any harassment-encouragement → hide (qualifier boundary 90%) |
| hate | hide at 60% | Only support-prevention → ignore (qualifier boundary 90%); Only historical → ignore (qualifier boundary 90%); Only documentary → ignore (qualifier boundary 90%); Any hate-threat OR Any discriminatory-exclusion OR Any dehumanization → hide (qualifier boundary 90%) |
| criminal-activity | hide at 70% | Only support-prevention → ignore (qualifier boundary 90%); Only historical → ignore (qualifier boundary 90%); Only documentary → ignore (qualifier boundary 90%); Any criminal-instructions OR Any criminal-promotion OR Any criminal-preparation OR Any criminal-request → hide (qualifier boundary 90%) |
Support or prevention exceptions allow qualifying content that wholly seeks or provides non-harmful support, prevention or recovery. A supportive reply does not excuse another participant's harmful instructions or encouragement. General community allows that content; Education and support also allows wholly historical or documentary content; Children's platform has no exceptions.
Rules
Rules replace a category's default action when their conditions match. Give each rule a name and one or more conditions, and choose whether every condition or at least one must match. Add condition groups for combinations such as "graphic AND (historical OR fictional)". Each group has its own every-or-any choice, and the rule chooses whether every group or at least one must match.
Conditions use Any or Only and refer to findings across the whole asset, so two Any conditions need not describe the same passage. An unavailable condition cannot establish a match, but another condition can still satisfy an "at least one" group. When matching rules conflict, the strongest action wins, regardless of rule order.
For example, a violence policy might use:
- Default: hide.
- Only historical: ignore.
- Only historical and graphic: hide.
- Threat: purge.
An Only → Ignore exception needs evidence that its condition covers all qualifying content in the category. An Any → Ignore exception ignores the whole category as soon as the condition is present, even if other qualifying content does not share it. Use Only when additional current threats or other content should prevent the exception.
Sensitivity
Score boundaries are under Advanced in the portal. A 60% category boundary means "apply this policy when the category score reaches 60%"; it does not mean "60% chance this classification is correct". Lower boundaries catch weaker signals, and higher boundaries require stronger evidence.
Each category's default boundary and action are listed in the built-in policy tables above, which show each preset’s defaults.
Qualifier conditions use a separate boundary, 90% by default. Rules inherit the category boundary unless they override it. If a rule's conditions match but the category score is below the rule's boundary, the rule applies no action and the default is not reapplied. These are operating settings, not calibrated accuracy guarantees, so leave them at their defaults unless reviewed outcomes justify a change.
Trying an example
The policy page includes an example asset preview. Pick a scenario or customize the assumed findings, and the preview runs your unsaved draft through the same rules used for moderation. It shows the resulting action, which rules matched, the evidence for each condition, and how conflicts were resolved. It does not classify content; classify a real asset in Assets to see actual findings.
Unsaved changes are marked in the editor, and the browser warns before you leave the page. Discard changes restores the last saved policy.