Product design / Practical notes

SaaS Dashboard Empty State UX Guide

An empty screen should help someone understand why there is nothing to see and what they can do next. The right message depends on the cause.

Distinguish first use from zero search results

A first course and a search with no matches are different situations. Masteriyo’s empty builder offers ways to add the first content because the author has not created any yet.

The message can be short when the action is clear. It becomes confusing when the same generic Nothing here treatment is used for a new account, a failed search and a permission problem.

Masteriyo empty course builder offers Add Section, Add Assignment and Add Quiz, with a separate documentation link.
Masteriyo empty course builder offers Add Section, Add Assignment and Add Quiz, with a separate documentation link. Full original Figma frame; design content is sample data.

Inspect the original Figma frame (access may be required)

Write the cause before the call to action

No data is a description of the display, not an explanation. A new workspace, an over-restrictive filter and a failed request may all leave an empty panel, but they require different messages. Start by writing one sentence about why this result is empty, using only information the application can establish.

Then choose an action that changes that cause. Create your first lead fits an eligible new workspace. Clear filters fits a filtered result. Retry fits some request failures. Using one button for all three can send the person in the wrong direction.

Use a small cause-to-copy worksheet

Use a small cause-to-copy worksheet
Known causePossible explanationRelevant action
No matching recordsNo leads match these filtersChange or clear conditions
No records createdThis workspace has no leads yetCreate or import, if permitted
Request failedWe could not load the leadsRetry with retained context
Access is insufficientUse an approved access explanationRequest access when supported
Setup is incompleteName the missing setup stepContinue setup

Keep the search in view when nothing matches

Yarsha’s contact search keeps the query and keyboard visible when it finds no contact. The populated contacts view gives the comparison: the person is still working with the same directory.

The next action should fit that situation. They may need to change a query, add a person or send an invitation. Clearing the query for them would remove useful context.

Yarsha contact search preserves the entered query, Contacts and Invite tabs, empty result and keyboard.
Yarsha contact search preserves the entered query, Contacts and Invite tabs, empty result and keyboard. Full original Figma frame; design content is sample data.

Inspect the original Figma frame (access may be required)

Yarsha contact directory pairs names and wallet identifiers with search and an add-contact action.
Yarsha contact directory pairs names and wallet identifiers with search and an add-contact action. Full original Figma frame; design content is sample data.

Inspect the original Figma frame (access may be required)

Keep the message proportionate

A routine search with no matches rarely needs a large celebratory illustration or a paragraph about the product's value. Name the result, keep the query visible and provide a concise continuation. A first-use state may need more explanation because the person has not yet learned the model.

Avoid blame. Invalid input can be described precisely without suggesting carelessness. When the cause is unknown, use an honest loading or error explanation instead of confidently stating that the account contains no records.

Review the words in a transition

Enter a zero-result query, change it and return after data becomes available. Check that the explanation updates with the state and that the recovery action does not discard useful input. Review how the result is announced without forcing unnecessary focus movement.

This guide focuses on the copy and action for one observed state. For product-wide consistency, classify the causes first; for implementation acceptance, test persistence and recovery separately.

Continue reading

RELATED EXPLORATION

Build a product-wide empty-state taxonomy

RELATED EXPLORATION

Test recovery and persistence

RELATED EXPLORATION

SaaS design work

NEXT FILE / YOUR PRODUCT

Got a product in mind?

Let’s talk