18 · Request · Inbox

When the agent needs you back.

18 / 18

Where async work asks a question and waits. Every item is the same shape: a question, a short brief, a reply.

18.1Spatial frame

Canvas, not checklist.

Left: what's waiting. Centre: what's asked. Right: what it came from. Narrow screens collapse to the centre only; conversation about any item threads into §14 Chat.

integ-gmail

Reply to Sarah @ Acme?

42m ago
Sarah sent a revised proposal at 7:14am. I drafted a reply — two things worth checking before it goes out.
Draft reply

Thanks for taking this back to the team — the tighter scope works on our end.

At $40k we can proceed, given the reductions we discussed.

For timing, we can kick off the week of May 5.

Let me know if you'd like to adjust anything.

Agent notes · 2 concerns
"$40k we can proceed" Matches their ask. Your internal floor is $38k — within range but worth a last look.
"we can kick off the week of May 5" @jamie flagged this would slip two other deliveries. Worth discussing before committing.
18.2Filter

Narrow by project, person, or anything else.

Plain text matches titles. Prefix a token with a facet name to match directly. Global search (across figments, chats, boards) lives in §9 Command Palette.

project:Acme deal person:sarah proposal
project
Acme deal Spring Launch Q3 campaign

Your own work buckets. Anything tagged to a project — emails, approvals, drafts — surfaces together.

person
Sarah @ Acme Priya @jamie

Anything related to a person — threads they're on, drafts to them, teammates they mentioned.

source
emails campaigns workflows

The kind of work the item came from. Good for "just show me emails today."

status
pending completed dismissed

Lifecycle state. Pending is the default view.

urgency
needs attention fyi blocked

How the agent tagged it. Blocked items always surface first.

since
today this week last month

Filed within a time window. Relative terms resolve against now.

18.3Severity (retired)

Priority is the signal now.

We originally used four severity dots — info / warning / error / success — in the list's left column. That language was about what kind of message an item was. In practice what users actually wanted to know is how soon they need to act, so the dot now carries priority (§18.4), not severity.

Severity survives as a backend attribute: workflows and agents can still emit severity: "warning" in an inbox item payload, and the frontend uses it to help pick the priority tier — warning and error both typically become Hot or Warm, info defaults to no priority. The list column shows one dot per row: the priority dot. Success is no longer a severity at all; completed items render with a check or dash mark (§18.6 States).

18.4Priority

Hot, Warm, Cool — the pile on your desk.

Adapted from Alan Lakein's 1973 ABC priority method: three tiers, named in physical language, shown as a single dot in the list's left column — the same left-column vocabulary we already use for severity. One dot, three states; most items carry no dot at all. Severity and priority have been merged: the dot now tells you how soon you need to act, not what kind of message it is.

Hot

Drop what you're doing. Something is blocking, expiring, or paused on your reply. Solid red dot, quiet pulse. Floats to a Now group at the top; adds a red marker to the Inbox nav.

Sort · top · always

Warm

Real, not critical. Handle today or tomorrow. Solid ink dot, no pulse. Lives in its natural time bucket (Today, Yesterday, This week) — warm means "worth looking at when you're in."

Sort · time bucket

Cool

No pressure. Skim when you have a minute, or let it auto-expire. Hollow ring, muted. Collapses into a small Later · N tail at the bottom of the list; doesn't count toward the inbox-zero number.

Sort · later tail · collapsed

A fourth state — no priority — is the default and has no dot. It means "this arrived, it's in the list, no tier was assigned." Most items sit here; the left column stays blank. This keeps the dot rare and therefore meaningful.

Reading order: Hot floats to a "Now" group at the top, always. Items without a tier sit in their natural arrival bucket (Today, Yesterday, This week). Cool collapses into a "Later · N" tail at the bottom — click to expand. The dot column stays aligned whether or not a priority is set; no-priority items just hide their dot.

Two ways to read the pile

A small Time | Priority toggle sits at the top-right of the list. It doesn't change the data, just the order.

Time · the default. Grouped by arrival bucket. Hot still floats to Now, Cool still sinks to Later — but the middle is "when it arrived," not "how urgent it is."

Priority · flat list, grouped by tier. Within each tier the sort is still newest-first — but arrival buckets and the Later drawer are gone; everything is inline. Use when you're triaging, not when you're catching up.

Inbox 7

Nav-item badge. The sidebar Inbox gets a red pulsing dot whenever at least one Hot item is pending. The numeric count is hot + warm + no-priority; Cool items don't contribute. Zero-inbox = zero on the number, regardless of what's in Later.

Hot Approve Meta ad spend increase

Focus pin. When a Hot item is focused, the title row carries a small red "Hot" chip before the title. Warm and Cool items don't carry a chip — the meter in the list row is enough. Only the loudest tier earns a label in the focus header.

Who assigns it? Workflows can emit a tier at item-creation time (a paused run needing approval → Hot). Agent can suggest a tier from context (a sender flagged as VIP, a keyword like "urgent" in the draft body). Users can re-pin from the focus overflow menu. The source of the tier is stored on the item so "why was this flagged Hot?" always has an answer.

Severity is retired (§18.3). We originally carried two left-column signals — severity ("what kind of message") and priority ("how soon"). In practice most workflows set both, and users only ever scanned one. The dot in the list is now priority-only. Severity survives as a backend hint that helps pick the initial priority tier (error → typically Hot, info → typically no-priority), but doesn't render its own icon.

18.5Fields

Eight ways to ask, one way to reply.

Same vocabulary as §13 Forms. Binary questions render as toggles, not dropdowns. rich_text replaces the old long_text plain textarea — the user sees WYSIWYG (bold / italic / link / list / code), the wire format is markdown, and the downstream workflow is free to render it as email HTML, Slack mrkdwn, or anything else. An empty editor looks identical to a textarea; formatting is opt-in.

18.6States

Empty, error, delete-confirm.

Empty teaches. Delete confirms in place. Callback failure whispers.

Empty · inbox clear

Inbox is clear

Emails, campaigns, and workflows will file questions here when they need your input.

Empty · nothing pending

Nothing pending

You're all caught up. New requests will appear here.

Delete · confirming

Reply to Sarah @ Acme?

42m ago
Callback failure

fig-brand Brand palette locked in

Approved Failed
Completed 2d ago

Couldn't sync back to HubSpot. I'll retry at the next sync.

18.7Signifier

The mark on the rail is the loudest pending dot.

Next to Inbox in the sidebar, a small sharp mark shows the count and severity of pending items. It reuses the same dot language as §18.3 Severity — the sidebar simply lifts the loudest dot into the rail. Not a siren. Not a red alert. A signal.

State
Nav row
Why
Clear
Inbox
No mark. No pending items.
Info
Inbox 2
Light prompts, confirmations. Static dot.
Warning — default
Inbox 5
Approvals the agent wants before proceeding. Dot pulses.
Error
Inbox 1
Something stalled. Color carries the weight — no pulse.
Overflow
Inbox 9+
Counts cap at nine. The mark is a signal, not a scorecard.
a
Loudest-wins aggregation.

Severity promotes: error > warning > info. The mark takes the color of the loudest currently-pending item. Completed items don't count.

b
Pulse is reserved for warning.

The warning dot carries a slow 3.2s pulse — the same cadence as in-row warning dots. Error stays still; its color is the weight.

c
Shape before chrome.

Transparent fill, 1px severity border, no radius. The mark doesn't compete with the nav — it sits alongside it, quiet until you look.

d
Arrivals are felt, not announced.

A new item causes the mark to scale in from 0.85 over 180ms. Increments to the count cross-fade; hover on the nav row steadies the pulse — a small moment of acknowledgment.

18.0Principles

Rules the feed lives by.

A
One inbox for the whole product.

Figments, workflows, integrations — everything files into one column. Users don't think in per-tool inboxes.

B
Severity is a signal, not a siren.

A coloured dot and, for warnings, a gentle pulse. Read the feed down the left edge in a glance and the severity rides with it.

C
Pending is bolder. Completed is quieter.

Pending carries a tint and a semibold title; completed drops both. A to-do list, not an archive in disguise.

D
The reply is a real form.

Same inputs as everywhere else. Binary questions read as toggles. Required marks with a red asterisk, not chrome.

E
Dismiss is silent. Delete asks twice.

Dismiss is a soft out. Delete flips the trash icon to a check/cancel pair in place. The surface doesn't jump.

F
Empty is voice, not a placeholder.

One sentence about what would land here. No illustrations, no CTAs — empty states teach, they don't sell.