— How we work

SaaS dashboard empty states

Design no-data no-permission loading and failure states separately. Practical scenarios, failure cases and tradeoffs for product design teams.

3 min readUpdated 2026-11-04By AptixLabs studio
Four dashboard panels with distinct honest states. Conceptual illustration.AptixLabs · 2026-11-04

Original AI-generated conceptual illustration for AptixLabs; not a product screenshot.

An empty dashboard can mean no records, no permission, a loading delay or a failed request. Giving all four states the same “nothing here” message makes the product harder to trust and support. Design the states around what the system actually knows and what the user can do next.

The contract to define first

Model data availability and request status separately. A successful empty response can offer a first action, while denied access should explain the boundary without revealing protected details. A loading state should not flash false zero totals. Errors need a recovery action that is appropriate to the failed operation and preserves entered work where possible.

A worked scenario

A synthetic new coach has no assigned clients. That screen should differ from an established coach whose client request failed. The former needs onboarding or assignment guidance; the latter needs a retry or support path, not a suggestion to create duplicate records.

An implementation and review sequence

  1. Define no-data no-access loading and failure independently
  2. Give each state an accurate next action
  3. Test transitions without false zero or stale success displays

Failure cases worth testing

Design no-data no-permission loading and failure states separately. Use this matrix as a starting fixture and adapt the expected behavior to the documented product contract.
Condition or inputExpected behavior
Request fails after previous data loadedThe state does not imply records were deleted
User lacks permissionProtected counts are not exposed
New account has no recordsThe screen offers the relevant first action

Download the illustrative acceptance checklist (JSON)

Tradeoffs and limits

Too many distinct messages can feel inconsistent. Use a small shared state vocabulary while tailoring the primary action to the actual task.

Use the result to make a decision

The practical output is straightforward: design no-data no-permission loading and failure states separately. Keep the assumptions with the artifact so a product owner, implementer or prospective partner can review the same decision. A useful handoff states the supported scope, the evidence collected and the remaining dependency instead of treating a successful demonstration as proof of every operating condition.

Continue with related implementation detail

Related guide: Design a coach portal as an account-scoped product workspace.

Accessible charts for health dashboards

Figma prototype versus production MVP

References and current platform requirements

Figma: MCP server documentation

Figma: connecting React components

The linked references provide platform or process context. The worked scenario and acceptance matrix are original examples; adapt them to the actual product, supported environment and documented responsibilities.

Discuss the workflow

Bring a representative Figma flow and its component states to scope a design-to-code engagement.

Explore the relevant AptixLabs service

Send a scoped project enquiry

How should no-data and failed-request states differ?

An empty dashboard can mean no records, no permission, a loading delay or a failed request. Too many distinct messages can feel inconsistent.

Which failure cases should be included in the review?

Include these explicit cases: Request fails after previous data loaded: the state does not imply records were deleted; User lacks permission: protected counts are not exposed; New account has no records: the screen offers the relevant first action.

Need help with b2b saas development for connected customer workflows?

Tell us about your product, existing stack and the problem you need to solve. We can discuss integration scope, implementation tradeoffs and a practical first milestone.

Start a conversation