Skip to main content
Exemplar page — first pass, entirely proposal. No Invoca product ships this pattern today. Nothing below is code fact or measured behavior — it is a proposal offered for review. See Coverage, stated honestly.

What it is

This page covers two moments, both specific to an agentic feature and both distinct from a plain empty state: Welcome is what a marketer sees the first time they open an AI panel that hasn’t been asked anything yet — a natural-language search over call data, or a summarization panel on a call that hasn’t been analyzed. There is no prior run to show, so the panel’s only job is to set expectations: what this feature can do, what it can’t, and how to start. A user who doesn’t yet know that Signal AI summarizes transcripts but can’t change routing or settings needs to learn that here, before they ask for the wrong thing and get refused. No-results is what the same marketer sees after they’ve asked something — “show me calls about a refund dispute from last week” — and the search, summarize, or recommend run completed correctly and found genuinely nothing. The run worked. There’s simply nothing to show. That distinction — worked-but-empty versus broken, loading, or refused — is the entire content of this half of the page, and it’s the one a plain empty state doesn’t have to carry, because a deterministic region either has data or it doesn’t, with no “the search itself might have been wrong” question attached. Both moments are visually related — both replace the same panel’s content with a message plus optional next step — and both are covered on this page because both carry the same AI-specific obligation a static empty region never has: telling the user something about the feature’s scope, not just about the current state of the data.

Choose this when / choose something else when

Agency tier

Not applicable — this isn’t an acting surface at all. Welcome and no-results are the moment before a run starts or the moment after one finishes with nothing; nothing is proposed, drafted, or acted on in either state, so there’s no authority to name. The agency tier belongs to whatever the user does next — the Search, Summarize, or Recommend run this panel leads into.

Anatomy

Welcome:
No-results:
The no-results variant composes EmptyState directly — same illustration-plus-title-plus-supporting-line shape that component already defines. What’s added is the AI-specific obligation: the heading names what was searched for, in the user’s own words, not a generic “no results.”

Outcome states

Disclosure & recourse

  1. Does the user know this is AI, at the moment it matters? Yes for welcome — the scope-setting copy names the feature and is the disclosure itself. For no-results, the framing (“your question didn’t match anything”) makes clear a query was interpreted, not just filtered.
  2. What did it use? For no-results, state what was searched — which calls, which date range — so “nothing matched” is checkable against a concrete scope, not a vague “your data.”
  3. How sure is it, and does that change behavior? For no-results, an exhaustive search says so plainly (“no calls matched”); an incomplete one says so differently (see Uncertain) and that difference changes what recourse is offered.
  4. How does the user check it? The user can always fall back to a manual filter or the underlying Table view to verify a no-results claim themselves — see Filtering and search.
  5. How does the user correct it? Rephrasing or broadening (no-results) and trying an example prompt (welcome) are the two correction paths. Neither persists as a standing preference.
  6. How does the user get out? The manual, non-AI path — the plain table or filter view — is always available and unaffected by anything this panel did or didn’t find.

Reference

No model, prompt, tool schema, latency budget, or cost has been defined for this pattern.

Evaluation

Not evaluated. No eval set exists for whether “no results” is ever produced incorrectly (a false empty) versus correctly.

Content

Never reuse EmptyState’s generic fallback copy (“No Records found!”) for a no-results moment — it doesn’t name what was searched for and reads as broken rather than as a completed, empty search. Per TITAN-EMPTYCOPY-03, the no-results wording names the query; per this page’s own TITAN-AIWELCOME-02, the welcome wording names what the feature can’t do, not only what it can.

Accessibility

  • The transition from a loading region to the no-results message is announced via a polite live region on completion — not token-by-token, and not silently, so a screen reader user can tell the difference between “still running” and “finished, found nothing.”
  • An indeterminate wait before either state renders needs a non-visual equivalent to a spinner — accessible status text, not a purely visual animation.
  • The scope-setting line and the no-results heading are both real text, never baked into an illustration — matches TITAN-EMP-07.
  • When a no-results screen replaces a loading region, focus moves to the heading so a screen reader user lands on the result, not left on a control that no longer has anything to act on.
  • Example prompts (welcome) and next-step actions (no-results) are both reachable by keyboard in visual order.

Constraints

Divergences

Not applicable — nothing is shipped yet to diverge from.

Gaps

  • Whether the welcome screen’s example prompts should be static or drawn dynamically from what the specific account or user has actually asked successfully before is undecided.
  • Whether a no-results moment should offer to fall back to a broader, AI-assisted retry (e.g., automatically widening the date range) or only manual recourse is undecided.
  • Whether “the search may be incomplete” (see Uncertain) needs its own distinct visual treatment from a fully exhaustive no-results screen, or whether the copy difference alone is sufficient, is undecided.
  • How this pattern’s welcome moment differs, if at all, from an Initial CTA for the same feature is not fully resolved — the working distinction on this page is that Initial CTA is a one-time invitation attached to a specific piece of content, while welcome is the standing state of a panel with nothing asked yet, but the boundary hasn’t been tested against a real product surface.

Volatility

This page assumes an agentic feature can distinguish, internally, between “ran and found nothing” and “didn’t finish” — that distinction is what TITAN-AIWELCOME-04 depends on, and it doesn’t hold for every possible implementation (a system that times out silently may not know which case it’s in). Dated 2026-09-02; revisit on the first real implementation of any search, summarize, or recommend panel, and whenever EmptyState’s own known issues (its fallback copy, its heading-level defects) are resolved, since this page’s no-results variant composes that component directly.

Why it works this way

Setting scope at the first interaction is cheaper than absorbing a refusal later. A user who learns upfront that the feature summarizes and surfaces Signals but doesn’t touch routing will never ask it to change routing and get an unexplained no; the cost of stating a limitation once, plainly, is far lower than the cost of a confused first request. Naming the specific, completed search is what keeps “nothing found” from reading as “something broke.” The two states look almost identical — an empty region with a short message — and the only thing separating a trustworthy empty result from a suspicious one is whether the message proves a real search happened. A heading that repeats the user’s own query back to them is that proof; a generic “no results” is not.
Last modified on September 3, 2026