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

# Filters

> Narrow the data shown by a dashboard or by an individual widget.

Filters narrow the data shown by a dashboard or by an individual widget. Filters can be set at two levels — dashboard-wide or per widget — and both levels can be active at the same time.

## Two levels

* **Dashboard filters** — set once on a dashboard, applied to every widget on the dashboard.
* **Widget filters** — set on a specific widget, applied only to that widget.

When both levels are set, the conditions **combine** — the widget shows rows that meet both the dashboard filter AND the widget filter. Neither level replaces the other.

For example: a dashboard filter of `Status = Active` plus a widget filter of `Channel = Meta` means that widget shows only active campaigns on Meta.

## Adding a filter

Every filter — dashboard or widget — starts the same way: pick the dataset the filter applies to, then add conditions.

<Steps>
  <Step title="Open the filter panel">
    Dashboard filters open from the dashboard header. Widget filters open from the widget settings panel via the Widget filter option.
  </Step>

  <Step title="Click + Add filter and pick a dataset">
    The empty state reads "No filters yet. Add one to get started. Choose which dataset your filter conditions apply to." Click **+ Add filter** and pick from:

    * **Marketing** — one bucket that covers every connected ad data source (for example, Meta Ads, Google Ads, TikTok Ads). A filter set on Marketing applies to every ad source at once.
    * **Individual non-ad data source** — each non-ad source is selected on its own (for example, Instagram Organic, Google Spreadsheet, HubSpot, Instagram Public). Non-ad sources don't share a common breakdown taxonomy, so they can't be grouped into a single bucket.
  </Step>

  <Step title="Add filter conditions">
    Each condition has three parts:

    * **Field** — what to filter on. For example, Status, Channel, Campaign name, Ad set name, Ad account, UTM value, Breakdown label.
    * **Operator** — how to compare. Available operators include `is`, `is not`, `contains`, `starts with`, `ends with`, `greater than`, `less than`, and `exists`.
    * **Value** — one or more values to match.

    Multiple conditions can be combined with **AND** or **OR**. A dataset can have multiple filter blocks, each with its own conditions.
  </Step>

  <Step title="Save">
    Close the panel — the filter takes effect immediately. Click **Save dashboard** to persist.
  </Step>
</Steps>

Widgets that have a widget filter set are marked with a filter icon in the widget header, so it's easy to spot which widgets have overrides at a glance.

## Filter examples

A few common patterns:

* **Only active campaigns** — Field: Status, Operator: `is`, Value: `Active`.
* **A single channel** — Field: Channel, Operator: `is`, Value: `Meta Ads`.
* **Spend above a threshold** — Field: Spend, Operator: `greater than`, Value: `1000`.
* **Campaign name pattern** — Field: Campaign name, Operator: `contains`, Value: `Q1_2026`.
* **Everything except a segment** — Field: Ad set name, Operator: `is not`, Value: `Retargeting`.
* **Multiple values at once** — Field: Channel, Operator: `is`, Value: `Meta Ads`, `Google Ads`. Or, using OR across conditions, `Channel = Meta Ads OR Channel = Google Ads` — same result.

## Available filter fields

Filter fields depend on the dataset:

* **Marketing (ad sources)** — Status, Channel, Campaign name, Ad set name, Ad name, Ad account, UTMs, Breakdown labels, Operating system, Objective.
* **Individual non-ad sources** — a smaller field set based on the source's own breakdowns. For example, an analytics source exposes Session source and Country; a CRM source exposes Contact stage and Deal status.

## List filter widget

Adriel also has a **List filter widget** — a widget that lives on the dashboard canvas and lets viewers apply a filter interactively across a set of linked widgets. List filter widgets are useful for embed and share-via-link scenarios where the viewer isn't editing the dashboard but still needs to switch between segments.

See [List filter widget](/widgets/widget-library/other-widgets/list-filter-widget) for setup and configuration.

## Filters vs custom breakdowns

Custom breakdowns are a separate mechanism — they group rows into labels (for example, all campaigns whose name contains "Q1\_2026" grouped into a "Q1 2026" bucket). Filters narrow which rows are visible; custom breakdowns change how visible rows are grouped.

For custom breakdowns, see [Custom breakdowns](/widgets/breakdowns-and-metrics/custom-breakdowns).

## Troubleshooting

<AccordionGroup>
  <Accordion title="A widget shows 'No data available' after adding a filter">
    The filter condition may exclude every row. Try loosening the filter (fewer conditions, or broader values) to confirm data appears. See [Data not loading](/troubleshooting/data-not-loading).
  </Accordion>

  <Accordion title="Widget filter doesn't seem to apply">
    Widget filters combine with dashboard filters — the resulting condition set is stricter, not looser. If the widget was expected to show data the dashboard filter excludes, that's the expected behavior. Remove or adjust the dashboard filter instead.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Date ranges" href="/dashboards/filters-and-dates/date-ranges">
    Set the reporting window at the dashboard or widget level.
  </Card>

  <Card title="Custom breakdowns" href="/widgets/breakdowns-and-metrics/custom-breakdowns">
    Group rows by custom label rules.
  </Card>

  <Card title="List filter widget" href="/widgets/widget-library/other-widgets/list-filter-widget">
    On-canvas interactive List filter for viewers.
  </Card>
</CardGroup>
