Trust & safety
Content Moderation Classifier
Reviews user-generated content against your policy and records a clear decision - approve, flag, or block.
How the data flows
Requests move between your backend and the AI workflows automatically. Here's the exact path a request takes.
AI workflow
content_moderation_workflow
Reviews content and starts the decision pipeline
Backend event
content_submitted
Backend event
decision_recorded
AI workflow
moderation_decision_workflow
Records the final moderation action
What you get
Every template is built from two kinds of pieces: Workflows and Response Formats.
Workflow
content_moderation_workflow
Reviews content and starts the decision pipeline
Workflow
moderation_decision_workflow
Records the final moderation action
Response format
moderation_triage_response
Initial moderation verdict on the submitted content
Response format
moderation_decision_response
Final decision and action taken
Details
The full specification of each workflow, with plain-English explanations. Everything below is set in the downloaded file and can be changed after import.
content_moderation_workflow
Reviews content and starts the decision pipeline
The primary model plus automatic fallback models if the primary is unavailable.
The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.
Fields you include in each request so the workflow can personalise its answer.
Identical requests are answered from memory within this window, which is faster and cheaper.
Steps that run automatically around this workflow, in order.
Runs live against your connected AI provider.
moderation_decision_workflow
Records the final moderation action
The primary model plus automatic fallback models if the primary is unavailable.
The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.
Fields you include in each request so the workflow can personalise its answer.
Runs live against your connected AI provider.
How to use it
- 1
Download the template
The file is a portable JSON bundle - safe to share and easy to read.
- 2
Open a project in ModelRiver
Sign in, pick a project, and make sure the AI providers used by this template are connected. You can connect them from the Providers section.
- 3
Import it
Open the Import button in your project, paste or upload the file, review the preview, and confirm. Everything is created atomically, so nothing is overwritten. How import & export works
Template file
Technical users can inspect the raw bundle below.
View full template JSON
{
"version": 1,
"structures": [
{
"name": "moderation_triage_response",
"description": "Initial moderation verdict on the submitted content",
"example": {
"verdict": "flag",
"risk_category": "spam",
"explanation": "Repeated promotional links with no original content."
},
"schema": {
"type": "object",
"properties": {
"verdict": {
"type": "string",
"enum": [
"approve",
"flag",
"block"
]
},
"risk_category": {
"type": "string"
},
"explanation": {
"type": "string"
}
},
"required": [
"verdict",
"risk_category",
"explanation"
],
"additionalProperties": false
}
},
{
"name": "moderation_decision_response",
"description": "Final decision and action taken",
"example": {
"final_decision": "flag",
"action_taken": "hidden pending human review",
"note": "Referred to a moderator for confirmation."
},
"schema": {
"type": "object",
"properties": {
"final_decision": {
"type": "string",
"enum": [
"approve",
"flag",
"block"
]
},
"action_taken": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"final_decision",
"action_taken",
"note"
],
"additionalProperties": false
}
}
],
"workflows": [
{
"name": "content_moderation_workflow",
"description": "Reviews content and starts the decision pipeline",
"provider": "deepseek",
"model": "deepseek-v4-flash",
"backups": [
{
"provider": "anthropic",
"model": "claude-haiku-4-5-20251001"
}
],
"request_type": "chat",
"system_instructions": "Review the submitted content against a typical community policy: approve content that is safe and relevant, flag content that needs a human check, and block clear policy violations. Explain each verdict briefly.",
"structure": "moderation_triage_response",
"customer_fields": [
"content_text",
"content_type",
"submitter_id"
],
"test_mode": false,
"cache_window_seconds": 300,
"backend_pipeline": {
"enabled": true,
"events": [
{
"name": "content_submitted"
},
{
"name": "apply_decision",
"target_workflow": "moderation_decision_workflow"
},
{
"name": "decision_recorded"
}
]
}
},
{
"name": "moderation_decision_workflow",
"description": "Records the final moderation action",
"provider": "deepseek",
"model": "deepseek-v4-flash",
"backups": [
{
"provider": "anthropic",
"model": "claude-haiku-4-5-20251001"
}
],
"request_type": "chat",
"system_instructions": "Confirm the final moderation decision and describe the action taken, such as approving, hiding pending review, or blocking the content. Keep the note concise for moderators.",
"structure": "moderation_decision_response",
"customer_fields": [
"content_text",
"content_type",
"submitter_id"
],
"test_mode": false
}
]
}Looking for something else?
More templates are on the way. In the meantime, you can build your own workflows from scratch in the ModelRiver console.