> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moderationapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Building content views

> Create a saved, filtered slice of your content for your team

A content view is a filter you saved and gave a name. Build one when a group of
moderators, or a recurring task, deserves its own list.

<Frame caption="Filtering a list, then saving it as a view">
  <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-build.gif?s=8987e3bbb91c3ecd4a976dfc19ea8c23" alt="Adding a label filter and saving the result as a new content view" width="900" height="507" data-path="images/view-build.gif" />
</Frame>

## Create a view

There are two ways in. Start from the sidebar when you know what the view is for; start
from the filter bar when you've been exploring and want to keep what you found — see
[saving what you filtered](#filters-you-set-vs-the-views-own).

<Steps>
  <Step title="Add the view">
    Press **+** next to *Content views* in the review sidebar. Give it a name, an
    icon and an optional description.

    <Frame>
      <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-create-dialog.png?fit=max&auto=format&n=MRTaiJ_EUWf575WK&q=85&s=3f20aedfae39cbb6ba9d891b81f7261d" alt="Create new view dialog with name, icon and description" width="1800" height="1120" data-path="images/view-create-dialog.png" />
    </Frame>
  </Step>

  <Step title="Filter it">
    A new view starts with no filters at all, so it shows *everything* you've submitted
    — including the content your rules handled automatically, which the inbox leaves
    out. Narrow it with **Filter**.
  </Step>

  <Step title="Save">
    Filters you set are yours alone until you press **Save**. Choose **Save to this
    view** to make them the view's definition for everyone.
  </Step>
</Steps>

## Filter properties

Open **Filter** and pick a property. Values inside one property are OR'd together
("German *or* French"); separate properties are AND'd ("German *and* flagged for spam").

| Property                                     | Selects                                                                                                                              |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Label**                                    | Content a policy label applies to. See [label rules](#label-rules) below.                                                            |
| **Channel**                                  | The [channel](/get-started/concepts#channel) the content was submitted to.                                                           |
| **Action taken**                             | Content an [action](/actions/content-actions) has been run on — your own escalation, appeal or user-report actions.                  |
| **Recommendation**                           | What the automated decision recommended: review, allow or reject.                                                                    |
| **Severity**                                 | How severe the item scored, as a percentage. See [severity bands](#severity) below.                                                  |
| **Flag status**                              | Flagged, not flagged, or [shadow flagged](/content-moderation/thresholds).                                                           |
| **Date**                                     | A rolling window ("Last 7 days") or a fixed range. Rolling windows keep rolling — a view set to 7 days always shows the last 7 days. |
| **Content type**                             | What the content *is*: profile, message, post, comment, product, review, event, voice. Taken from the `contentType` you submit.      |
| **Media type**                               | The format: text, image, video, audio or object.                                                                                     |
| **Trust level**                              | The author's [trust level](/users/trust-levels).                                                                                     |
| **Language**                                 | The detected language.                                                                                                               |
| **Author**, **Content ID**, **Conversation** | One specific author, item or thread.                                                                                                 |

<Note>
  **Author**, **Content ID**, **Conversation** and the search box are for looking
  something up right now. They're never saved into a view.
</Note>

### Label rules

A label can be filtered four ways. Pick the rule when you add the label, or click its
pill to change it later.

<Frame>
  <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-filter-label-rule.png?fit=max&auto=format&n=MRTaiJ_EUWf575WK&q=85&s=d93423239da50bf37405d9184a81f156" alt="Choosing a rule type for a label in the filter menu" width="2300" height="1520" data-path="images/view-filter-label-rule.png" />
</Frame>

| Rule                           | Matches                                                                                                                                          |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Detected** / **Has matches** | The label was produced at all, whether or not it flagged. Named *Has matches* for wordlists, PII and link checks, which report concrete matches. |
| **Flagged**                    | The label flagged the content.                                                                                                                   |
| **Not flagged**                | The label didn't flag it.                                                                                                                        |
| **Custom threshold**           | The label's confidence falls in a range you set, e.g. 80–100%.                                                                                   |

**Detected** is the one worth remembering: it finds content a policy noticed but
deliberately let through — see [wordlist monitoring](/review/recipes/wordlist-monitoring).

<Frame>
  <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-matched-label.png?fit=max&auto=format&n=MRTaiJ_EUWf575WK&q=85&s=2abb94a6ccbc783d3bf55c15b510c04c" alt="A label pill filtering on has matches rather than flagged" width="2200" height="600" data-path="images/view-matched-label.png" />
</Frame>

### Severity

Severity is one number for how bad an item is, from 0 to 100%. It's the same figure
the **Severity** column shows, so a view and a badge never disagree.

| Band       | Range         |
| ---------- | ------------- |
| **High**   | 70% and above |
| **Medium** | 40–69%        |
| **Low**    | up to 39%     |

Pick a band, one of the *Above / Below 50%* shortcuts, or type your own bounds. Leaving
a bound empty means no limit on that side, so a chip can read *70% and above* rather
than pretending to be a range.

<Frame>
  <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-severity.png?fit=max&auto=format&n=MRTaiJ_EUWf575WK&q=85&s=46f394984701b9a3b86cef4a38773992" alt="Severity presets and the custom range form" width="2300" height="1440" data-path="images/view-severity.png" />
</Frame>

## Describe a view instead of building it

**Filter → AI filter** turns a sentence into filters. Describe the slice you want —
"German listings flagged for spam in the last 7 days" — and the properties are filled
in for you.

<Frame caption="A sentence becomes filter pills you can adjust">
  <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-ai-filter.gif?s=5ee914a45a68be77312ccc7ca01e9690" alt="Typing a description and applying it as filters" width="900" height="458" data-path="images/view-ai-filter.gif" />
</Frame>

It edits what's already on screen rather than starting over, so you can keep going in
words: *"also exclude spam"* adds to the filter, *"drop the date limit"* removes it.
The result is ordinary pills — check them, adjust anything that's off, then save.

<Tip>
  It can only use labels, channels and actions that exist in your project, so it works
  best once your policies and actions are set up.
</Tip>

## Filters you set vs. the view's own

The pills under the filter bar show only where you've **diverged** from the saved
view. The view's own filters stay invisible: they're the baseline, not a change you
made. A pill reading *Any* means you cleared something the view restricts.

<Frame caption="Changed filters, and the two ways to keep them">
  <img className="block" src="https://mintcdn.com/moderationapi/MRTaiJ_EUWf575WK/images/view-save-menu.png?fit=max&auto=format&n=MRTaiJ_EUWf575WK&q=85&s=054e2ee1605073d045807a93d902ae03" alt="Filter pills with the Save menu open" width="2300" height="600" data-path="images/view-save-menu.png" />
</Frame>

* **Reset** puts the view back the way it's saved.
* **Save → Save to this view** rewrites the view's definition. It's shared, so
  everyone gets it.
* **Save → Create new view…** keeps the current view untouched and splits your
  filters off into a new one.

On the inbox, only *Create new view* is offered — the inbox itself can't be narrowed.

<Info>
  Changing a view's filters is safe. Nothing is deleted, the list is simply
  recalculated, and anything already resolved stays resolved if it comes back.
</Info>

## Sharing and ordering

Views belong to the project, not to you: a filter you save to a view, and the order you
drag views into in the sidebar, is what everyone else sees too.

When you invite [moderators](/review/inviting-moderators) you choose which views they
can see, which is how a view becomes one team's queue.
