# Saved Views

Saved views are reusable filter + sort + columns presets per CRM entity. Apply one from the **View** picker on any list page (Contacts, Companies, Deals, Leads) and the page loads in your saved shape. Set one as your default and it loads automatically every time.

Navigate to **CRM > Saved Views** to manage them.

> **Build views inline, too.** You no longer have to come to this page to shape a list. Every CRM list page (Contacts, Companies, Deals, Leads) has an inline **Filter / Sort / Columns** toolbar that builds the same filter + sort + columns state — with AND/OR/nested filter groups, your custom fields, and an **Ask AI** option that turns a plain-English description into a filter. From there, **Save as view** creates a preset or **Update view** overwrites the one you're on. Your in-progress (unsaved) filter, sort, and column choices are also remembered **per user on the server**, so they follow you across devices even before you save a view. See [Managing Contacts](/help/crm/contacts) for the toolbar and segment actions.

## The Browser

The entity tab strip at the top of the page filters the view list by entity (Contacts / Leads / Companies / Deals / Tasks). Each row shows:

- **Name** plus a **Default** badge if it's your default for that entity.
- A **Private** / **Shared** chip — private views are only visible to you; shared views are visible to everyone in the tenant.
- A filter summary (count + first few field names).
- The primary sort field, if any.

Click any row to edit. Click **+ New view** in the header to create.

## The Editor — Visual Mode

The editor opens in Visual mode by default. The Advanced JSON button in the header toggles to a raw-JSON editor for power users; views with un-representable filter shapes (custom `$or`, `$where`, etc.) auto-open in Advanced so nothing is lost.

### Identity

- **View name** — required, shown in the picker.
- **Entity** — locked after creation. Switching during creation resets filters / sort / columns since the available fields change.
- **Visibility** — Private (only me) or Shared (everyone in the tenant).
- **Description** — optional one-line note shown under the view name in the browser.
- **My default view for this entity** — when ticked, this view auto-applies on page open.

### Filters

The filter builder renders one row per condition: **field** dropdown → **operator** dropdown → **value** input. The operator list adapts to the field type:

- **Text** — equals, does not equal, contains, does not contain, starts with, is set, is empty.
- **Number** — = / ≠ / > / ≥ / < / ≤, is set, is empty.
- **Date** — on or after, on or before, between, is set, is empty.
- **Select** — is, is not, is any of, is set, is empty.
- **Tags** — has tag, has any of, does not have, has any tags, has no tags.
- **Bool** — is true, is false.

Special operators (is set, is empty, is true, is false) hide the value input. "Between" date filters show a second date input.

All conditions AND together. For OR logic or nested filters, switch to Advanced JSON mode.

### Sort

Pick up to three sort fields, each with an Asc / Desc toggle. The first sort entry maps to the list page's `sortBy` / `sortOrder` parameters; additional entries are stored on the view for future multi-column sort support.

### Columns

The columns section has two parts:

- A list of currently-included columns with a visibility toggle (eye icon), up/down reorder, and a Remove link.
- A picker beneath listing fields not yet in the view — click the `+ Field name` chip to add.

## The Editor — Advanced JSON

For power users, the Advanced toggle exposes three raw-JSON textareas:

- **Filters** — Mongo-style filter object.
- **Sort** — array of `{ field, direction }`.
- **Columns** — array of `{ dbName, visible?, width?, label? }`.

Use this for filter shapes the visual builder can't express. The wire shape on save is identical to what the Visual mode produces.

## Applying a Saved View

On each list page (**Contacts**, **Companies**, **Deals**), the toolbar has a **View** picker. Picking a view sends `viewId` on the list request; the backend resolves the view and merges its filter + sort into the query. Your selection persists per browser.

The **All records** option in the picker drops back to the entity's unfiltered default view. Use the **+ New view** and **Manage** links in the picker footer as shortcuts to the Saved Views page.

<!-- SCREENSHOT: saved-views-list.png — Saved views browser -->
<!-- SCREENSHOT: saved-views-editor.png — Visual filter / sort / columns editor -->
