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

A marketer wants to know how paid search calls converted last week, broken down by whether the caller had called before. Building that as a filter means finding the right fields, learning what “converted” means in this product’s data model, and combining several controls correctly. An Open input lets them type the question instead: “How did paid search calls convert last week, split by repeat versus first-time callers?” — and a model interprets it against the underlying call data. The same field, attached to a single call record, lets a manager ask a question about that specific transcript rather than reading the whole thing — “What made this caller hesitate?” — building on the same transcript data Signal AI already has access to for its summary. An Open input’s defining property is that the set of valid things to type is not enumerable. That is what separates it from every other Inputs-category pattern and from Select: the field does not know in advance what a good question looks like, and the model’s job is to make sense of whatever arrives.

Choose this when / choose something else when

Agency tier

Suggests. Submitting text starts a request; the response is reviewable output, not an action taken on the user’s behalf. The tier describes the input mechanism itself — what happens after submission depends on which Action the request resolves to, and that Action states its own tier if it differs (for example, if a typed request like “cancel this call’s follow-up task” resolves to something that acts).

Anatomy

Outcome states

Confident and wrong. This is the primary risk of a pattern whose entire premise is interpreting an unconstrained request: the model can misread which call the user means, answer a question adjacent to the one asked, or state something about the transcript that isn’t there — all in the same fluent, confident register as a correct answer. The user notices only by checking the response against the source — re-reading the transcript, or noticing the response references a detail (a number, a name, a timestamp) that doesn’t match what they already know. Nothing in the interface today marks a wrong response differently from a right one; the only mitigation is grounding every claim in something checkable (a quoted transcript line, a linked record) so the checking is fast even though the detection is not automatic.

Disclosure & recourse

  1. Does the user know this is AI? Yes — the field itself is labeled as asking an AI feature (not a search bar over literal text matches), and the response carries the same identifier the rest of this section requires.
  2. What did it use? State it plainly with the response: this call’s transcript, or the call data matching the stated filters — named specifically, not “your data.”
  3. How sure is it, and does that change behavior? Only a stated uncertainty caveat, not a number — see the Uncertain row above and TITAN-AI-03.
  4. How does the user check it? By grounding: a quoted transcript excerpt, a linked record, or the underlying filter the response resolved the question to. An ungrounded response — prose with nothing to check it against — is the failure this question exists to prevent.
  5. How does the user correct it? Rephrase and resubmit. Whether a correction (“no, I meant last week not this week”) is retained as context for the next submission, or treated as an unrelated new request, is undecided — see Gaps.
  6. How does the user get out? Fall back to the manual path this field was meant to replace — the filter panel, the transcript itself — which must keep working and stay reachable, not be hidden once Open input exists.

Reference

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

Evaluation

Not evaluated. No eval set exists for response accuracy, groundedness, or refusal correctness.

Content

Placeholder text follows Input’s own rule: an example of the kind of thing to type, not an instruction repeating the label.

Accessibility

  • The streaming response uses aria-live="polite" on the response container, announcing on meaningful completion (a full sentence or the end of the stream), never token-by-token — per-token announcement is unusable with a screen reader.
  • The wait before streaming starts needs a non-visual equivalent to any spinner shown — an accessible status text, not a purely visual animation.
  • Any confidence or uncertainty signal pairs with text; it is never conveyed by color alone, per TITAN-COLOR-03.
  • When a new response replaces a previous one in place, focus moves to the top of the new response and that move is what gets announced — not a re-announcement of the whole conversation history.
  • The field itself inherits Input’s accessibility requirements in full; this page adds only what is specific to the response.

Constraints

Divergences

Not applicable — nothing is shipped yet to diverge from.

Gaps

  • Whether a correction to a previous request (“no, I meant last week”) is retained as context for the next submission, or treated as an unrelated new request, is undecided.
  • What counts as “grounded enough” to satisfy TITAN-OPENIN-01 — a single citation per claim, or a looser standard — is undecided; no eval exists to calibrate it against.
  • Whether Open input keeps any conversation history across a session, or treats each submission independently, is undecided, and this materially changes what “context” means for question 2 above.
  • How the field distinguishes a request that’s out of scope for this specific record from one that’s out of scope for the product entirely is undecided.

Volatility

This page assumes a model can reliably ground its claims in the source it was given — quote the transcript, cite the record — well enough that TITAN-OPENIN-01 is achievable rather than aspirational. If grounded citation proves unreliable in practice, this pattern’s core mitigation for confident-and-wrong output does not hold, and the page needs reverification against real output, not just a design review. Dated 2026-09-02; revisit on the first real implementation or the first eval run against grounding accuracy.
  • AI Experience overview — vocabulary, agency tiers, and the six disclosure questions this page answers
  • Suggestions — the finite-set shortcut this field exists alongside, not instead of
  • Controls — for adjusting parameters rather than expressing a new request in words
  • Trust builders: Caveat — how uncertainty is stated in the response itself
  • Actions: Summarize — Signal AI’s shipped job, the concrete grounding case this page’s transcript example is drawn from
  • Input, Field label, Button — the components this pattern composes

Why it works this way

Grounding exists because detection doesn’t. Every other pattern in this section can lean on some visible seam between right and wrong — a refusal states itself, an empty state states itself. An Open input’s failure mode is a fluent, plausible paragraph that is simply not true, and nothing about its surface tells the user which case they’re looking at. Requiring every claim to point at something checkable does not prevent a wrong answer; it makes checking one fast enough that the user actually does it.
Last modified on September 3, 2026