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

# Dashboard filters

> Filter every tile on a dashboard at once with temporary, saved, required, and URL filters

A dashboard filter sits at the top of the dashboard and changes the data in the tiles below it. One filter can drive every chart on the dashboard, or just the tiles you choose, and viewers can adjust it without editing anything.

Two kinds exist: [temporary filters](#temporary-filters), which only you see, and [saved filters](#saved-filters), which everyone who opens the dashboard sees. Beyond that, this page covers [SQL runner charts](#filtering-charts-created-in-the-sql-runner), [how dashboard filters override chart filters](#how-dashboard-filters-interact-with-chart-filters), [required filters](#required-filters-and-filter-requirement-groups), [empty defaults](#empty-default-dashboard-filters), [sharing with overrides](#sharing-a-dashboard-with-filter-overrides), [which tiles a filter hit](#seeing-which-tiles-have-filters-applied), [value autocomplete](#filter-value-autocomplete), and [filtering from the URL](#filtering-a-dashboard-from-the-url).

For filter types and operators, see the [filters reference](/explore/filters-reference). For filtering a single chart as you build it, see [filtering in the Explore view](/explore/explore-view/filter).

## Temporary filters

A temporary filter applies only to your session: you won't change the dashboard for anyone else who comes to look at it. To make a filter stick for everyone, use a [saved filter](#saved-filters).

<Info>
  To restrict access to temporary filters, hide the `Add filters` button on a dashboard. In edit mode, toggle the **eye icon** next to the `Add filters` dropdown. When hidden, viewers are restricted to the filters set up in dashboard edit mode.
</Info>

1. Open your dashboard.
2. Click `Add filter`, then specify the field to filter on and the value to filter by.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-temporary-filter-add-new-de0bc7bd337efb6669034882acf22249.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=5621f3bdc80c26047d81ff72ec5a46ec" alt="Adding a new filter to a dashboard" width="1252" height="1462" data-path="images/explore/dashboards/filter/dashboard-temporary-filter-add-new-de0bc7bd337efb6669034882acf22249.png" />
</Frame>

3. To adjust which tiles the filter applies to, open the `Tiles` tab.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-temporary-filter-add-tile-272b8237fca39deed799c9911dfead73.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=c17da8ac2cbff63fae9decc674f7b259" alt="The Tiles tab of a dashboard filter" width="1354" height="1236" data-path="images/explore/dashboards/filter/dashboard-temporary-filter-add-tile-272b8237fca39deed799c9911dfead73.png" />
</Frame>

You can remove the filter from a tile, or change which field it's applied to on that tile.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-temporary-filter-add-tile-edit-5b99bc520ea2f5c75926a2dd374eafc4.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=f13957728221c530a977319c7cc8f7a2" alt="Changing the field a filter applies to on one tile" width="1936" height="1484" data-path="images/explore/dashboards/filter/dashboard-temporary-filter-add-tile-edit-5b99bc520ea2f5c75926a2dd374eafc4.png" />
</Frame>

4. Your filters appear at the top of the dashboard.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-temporary-filter-view-224e1eec6ee51e6a34496e07428fd51e.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=ca112884487593126bc7deac042d364e" alt="Applied filters shown at the top of a dashboard" width="2678" height="320" data-path="images/explore/dashboards/filter/dashboard-temporary-filter-view-224e1eec6ee51e6a34496e07428fd51e.png" />
</Frame>

<Info>
  Values for temporary and overridden saved filters are reverted when entering dashboard edit mode.
</Info>

You can also create a temporary filter by clicking a value in a chart tile, which is called [cross-filtering](/explore/dashboards/interact#cross-filtering-from-a-chart).

## Saved filters

A saved filter is part of the dashboard: anyone who opens it sees the filter applied.

1. Open your dashboard.
2. Make sure you're in edit mode — if you're not, you'll see the `Edit dashboard` button.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/edit-dashboard-243a6491ee8a29a8c824195bbc31e2bf.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=8956561ee62c7b72c7eaf156d1b6514a" alt="The Edit dashboard button" width="1042" height="386" data-path="images/explore/dashboards/filter/edit-dashboard-243a6491ee8a29a8c824195bbc31e2bf.png" />
</Frame>

3. Click `Add filter`, then specify the dimension or metric to filter on.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-temporary-filter-add-new-de0bc7bd337efb6669034882acf22249.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=5621f3bdc80c26047d81ff72ec5a46ec" alt="Choosing a field for a saved dashboard filter" width="1252" height="1462" data-path="images/explore/dashboards/filter/dashboard-temporary-filter-add-new-de0bc7bd337efb6669034882acf22249.png" />
</Frame>

4. Leave the value blank, or specify one.

Leaving the value blank applies no filter to the tiles, and gives viewers a control they can fill in to tailor results to their own needs.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/add-filter-dashboard-empty-value-a1f50ba890bd490b55a27c2e6f9e0398.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=bc96ed4809e6fa571d9de2c94a55361d" alt="A dashboard filter saved with no default value" width="840" height="792" data-path="images/explore/dashboards/filter/add-filter-dashboard-empty-value-a1f50ba890bd490b55a27c2e6f9e0398.png" />
</Frame>

To specify a value, toggle **Default value** so the filter applies to the tiles.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/add-filter-dashboard-default-value-765a13d8e7bfc6e72418e845d1dedef2.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=ff19a63fbc74fa7cac6c9e2c3495722d" alt="Setting a default value on a dashboard filter" width="932" height="882" data-path="images/explore/dashboards/filter/add-filter-dashboard-default-value-765a13d8e7bfc6e72418e845d1dedef2.png" />
</Frame>

5. To adjust which tiles the filter applies to, open the `Tiles` tab.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-tiles-tab-4e0da6245fbdaef681413eaede8c6a7a.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=359102d4dffe0a8708501e0ce9a3c9d0" alt="The Tiles tab listing every tile the filter can apply to" width="924" height="782" data-path="images/explore/dashboards/filter/filter-tiles-tab-4e0da6245fbdaef681413eaede8c6a7a.png" />
</Frame>

Here too you can remove the filter from a tile, or change which field it applies to on that tile.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-temporary-filter-add-tile-edit-5b99bc520ea2f5c75926a2dd374eafc4.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=f13957728221c530a977319c7cc8f7a2" alt="Changing the field a saved filter applies to on one tile" width="1936" height="1484" data-path="images/explore/dashboards/filter/dashboard-temporary-filter-add-tile-edit-5b99bc520ea2f5c75926a2dd374eafc4.png" />
</Frame>

6. Click `Apply`, and the filter appears at the top of your dashboard.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-filters-ready-to-be-saved-361a01d7027a59f41c9422149fc92edf.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=625fbe26d7f554e37016a7a3ecb640f1" alt="A dashboard filter applied but not yet saved" width="1522" height="346" data-path="images/explore/dashboards/filter/dashboard-filters-ready-to-be-saved-361a01d7027a59f41c9422149fc92edf.png" />
</Frame>

7. Once you have all the filters you want, hit `Save`.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/save-new-filters-dashboard-2883937f3e63c018e926b12aa964ade6.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=968f45f53f078df9b23c2caa335f2f0f" alt="Saving a dashboard with its new filters" width="552" height="198" data-path="images/explore/dashboards/filter/save-new-filters-dashboard-2883937f3e63c018e926b12aa964ade6.png" />
</Frame>

Now anyone who opens the dashboard sees your saved filters applied.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-filters-saved-517f21a3d5aebe75b0635e30955f342a.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=05f59a52c9c31186a4fa6ff697769ee1" alt="A saved dashboard filter as viewers see it" width="1078" height="174" data-path="images/explore/dashboards/filter/dashboard-filters-saved-517f21a3d5aebe75b0635e30955f342a.png" />
</Frame>

Viewers can still adjust the values by clicking the filter, which lets them cut the data their own way without changing the dashboard.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-filters-view-mode-37a66c4f684eda3919d6023439d6215a.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=0409608240c108c499baada2a26c83df" alt="A viewer changing the value of a saved filter" width="2084" height="1002" data-path="images/explore/dashboards/filter/dashboard-filters-view-mode-37a66c4f684eda3919d6023439d6215a.png" />
</Frame>

<Info>
  To add saved filters to a dashboard, you must be an `editor` or an `admin` for your project.
</Info>

## Filtering charts created in the SQL runner

Dashboard filters apply to [SQL runner](/explore/sql-runner) charts as well as charts from the Explore view. How you create them depends on what's on the dashboard.

On a dashboard with both Explore and SQL runner charts, create filters exactly as above — choose a field and create the filter. Then, in the **Chart tiles** tab, apply the filter to a SQL chart tile and choose the column it should apply to.

On a dashboard with **only** SQL runner tiles, filters work from columns rather than semantic fields:

1. Choose a column from the list of all columns available across all charts.
2. Choose a filter label to give the filter a recognizable name.
3. Choose the filter operator and values as you would for any other filter.

The filter is applied to every column on the dashboard with the same name as the filtered column. In the **Chart tiles** tab of the filter dropdown you can pick exactly which tiles and columns it applies to instead. As with Explore-chart filters, filters only apply to dimensions — in this case, non-aggregated columns.

## How dashboard filters interact with chart filters

Dashboard filters override filters applied in a saved chart on the same field.

For example, a chart for Sales in Asia is filtered to `country` **is** `China`, `India`, `Japan`. On the dashboard you add a filter `country` **is** `India`. The saved chart's filter is removed and the dashboard filter applies instead, so the tile is filtered to `country` **is** `India`.

Dates work the same way. If the saved chart includes only orders completed on or after April 3rd 2024, and you add a dashboard filter for orders completed on or after August 1st 2024, the dashboard filter wins and the tile shows orders completed on or after August 1st 2024.

This carries into exploring:

* **Explore from here** on a dashboard tile keeps the filters you saw on the dashboard. Filters overridden in the dashboard stay overridden; filters the dashboard didn't touch are the same as in the original chart.
* **Edit** on the chart instead shows the original chart filters.

## Required filters and filter requirement groups

Dashboard filters can be marked as **required**, so the dashboard won't load any data until a viewer picks a value. You can also combine several filters into a **requirement group**: viewers must set *at least one* of them, but any will do.

Take a Sales overview dashboard that queries all historic orders, where loading it unfiltered is slow and expensive. We want viewers to always pick a **Payment method**, plus at least one of **Order status** or **Order date**, before any queries run.

### Marking a single filter as required

While editing the dashboard, open the `Payment method` filter's popover and switch on the **Required** toggle. Required filters must start empty, so the toggle can't be combined with a default value.

<Frame>
  <img alt="A dashboard filter popover in edit mode with the Required toggle switched on for the Payment method filter" className="block dark:hidden" src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-requirements-required-toggle-light.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=0ecca163438e11eb6419488e898504b0" width="1620" height="920" data-path="images/explore/dashboards/filter/filter-requirements-required-toggle-light.png" />

  <img alt="A dashboard filter popover in edit mode with the Required toggle switched on for the Payment method filter" className="hidden dark:block" src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-requirements-required-toggle-dark.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=d3e1b54870f007eb682d835a31fa413f" width="1620" height="920" data-path="images/explore/dashboards/filter/filter-requirements-required-toggle-dark.png" />
</Frame>

### Combining filters into a requirement group

The "Order status *or* Order date" half of the example needs a requirement group. Open the **Filter rules** popover next to the filter bar, where every rule is managed in one place:

1. Click **Add another rule**, pick `Order status`, then add `Order date` to the same rule. One filter makes a plain required filter; more make an "at least one of" group. Filters with a default value, or already in another rule, can't be picked.
2. Optionally, write a **Note for viewers** explaining why the filters are required. Ours says: "Pick a payment method, plus an order status or date range, to keep this dashboard fast."
3. Click **Save** in the popover, then save the dashboard.

<Frame>
  <img alt="The Filter rules popover on the Sales overview dashboard, showing a required Payment method filter and an at-least-one-of group with Order status and Order date" className="block dark:hidden" src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-requirements-rules-popover-light.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=7a45a325ac2053668bd72b3af0c8a0af" width="2230" height="1120" data-path="images/explore/dashboards/filter/filter-requirements-rules-popover-light.png" />

  <img alt="The Filter rules popover on the Sales overview dashboard, showing a required Payment method filter and an at-least-one-of group with Order status and Order date" className="hidden dark:block" src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-requirements-rules-popover-dark.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=6c4d3154c6d897c7375e5a4f895fcee6" width="2230" height="1120" data-path="images/explore/dashboards/filter/filter-requirements-rules-popover-dark.png" />
</Frame>

Filters that are part of a rule are marked with an asterisk in the filter bar, and the **Filter rules** button shows how many rules the dashboard has.

### What viewers see

While any rule is unmet, chart tiles stay locked. The dashboard shows a **guided setup card** with a picker for each filter and your note as its subtitle. On the example dashboard, viewers get one picker for `Payment method`, an "at least one of" section for `Order status` and `Order date`, and a progress indicator showing how many rules are still unmet:

<Frame>
  <img alt="The guided setup card on the Sales overview dashboard, prompting viewers to set Payment method plus at least one of Order status or Order date, with locked tiles behind it" className="block dark:hidden" src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-requirements-guided-setup-light.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=3e4d5888cee39d14cf046b72d0fa8d9a" width="2880" height="1800" data-path="images/explore/dashboards/filter/filter-requirements-guided-setup-light.png" />

  <img alt="The guided setup card on the Sales overview dashboard, prompting viewers to set Payment method plus at least one of Order status or Order date, with locked tiles behind it" className="hidden dark:block" src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/filter-requirements-guided-setup-dark.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=38aa2fd76ad3da2e14ad77e6251a3be9" width="2880" height="1800" data-path="images/explore/dashboards/filter/filter-requirements-guided-setup-dark.png" />
</Frame>

Everything loads the moment the rules are met, and locks again if a viewer clears a value a rule needed. Viewers can also dismiss the card and use the filter bar instead.

A rule counts as met when one of its filters has a value or uses an operator that needs none (`is null`, `is not null`, `in the current`, `not in the current`, `in all periods to date`). On dashboards with [tabs](/explore/dashboards#add-tabs), a rule only locks the tabs its filters apply to.

### Required filters in dashboards-as-code

Here's the same example in dashboard YAML: a required filter has `required: true`, filters sharing a `requiredGroupId` form an "at least one of" group, and the viewer note lives on the dashboard config as `requiredFiltersNote`.

```yaml theme={null}
config:
  requiredFiltersNote: "Pick a payment method, plus an order status or date range, to keep this dashboard fast."
filters:
  dimensions:
    - id: payment-method-filter
      label: Payment method
      required: true
      # ...
    - id: order-status-filter
      label: Order status
      requiredGroupId: status-or-date
      # ...
    - id: order-date-filter
      label: Order date
      requiredGroupId: status-or-date
      # ...
```

## Empty default dashboard filters

You can save a dashboard filter that is active but has no value picked yet — for example a `country` **is** filter with no country selected. This is an "unset default": a filter control that appears in the dashboard filter bar so viewers can fill it in, without pre-committing to a value.

Empty non-required filters behave like this:

* They render in the filter bar as `is any value`.
* They do **not** override chart-level filters on the same field. If a saved chart is filtered to `country` **is** `India` and the dashboard has an empty `country` filter, tiles keep the `India` filter until a viewer picks a value in the dashboard. As soon as a viewer selects a value, normal [dashboard-overrides-chart behavior](#how-dashboard-filters-interact-with-chart-filters) resumes.
* They survive `lightdash upload` and are not flagged by `lightdash lint` — an empty active filter in dashboard YAML is a valid configuration.

Value-less relative-date operators (`in the current`, `not in the current`) are **not** treated as empty, because they get their period from a unit-of-time setting rather than a value. They apply to tiles like any other configured filter.

To strip a chart-level filter from a tile, mark the dashboard filter as required, give it an explicit default value, or remove the filter from the saved chart. An empty dashboard filter won't do it.

## Sharing a dashboard with filter overrides

To share a dashboard with custom filters applied, you have to be in *view mode*. From there, either apply temporary filters and share the link with those filters applied, or save the filter changes for everybody and share the link with the new defaults.

The rules for sharing dashboards with filters applied:

* When adding a temporary filter in view mode, you can change the filter's values — field, value, operator, and which tiles it applies to — but not the filter type, so a temporary filter can't become a saved filter.
* When overriding a saved filter in view mode, you can only change the value and operator; the field and tile configuration stay as they are.
* In edit mode, when you change a saved filter to override its default value, the 'override' status is removed once you click **Apply**.

The same behavior applies when exporting dashboards or sending them to email or Slack in [scheduled deliveries](/explore/create-scheduled-deliveries).

## Seeing which tiles have filters applied

A tile with a filter applied shows the text `dashboard filter applied`. Hover over it to see *which* filters were applied to that tile.

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-filter-applied-849b4b24b8ab77215ddb46bcd6735720.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=494c1ede97f6f923fb0b76c7b8d43a06" alt="A dashboard tile showing the dashboard filter applied label" width="1638" height="1082" data-path="images/explore/dashboards/filter/dashboard-filter-applied-849b4b24b8ab77215ddb46bcd6735720.png" />
</Frame>

## Filter value autocomplete

When determining possible values for a dashboard filter, Lightdash takes into account all relevant filters, including those applied to fields from joined tables.

Take these payments, orders, and customers models:

<Tabs>
  <Tab title="dbt v1.9 and earlier">
    ```yaml theme={null}
    - name: customers
    ---
    - name: orders
      meta:
        joins:
          - join: customers
            sql_on: ${customers.customer_id} = ${orders.customer_id}
    ---
    - name: payments
      meta:
        joins:
          - join: orders
            sql_on: ${orders.order_id} = ${payments.order_id}
          - join: customers
            sql_on: ${customers.customer_id} = ${orders.customer_id}
    ```
  </Tab>

  <Tab title="dbt v1.10+">
    ```yaml theme={null}
    - name: customers
    ---
    - name: orders
      config:
        meta:
          joins:
            - join: customers
              sql_on: ${customers.customer_id} = ${orders.customer_id}
    ---
    - name: payments
      config:
        meta:
          joins:
            - join: orders
              sql_on: ${orders.order_id} = ${payments.order_id}
            - join: customers
              sql_on: ${customers.customer_id} = ${orders.customer_id}
    ```
  </Tab>

  <Tab title="Lightdash YAML">
    ```yaml theme={null}
    # customers.yml
    type: model
    name: customers
    ---
    # orders.yml
    type: model
    name: orders

    joins:
      - join: customers
        sql_on: ${customers.customer_id} = ${orders.customer_id}
    ---
    # payments.yml
    type: model
    name: payments

    joins:
      - join: orders
        sql_on: ${orders.order_id} = ${payments.order_id}
      - join: customers
        sql_on: ${customers.customer_id} = ${orders.customer_id}
    ```
  </Tab>
</Tabs>

Following this example:

* Filtering on a field from the `payments` model considers filters applied to fields from the `payments`, `orders`, and `customers` models.
* Filtering on a field from the `orders` model considers filters applied to fields from the `orders` and `customers` models.
* Filtering on a field from the `customers` model considers filters applied to fields from the `customers` model.

## Filtering a dashboard from the URL

A dashboard URL can carry values for its saved filters, so a link opens the dashboard already filtered. You can set up a dimension so that clicking a value sends the reader to a dashboard filtered by what they clicked — a sales dashboard listing your most profitable partners, for instance, where clicking a partner name opens a second dashboard showing that partner's KPIs.

Here's what it looks like once it's set up:

<iframe src="https://cdn.loom.com/sessions/thumbnails/2afb9990e3d7407dadcf53d8db2719c8-644f09eaf407adac.mp4" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style={{ width: '100%', height: '400px' }} />

And here's the setup:

<iframe src="https://cdn.loom.com/sessions/thumbnails/aa6b7aa3001d4b1fa86a2c98a7fe044c-1341cb311f5a956d.mp4" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style={{ width: '100%', height: '400px' }} />

1. Open the dashboard you want to filter dynamically.
2. Add a value to the filter you want to drive from the URL.
3. Copy the URL shown after applying the filter. It looks like this:

<Frame>
  <img src="https://mintcdn.com/lightdash/y8j5qvbhHoP381ni/images/explore/dashboards/filter/dashboard-url-filter-4eb115b7e180529d7a5d50343d500743.png?fit=max&auto=format&n=y8j5qvbhHoP381ni&q=85&s=c70aa093e6769582b1189f38eb831fae" alt="A dashboard URL containing an encoded filters parameter" width="1756" height="188" data-path="images/explore/dashboards/filter/dashboard-url-filter-4eb115b7e180529d7a5d50343d500743.png" />
</Frame>

<Info>
  The `?filters=` key in the URL is followed by a URL-encoded JSON object. To read it, run it through a URL decoder.
</Info>

4. Replace the filter value you chose in step 2 with `${ value.formatted | url_encode }` to make it dynamic. In the example, the value is `Plant+Paradise` (highlighted in the image).
5. Paste that URL into the YAML file for the model you're working in. See an [example in our demo project](https://github.com/lightdash/lightdash-demo-data-gardening/blob/5632406cb5b43fdf066a2086142dc3e86a41e947/dbt/models/dbt%5Forders.yml#L31-L32).
