Find any client, pet or clinic record in seconds β whether you're picking up a phone call, looking for everyone with an outstanding balance, or pulling up a list of microchipped cats at a specific branch. Lupa gives you three tools that work together: a fast global search that opens from anywhere, three filterable tables under Clients, and inline search dropdowns embedded inside other forms.
π‘ In short: Use Cmd+K (Mac) or Ctrl+K (Windows) for "find one thing fast". Use the tables under Clients for "find a group" or "browse with filters". Use inline search dropdowns inside forms when you're picking a client or pet for an appointment, invoice or claim.
Global Search β find one record fast
Press Cmd+K (Mac) or Ctrl+K (Windows) from anywhere in Lupa to open the global search dialog. The same dialog opens from the magnifying glass icon at the top of the sidebar.
What it searches
Global search looks across clients, pets, appointments, clinics, products, services and bundles β everything you'd typically want to jump to. Results are grouped by type. The search is debounced (about 300 ms) so the dialog stays responsive while you type. For client and pet matches Lupa indexes name, email, phone and microchip number. If a client has alternative contacts, matches against those contacts are shown nested underneath the main client. Pet results also show the owner's address beneath their name, so you can tell apart owners who share a similar name at a glance.
How to use it
Press Cmd+K (or Ctrl+K).
Start typing β the All tab shows the top results across every type.
Use the tabs along the top to focus on a single type (Clients, Pets, Appointments, etc.). Each tab shows up to 10 results before a Show more button reveals the rest (up to 50 per type).
Click a result to jump straight to its profile or detail page.
Recent searches
When you open the dialog with no query, it shows your most recent searches so you can re-open them with one click. The list is kept in your browser; it persists across sessions and holds up to 100 entries.
Including archived records
By default the dialog hides archived clients, pets and clinics. If your search would otherwise return one, a Show {n} archived records toggle appears at the bottom of the result list β click it to reveal them. Click again to hide.
β Use Cmd+K during phone calls. From the moment the phone rings to a client's profile open is well under two seconds β type the first few letters of their name or the last few of their phone number and hit Enter on the top result.
The Clients page β three tables for browsing and filtering
Open Clients in the top navigation. The page has three tabs:
Pets β the default landing tab. Every pet in your practice.
Clients β every client (pet owner).
Clinics β referring clinics (only visible when Referrals is enabled for your practice β see ). Each tab is a filterable, sortable table. The same patterns apply across all three:
Search box at the top of the table β search-as-you-type, debounced (about 300 ms). On the Pets tab it matches pet name; on the Clients tab it matches client name, email or phone; on the Clinics tab it matches clinic name.
Column filters β click the filter icon in any column header to filter on that field. Filters stack: each one narrows the result set further.
Sorting β click a column header to sort, click again to reverse direction.
Column visibility toggle β show or hide individual columns from the toolbar.
Row actions β click the three-dot menu on any row for View and Edit. For multi-site practices, every table defaults to filtering by your current store β change the Primary Store filter to broaden the view. Single-site practices don't see this filter. The table state (filters, sort, visible columns) is reflected in the URL, so you can bookmark a filtered view and come back to the same query later.
The Clients tab
Column | Filter type | What it shows / how filtering behaves |
Full Name | β | Avatar, full name with title, status badges (billing-hold, archived, mobile-app user). Sort A β Z by default. |
Contact | β | Email and phone. Click to copy. |
Client Since | Date range | Registration date. The column shows the date; hover over it to see the exact time in your practice's timezone. Use the date-range filter to find new registrations or long-standing clients. |
Primary Store | Multi-select | Multi-site only. Defaults to your current store. |
Balance | Number range | Outstanding amount, colour-coded (red = debt, green = credit, blue = zero). Filter by minimum/maximum to find debtors or clients with credit. |
Archived | Boolean | Hidden by default. Set to Yes to see archived clients alongside active ones, or set to All to see both. |
Tags | Multi-select | Choose one or more tags (e.g. "VIP", "Corporate"). Returns clients with any of the selected tags. |
The Pets tab
Column | Filter type | What it shows / how filtering behaves |
Name | β | Pet name with avatar and species icon. Sort A β Z by default. |
Species | Multi-select | Pick one or more species (Dog, Cat, Avian, etc.). |
Owner | Search dropdown | Filter pets by their current owner. |
Breed | Text | Substring match. Useful for "all Labradors", "everything Persian", etc. |
Colour | Text | Substring match against the pet's colour value. |
Sex | Multi-select | Male, Female, Unknown plus equine sexes. |
Date of Birth | Date range | Useful for finding all pets in an age band. |
Primary Store | Multi-select | Multi-site only. Defaults to your current store. |
Deceased | Boolean | Hidden by default. Set to Yes or All to include deceased pets. |
Tags | Multi-select | Pet tags such as "Aggressive", "Anxious", "Diabetic". |
Note: archived pets follow the archived-client toggle on the Clients tab β to see archived pets, look at them via the archived owner's profile, or use global search with the archived-records toggle on.
The Clinics tab
The Clinics tab is an expandable tree: each row is a referring clinic (Name, Phone, Email), and clicking the chevron expands the list of clients referred from that clinic. Use the search box to filter by clinic name. See for everything else about referring clinics.
Inline search dropdowns inside forms
When you're filling in another form β booking an appointment, creating an invoice, attaching a referral β Lupa drops in a search-as-you-type dropdown rather than making you leave the page.
Where you'll see it | How it behaves |
Search Clients (e.g. invoice, appointment, claim) | Type to search by name, email or phone. Some pickers are filtered (e.g. "exclude clients without a mobile profile" when starting an in-app message). On the appointment booking form, pausing over a result shows a summary card with the client's address, contact details, balance and any billing hold status. |
Search Pets | Scoped to the chosen client where applicable; otherwise searches all pets. You can also search by the owner's address, postcode or city β useful when you know where a client lives but not their name. Deceased pets can be excluded depending on context (e.g. when booking). On the appointment booking form, pausing over a result shows a summary card with the pet's species, breed, age and the owner's contact details. |
Search Referring Clinics | Used in the client form's Referral Company field and on referral creation. Searches by clinic name. |
Search Stores | Multi-site only. Used to set the primary store for a client or to scope filters. |
All four dropdowns debounce roughly 300 ms while you type, so they stay responsive on slower connections.
Common Questions
"I want to..." | Where to look |
Find a specific client during a phone call | Cmd+K β type name, email, phone or microchip number β click the top result. When booking an appointment, you can also search by the client's address or postcode directly in the client or pet picker. |
Find every client who owes money | Clients tab β Balance filter β set minimum to a value above zero. Sort by Balance to find the largest debts first. |
Find new clients this month | Clients tab β Client Since filter β date range covering the last 30 days. |
Find every Labrador at the practice | Pets tab β Species = Dog, Breed contains "Labrador". |
Find an archived client | Clients tab β Archived filter β Yes or All. Or use Cmd+K and click Show {n} archived records. |
Pull a list of corporate clients | Clients tab β Tags filter β "Corporate" (configure the tag in Settings β Tags first if it doesn't exist). |
Identify mobile-app users at a glance | Look for the phone icon next to the client's name in the Full Name column. |
Check who's on billing hold | The orange badge next to the client's name marks billing-hold clients in the table. There's no dedicated filter β sort by Full Name and scan, or use Cmd+K. |
Tips
β Get the most out of search:
Cmd+K is for "find one"; the Clients tables are for "find a group" β use the right tool and you save real time.
Stack filters β Tags + Balance, Species + Date of Birth, etc. Each one narrows the list further.
Bookmark filtered views β the URL captures filter, sort and column-visibility state.
Tag consistently across the team. A Tags filter is only as powerful as the labels everyone agrees to use.
Search by microchip in Cmd+K when an unidentified pet arrives. Microchip numbers are indexed.
Check the recent-searches list when you keep going back to the same client β one click is faster than typing the name again.
Troubleshooting
Problem | Solution |
A client I expect is missing from the table | They may be archived (toggle the Archived filter), at a different store (broaden Primary Store), or filtered out by another active filter. Click Reset to clear all filters. |
A pet I expect is missing from the Pets tab | It may be deceased (toggle Deceased), or its owner is archived. Try Cmd+K with Show archived records enabled. |
Cmd+K doesn't open | Make sure focus isn't inside a rich-text editor that's intercepting the shortcut. Click outside the editor, then press the shortcut again β or click the magnifying-glass icon in the sidebar. |
Cmd+K can't find a client by phone | Try the number without spaces or country code. If still no result, search by name or email instead. |
Tags filter shows no options | Tags must be configured first under Settings β Tags. |
Primary Store filter isn't visible | It only appears for multi-site practices. Single-site practices don't see it. |
Clinics tab is missing | The tab is hidden when Referrals is disabled for your practice. Ask an administrator to enable it. |
Inline pet picker doesn't show a pet | The picker may be excluding deceased pets or pets not owned by the chosen client. Switch the client first, or open the pet's profile directly via Cmd+K. |
Frequently Asked Questions
What's the difference between the search box on the Clients tab and Cmd+K?
The search box on the Clients tab filters the visible list β useful when you're already browsing and want to narrow it down. Cmd+K searches across clients, pets, appointments, clinics, products, services and bundles from anywhere in the app, and takes you straight to the matching record's page.
Can I export a filtered list of clients or pets?
Not directly from the Clients pages. For exports, use Analytics & Reporting to build a custom report and export to Excel or CSV.
Can I save filter presets?
Saved presets aren't built in. The next-best thing is to bookmark the URL once you have the filters configured β the URL captures filter, sort and column-visibility state.
Can I customise which columns show in the tables?
Yes β every table has a column-visibility toggle in its toolbar. Hide columns you never use to keep the table focused.
Why does a client have a phone icon next to their name?
The phone icon means the client has the Lupa pet-owner mobile app installed and linked to their record, so they can receive push notifications and in-app messages alongside email and SMS.
How many results does Cmd+K return?
Up to 10 per type are shown initially with a Show more option to extend up to 50 per type. If you can't find the record you want, narrow the query (try email, phone or microchip) or include archived records via the toggle.
Does global search find archived records?
Not by default. Archived clients, pets and clinics are hidden until you click the Show {n} archived records toggle that appears at the bottom of the result list.

