Filtering & Searching
There are two ways to find records: type into quick search, or build precise conditions in the filter builder. This page explains both, with worked examples you can copy.
| Tool | Best for | How |
|---|---|---|
| Quick search | "Find Anna" — a name, email, or phone fragment | Type in the search box above the list |
| Filter builder | Precise questions — "people in Boston added this year" | Click Filters and add conditions |
| Saved views | Questions you ask every week | Save the filter under a name, reload it any time |
| Sidebar views | Standard subsets everyone uses | Click the entry (for example People); its base filter is built in |
Quick search and filters work together: when both are active, records must match both.
Quick search
Type into the search box. After a short pause the list updates. Quick search looks at the fields you would expect — name, email, phone — so it is the fastest way to find one record you can partly remember.
The filter builder
Click Filters to open the builder (the badge on the button shows how many conditions are active). A filter is made of conditions inside groups.

Each condition has three parts:
- Column — which field to test (Last name, City, Date added...).
- Operator — how to test it (contains, equals, between...). The list of operators adapts to the column's type.
- Value — what to compare with. "Between" shows two inputs; "is empty" and "yes/no" operators need none.
Click Apply to run the filter. Conditions you left half-finished are dropped with a small note, so an incomplete row never breaks the search.
Worked example 1 — last names starting with "Sm"
- Click Filters, then Add condition.
- Column: Last name. Operator: starts with. Value:
Sm. - Apply. The list now shows only Smiths, Smalls, and friends.
Operators by column type
| Column type | Operators | Notes |
|---|---|---|
| Text | contains, starts with, ends with, equals, not equals, is empty, is not empty | Text matching ignores upper/lower case |
| Number | equals, not equals, greater than, less than, at least, at most, between | "Between" takes two values |
| Date | same as number | "Between" two dates covers a period |
| Yes/no | is true, is false | No value input needed |
| Choice (dropdown) | is one of, is none of | Pick one or more options from the field's own list |
| Link (points at another record) | contains, starts with, ends with, equals | Tests the linked record's display name |
AND, OR, and groups
Every group has a switch: AND means all its conditions must match; OR means any one of them is enough. Click Add group to nest a group inside another — nested groups are indented with a colored edge so you can see the structure.
Worked example 2 — "(city is New York OR city is Boston) AND type is Person"
- In the root group, leave the switch on AND.
- Click Add group. Inside the new group, set its switch to OR and add two conditions: City equals New York and City equals Boston.
- Back in the root group, add the condition Contact type is one of: Person.
- Apply. You get people from either city — and nothing else.

Filtering inside phones, emails, and other multi-entry fields
A contact can have several phones and emails. In the column picker these appear as sub-fields, written with a › — for example Phones › Phone and Phones › Label. A record matches when any of its entries matches.
Worked example 3 — every contact with a 555 number
- Column: Phones › Phone. Operator: contains. Value:
555.
Worked example 4 — everyone on an example.com address
- Column: Emails › Email. Operator: ends with. Value:
@example.com.
Worked example 5 — members of the VIP group
- Column: Groups › Name. Operator: equals. Value:
VIP.
More recipes
| You want | Column | Operator | Value |
|---|---|---|---|
| Added this quarter | Date added | between | first and last day of the quarter |
| Missing a birthday | Date of birth | is empty | — |
| Everyone except Boston | City | not equals | Boston |
| Active or Lead status | Groups › Name | is one of | Active, Lead |
| Big organizations | Employee count | at least | 100 |
For the curious: what a filter really is
Under the hood the builder produces a small structured object — the same thing saved views store. You never have to write this by hand, but seeing it explains the AND/OR grouping:
{
"logic": "AND",
"conditions": [
{ "column": "contact_type", "op": "eq", "value": "person" },
{ "logic": "OR", "conditions": [
{ "column": "city", "op": "eq", "value": "New York" },
{ "column": "city", "op": "eq", "value": "Boston" }
] }
]
}
Multi-entry sub-fields use a dot: phones.phone, emails.email, groups.name.
{ "column": "phones.phone", "op": "contains", "value": "555" }
Rules worth knowing
- Base filters stay. A sidebar view like People has a built-in filter that is its identity — your conditions stack on top, and "Clear filters" clears only yours.
- Search and filter combine. Records must match both when both are set.
- Filters are private. The Share button on a list shares only the page position, never your filter or search terms.
- Unknown columns are skipped. If a saved view references a column that no longer exists, that condition is dropped with a note.