> For the complete documentation index, see [llms.txt](https://docs.daylite.app/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.daylite.app/help/mac-fundamentals/find-connect-and-organize/filtering-on-mac.md).

# Filtering on Mac

Learn powerful filtering techniques to unlock your Daylite data. Segment contacts, find opportunities, organize work—harness the full potential of your database.

Filtering lets you narrow a list — People, Companies, Projects, Opportunities, Tasks, and more — down to only the records that match rules you set.

**Key facts:**

* Filtering works on one record type at a time (filtering People won't also search Companies).
* Filters are temporary. To keep a filter's rules permanently, save it as a Smart List.
* Smart Lists are Mac-only — they aren't available on iPhone or iPad.
* Rules can be grouped into Rule Groups: a Rule Group on a linked record like a Company's People can itself contain more Rule Groups on that linked record's own fields, several levels deep.

## What Is a Filter?

A filter is a temporary view of a list, narrowed down to records that match rules you define — for example, Companies in the "Client" category, or People whose linked Company is in a specific industry. Filtering only looks within the record type you're currently viewing; it won't search across other types at the same time.

Filtering is related to, but different from, two other Daylite features:

* **Search** looks across your whole database at once, across multiple record types, matching on name/title and other major fields.
* **Smart List** is a filter you've saved. The rules stay attached to the list, and Daylite keeps it up to date automatically as records are added, edited, or removed.

## How Do I Create a Filter?

This section walks you through creating a filter quickly. For a deeper breakdown of match logic, field types, and comparisons, see How Filters Work below.

{% stepper %}
{% step %}

#### **Select the record type you want to filter**

People, Companies, Tasks, Projects, etc.
{% endstep %}

{% step %}

#### **Click** <i class="fa-filter">:filter:</i>

Once you click the Filter bar. A popover opens allowing you to add rules
{% endstep %}

{% step %}

#### **Choose the Match Logic**

At the top of the window, choose your filter's match Logic

1. Match All
2. Match Any
3. Do Not Match All
4. Do Not Match Any
   {% endstep %}

{% step %}

#### **Set Your First Rule**

Choose a field, then the corresponding comparison, then the value to filter.
{% endstep %}

{% step %}

#### **Add More Rules as Needed**

Click <i class="fa-square-plus">:square-plus:</i> to add more rules, <i class="fa-square-minus">:square-minus:</i> to remove remove rules and <i class="fa-square-ellipsis">:square-ellipsis:</i> to add additional rule groups.&#x20;
{% endstep %}
{% endstepper %}

Daylite filters the list immediately. While a filter is active, the list is marked **Filtered**.

## Anatomy of a Filter

<figure><img src="https://3475717408-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6oVSyjL3UowOqokog3Vn%2Fuploads%2FzOFjAlvHE90ns0h2ZnM0%2Fimage.png?alt=media&amp;token=b3ff5252-2cf4-4457-84e6-faa7906c05b9" alt=""><figcaption></figcaption></figure>

| Label                            | What it is                                                                                                                                                                                                                                               |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Record Type                      | The kind of record you're filtering — People, Companies, Tasks etc.                                                                                                                                                                                      |
| Filter Match Logic               | One rule gives one true or false. The match logic sets how the rules combine, and it is the dropdown at the top of the filter.                                                                                                                           |
| Rule                             | <p>A rule is the smallest test, and it has three parts, field - comparison - value<br><br>like <code>Category</code> · <code>is</code> · <code>Lead</code></p>                                                                                           |
| Field                            | The field on a record you are testing (Category, Job Title, Create Date)                                                                                                                                                                                 |
| Comparison                       | A comparison is the test applied between the field and the value. The comparisons available depend on the field's type.                                                                                                                                  |
| Value                            | The value is what you're testing the field against. Some comparisons like `is blank` need no value.                                                                                                                                                      |
| Rule Group and Nested Rule Group | A rule group holds rules and other groups, and it has its own match logic. That match logic combines everything inside the group into one true or false. That result then acts as a single rule in the group above. Groups can nest several levels deep. |
| Match Count logic                | A linked record and multi part fields can point to many records or fields, so one true or false is not enough. You must say how many of these items must pass.                                                                                           |
| Add Rules / Add Match Logic      | The `+` and `...` buttons, at the top bar or below any row, for adding another Rule or another Filter Match Logic.                                                                                                                                       |
| Remove Rule                      | Remove a rule, including a rule group.                                                                                                                                                                                                                   |

Each filter rule is a condition that either matches a record or does not for it to appear in your list. The Filter Match Logic determines how those conditions are combined, such as requiring all of them, any of them, or excluding certain matches. Rule Groups use the same approach when filtering linked records, then pass the result back up as a single rule to the group above.

The sections below cover Filter Match Logic and the Filter Comparisons Reference. Filter Match Logic explains the controls that combine rules. The Comparisons Reference lists the specific comparisons available for each field type.

## How Filters Work

Filters use two separate logic controls. Filter Match Logic appears at the top of the filter bar, and again at the top of every Rule Group — it's how that level combines its rules. Match count Logic appears only when a Rule Group comes from a linked record or multi-part field — it decides how many of those linked records or fields need to pass before the group counts as true.

A Rule Group doesn't require a field. Adding one directly creates a bare Rule Group used purely to group a set of rules together, the way parentheses do in a math expression, without it being tied to single rule.

### Filter Match Logic

| Option               | Record is included when…                           |
| -------------------- | -------------------------------------------------- |
| **Match All**        | **every** rule is true                             |
| **Match Any**        | **at least one** rule is true                      |
| **Do Not Match Any** | **no** rule is true                                |
| **Do Not Match All** | **not every** rule is true (at least one is false) |

### Match Count Logic

| Option                    | Record is included when…                                                              |
| ------------------------- | ------------------------------------------------------------------------------------- |
| **At Least One Matching** | at least one linked record meets the filter group                                     |
| **None Matching**         | no linked record meets the filter group                                               |
| **All Matching**          | every linked record meets the filter group                                            |
| **At Least One Exists**   | at least one linked record of that record type exists (filter group contents ignored) |
| **None Exist**            | no linked record of that record type exists                                           |

#### **Example: Combining Nested Groups**

Here's how that filter breaks down:

<figure><img src="https://3475717408-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6oVSyjL3UowOqokog3Vn%2Fuploads%2F4xV4qVYBozt40jTZ0FJq%2Fimage.png?alt=media&amp;token=ef0652a2-2c8f-4f39-a769-6479ce28e00d" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th>Kind</th><th width="374">Setting</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Main Match Logic</strong></td><td><code>People</code>  that <code>Match All</code></td><td>Include all the People who match all of the following:</td></tr><tr><td><strong>Rule</strong><br><em>Person Field</em></td><td><code>Category</code> · <code>is</code> · <code>Client</code></td><td>The Person's category is Client.</td></tr><tr><td><strong>Group Rule</strong> <br><em>Match Logic</em></td><td> <code>Match All</code></td><td>…and all of the rules in this group are also true:</td></tr><tr><td><strong>Nested Rule 1</strong><br><em>Multi-part Field</em></td><td><p> <code>Addresses</code> · <code>at least one</code> · <code>match any</code></p><ul><li><code>City</code> · <code>is</code> · <code>Toronto</code></li><li><code>Stat/Province</code> · <code>is</code> · <code>Quebec</code></li></ul></td><td>At least one of the Person's addresses has City Toronto or Province Quebec</td></tr><tr><td><strong>Nested Rule 2</strong><br><em>Linked Record</em> </td><td><p><code>Companies</code> · <code>at least one</code> · <code>do not match any</code></p><ul><li><code>Type</code> · <code>is</code> · <code>Government</code></li><li><code>Type</code> · <code>is</code> · <code>Non-Profit</code></li></ul></td><td>The Person must have a linked Company <strong>AND</strong> that Company is not a Government or Non-Profit type.</td></tr></tbody></table>

### Filter Comparison Reference

Once you've picked a field, the comparisons available depend on what type of field it is:

{% columns %}
{% column %}

#### Text

Text fields match on content. The value can be exactly right, contain a fragment, or start/end a certain way.

* is
* is not
* contains
* does not contain
* begins with
* does not begin with
* ends with
* does not end with
* is blank
* is not blank

Examples: Name, Details, Job Title, Tagline, SIC Code, Ticker Symbol, Custom Fields, composite sub-fields (City, Street, Number, etc.)
{% endcolumn %}

{% column %}

#### Date

Dates can be compared to a fixed point in time, or to a moving window relative to today. That's why "is in last" and "is in next" need a number and a unit.

* is
* is after
* is before
* is in last \[N] days/weeks/months/years
* is in next \[N] days/weeks/months/years
* is in range
* is blank
* is not blank

Examples: Create Date, Modify Date, Extra Date 1–4
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

#### Picklist

The value can only ever be one of a fixed set of options. Matching is a straight equals or not-equals. No partial matching applies.

* is
* is not

Value is chosen from that field's fixed list of options.

Examples: Category, Industry, Region, Type, Task/Opportunity/Project status
{% endcolumn %}

{% column %}

#### Numeric

Numbers compare by size.

* is
* is not
* is less than
* is greater than
* is in range

Examples: Number of Employees
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

#### Priority

Same logic as Numeric, just constrained to a fixed 1–10 scale.

* is
* is not
* is less than
* is greater than
* is in range

Examples: Priority
{% endcolumn %}

{% column %}

#### Keywords

A record can carry more than one Keyword at once, so the logic is about set membership rather than a single value.

* include any
* include all
* do not include
* is blank
* is not blank

Examples: Keywords
{% endcolumn %}
{% endcolumns %}

#### Activity

Activity isn't a value stored on the record. It's a measure of recency, so it behaves like a Date but measured against right now rather than a fixed date. It only appears nested inside a linked-record group.

* on
* after
* before
* in the last \[N] + unit
* in next \[N] + unit
* in range

Examples: Activity (nested inside a linked-record group only)

## Frequently Asked Questions

**What's the difference between a filter, a Smart List, and Search?** A filter is temporary and works on one object type at a time. A Smart List is a filter you've saved, kept updated automatically. Search spans your whole database and multiple object types at once.

**Can I filter by how recently a record has activity?** Yes, but only inside a linked record's nested group. For example, filtering People where at least one Activity is in the last 30 days. It's not a standalone field.

**Is "Items Matching Text" the same as Search?** Similar, but scoped to whatever one object type you're filtering, instead of your whole database.

**Can I filter within a Smart List without changing it?** Yes. That's a sub-filter. It narrows the list temporarily without touching the Smart List's saved criteria.

**Are Smart Lists available on iPhone or iPad?** No, Smart Lists are Mac-only. Filtering itself is available on iPhone and iPad, with a more limited set of criteria. See \[Filtering on iPhone & iPad] for details.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.daylite.app/help/mac-fundamentals/find-connect-and-organize/filtering-on-mac.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
