Product & Design

Search and Filter UX: Explain No Results Without Losing the Task

Distinguish no matches, empty data, restricted scope, stale results and failed requests in search and filter interfaces.

Purushottam Kumar Suman
Purushottam Kumar Suman
Founder & CEO, Drema AI
3 min read
Notebook with hand-drawn interface wireframes beside a phone

Search and filter interfaces should show what was searched, which constraints apply and what the user can change when no records appear. Separate no matching results from missing permission, unavailable data and a failed request. Those states need different explanations and recovery actions.

CTA Background

Let’s plan your search experience.

Bring your workflow and the decisions you need to make. We’ll help you clarify requirements, review the trade-offs and define a practical next step.

01

Define the searchable population

Identify record types, fields, access scope and freshness. Tell users enough to form a useful query without revealing restricted records. A search over active orders should not appear to search the entire organisation's history.

Specify exact, partial and identifier matching where relevant. Do not promise intelligent search without examples of supported behaviour and a testable acceptance boundary.

02

Design a result-state matrix

Result stateWhat users need to knowUseful next step
Matches foundScope, count and orderingInspect or refine results
No matchesQuery and active constraintsAdjust relevant terms or filters
Empty collectionNo eligible records exist yetCreate or import where authorised
Access limitedSearch respects the user's permitted scopeAppropriate access-request route
Data staleResults may not reflect recent changesRefresh or explain update timing
Request failedSearch did not completeRetry without losing input

Do not automatically call every empty view No results found. That wording can mislead users when the service never answered.

03

Make filters visible and reversible

For a hypothetical service-request queue, a hidden Closed status exclusion may make an existing reference seem missing. Show active constraints and provide a clear way to remove them.

Decide whether changing a filter resets pagination and selection. Preserve the query when users return from a record. Avoid unexpectedly discarding their workspace after a browser Back action.

04

Test queries users actually use

Include identifiers, abbreviations, punctuation, long names and likely mistakes. Use authorised examples and review the result ordering with domain users. A relevance score is less useful than observing whether the intended task succeeds.

Check large datasets and server errors as well as the tidy demonstration state. Define how the interface handles a query that is still processing when another query starts, so old results do not overwrite newer intent.

05

Search UX questions

Should the interface always suggest creating a record after no results?

Only if creation is permitted and appropriate. Otherwise it can encourage duplicates or bypass an expected lookup.

Should all filters persist forever?

Choose a predictable persistence rule and make retained constraints visible. Users should not have to remember a hidden setting from a previous session.

Connect the result view to data table interaction rules. Bring sample searches to Drema's UI/UX design team.

Purushottam Kumar Suman
Written by
Purushottam Kumar Suman
Founder & CEO, Drema AI

Founder and CEO of Drema AI. Builds AI systems, SaaS platforms and industry software — and writes about what actually survives production.

CTA Background

Got a problem like this one?

Bring it to a call with a founder.You will get a straight answer, including when the answer is no.

View Our Work
AI-First Engineering
Secure & Scalable
Built to Deliver Impact