Signal Inbox — UI Copy Reference

AI Product Design Lab · David Paterni · Support-agent workspace · All 5 screens
Contents
The five product laws — the spec the whole product defends Screen 1 — Today / Your shift Screen 2 — Inbox / The signal feed re-ranks for the issue [SIGNATURE] Screen 3 — Sources / The honesty layer Screen 4 — Calibrate / Tune the order, never the reply Screen 5 — Impact / What the workspace changed
Foundation
The five product laws
"Trust here isn't a reassuring tone of voice; it's a structural property you can poke at."

These five strings appear verbatim across the product — the legend, the Sources screen, and the Impact recap. Every screen below is an application of one or more of them.

1 · Context, never the reply.
    The only action is "Add to my reply context." The agent writes and sends.

2 · No signal without a source.
    Every signal traces to a replay moment or source event.

3 · Relevance is explained, not assumed.
    Re-ranking shows why each signal moved for the current issue.

4 · Uncertainty is labeled, not hidden.
    Provisional signals are pinned below confirmed events, never above.

5 · Shape + label, never colour alone.
    Signal type is carried by shape and text, not hue.

The scoring model — referenced on every screen

score = salience × issue-affinity × freshness
Freshness decays from 1.0 toward a ~0.45 floor over about twelve hours.
The issue lens is the term that changes: pick the issue and issue-affinity re-weights.

Screen 1

Screen 1
Today / Your shift
"See what the customer did, felt, and experienced — before you reply."

Workspace home — 1440px on web preview · Authenticated · Sets the model: surface, explain, prove — never reply

App Header

Signal Inbox                       ● LIVE: production       [ ◐ Light/Dark ]   [ D.P ]

Hero / Positioning

Agent context, made legible
Signal Inbox — see what the customer did, felt, and experienced before you reply.
Surface the context in priority order. Show why each signal matters. Prove it with
the evidence behind it.

[ View the lo-fi wireframes ]   [ Open the full prototype ]   [ Jump to the signal feed ]

Your Shift — 4 metric tiles (live pulse)

Conversations in queue      4        1 live · 3 waiting
Avg time-to-context         0:08     ▼ from 0:41 last quarter
Signals surfaced today      1,732    every one traced to a source
Replies written by you      100%     Signal Inbox never sends one

Three Properties — what the workspace does, in order

Surfaces, in priority order
Pick the issue and the feed re-ranks — what the customer did, felt, and experienced,
ordered by how much it matters for the problem in front of you, not by when it was logged.

Explains why it surfaced
Each signal carries a plain "why surfaced" line for the current issue — salience,
issue-affinity, and freshness, shown as a reason you can read. Nothing is ranked
against something you can't see.

Proves it with evidence
Open the drawer and the signal becomes a replay moment plus the raw source events
behind it — with an honest interpretation note. The agent adds it to reply context;
the agent writes and sends.

Live Mini-Demo Strip

▲ Surfaced   Payment declined ×2 at checkout   ● Confirmed   Relevance 92
             Why surfaced for Billing — a payment failure on the exact issue she raised.

State Legend — shape first, colour second (Law 5)

●  Confirmed     —  a source event that happened
◐  Provisional   —  inferred or low-confidence
○  Awaiting      —  not yet observed
▲  Surfaced      —  lifted for this issue
+  Context only  —  never sent for you

Screen 2

Screen 2
Inbox / The signal feed re-ranks for the issue [SIGNATURE]
"Relevance is explained, not assumed — re-ranking shows why each signal moved for the current issue."

The signature interaction · three-pane: conversation list · Maya Chen's thread · the Signal Feed

Issue Lens — the control that re-ranks the feed

Prioritize for:   [ Billing ]   [ Technical ]   [ Returns ]   [ Account ]
Pick the issue and Signal Inbox recomputes every score, re-sorts, animates the
reorder, and marks each move with a ↑ surfaced / ↓ lowered delta and a one-line reason.

Conversation Thread — Maya Chen

Maya Chen · live                                       "I don't want to be double-charged"
Maya:  I think I just got charged twice for one order. I don't want to be
       double-charged. Can you sort this out?
Agent: [ the agent composes the reply here — Signal Inbox does not ]

Signal Feed — header

Signal feed — prioritized for Billing

Signal Card — confirmed, surfaced (repeat this pattern per signal)

▲ Surfaced
⊟ Payment declined ×2 at checkout                                              2m ago
Transaction
Relevance  ████████████████████░  92
Why surfaced for Billing — a payment failure on the exact issue she raised.
[ + Add to reply context ]   [ ⊙ Evidence ]   [ ✕ Not relevant ]

Signal Card — provisional, pinned below confirmed (Law 4)

⊟ Possible duplicate hold — $128.40                                            2m ago
Transaction   ◐ Provisional
Relevance  ██████████████████░░  86
Inferred, not confirmed — pinned below the confirmed charge it might explain.

"Why surfaced" templates — one per signal, for the current issue

Surfaced for {Issue} — {the plain reason this event bears on the issue}.

Billing:    Surfaced for Billing — two declines minutes apart, then a retry, directly
            on the issue Maya raised.
Provisional: Inferred, not confirmed — pinned below the confirmed charge it might explain.

Re-rank — Billing lens vs Technical lens (↑ surfaced / ↓ lowered)

Issue lens · Billing  (default order)
1   Payment declined ×2                 92
2   Confirmed charge · order #4471      76
3   Viewed billing FAQ                  41
    — provisional · pinned below —
◐   Possible duplicate hold             86

Switch the lens · Technical  (re-ranked live)
1   Checkout error 500       ▲6         74
2   Rage-clicked ×4          ▲4         72
3   Payment declined ×2      ▼2         58
    — provisional · pinned below —
◐   Possible duplicate hold  ▼1         52

Permanent Law-1 strip (always on screen)

+ The only action on a signal is "Add to my reply context."
No compose · no suggested reply · no auto-resolve. The agent writes and sends.

Evidence Drawer — opens on "⊙ Evidence" (Law 2: no signal without a source)

Payment declined ×2 at checkout            Session replay · checkout
Replay   0:00 ●━━━━━━━━━━ 0:18   [ ▶ play ]      Today, 2:41 PM
The declined tap is marked on the timeline.

Source event
Event           payment.declined (×2)
Gateway code    do_not_honor → retry
Amount          $128.40
Page            /checkout/payment
Device          iPhone · Safari 17

Evidence Drawer — honest interpretation note

Two declines, ~20s apart, on the same card. No successful capture recorded —
consistent with a pending hold, not a completed charge.

(Provisional "Possible duplicate hold — $128.40" carries its own note: the ledger
shows one authorization hold, not two captures, and settlement has not posted.
Confirm with billing before telling Maya she was charged twice.)

Every drawer ends with what the evidence can't carry. The only forward action out of it is still "Add to my reply context."

Reply-Context Brief — assembled when a signal is added (the round trip from feed to reply)

Reply context · Maya Chen        Billing             ✓ Added to your reply context

Top signal     Payment declined ×2 · 92
Confidence     Confirmed
Evidence       Session replay · checkout · Today 2:41 PM
Also weigh     Duplicate hold · provisional

No message is drafted or sent. The agent reads this brief and writes the reply in
their own words.

Toasts

Added to your reply context
Removed from reply context
Marked not relevant — it won't surface for this issue again

Screen 3

Screen 3
Sources / The honesty layer
"No signal without a source — Sources turns 'trust me' into 'check me.'"

Where every number on the feed has a derivation, and the wall guarantees an inferred signal can never out-rank something that actually happened.

Panel Header

Sources — the honesty layer that makes the feed checkable

The three honesty laws this screen makes good on

Law 2 — No signal without a source.   Every signal traces to a replay moment or source event.
Law 4 — Uncertainty is labeled, not hidden.   Provisional signals pin below confirmed, never above.
Law 5 — Shape + label, never colour alone.   Signal type is carried by shape and text, not hue.

Signal-Type Catalog — five types, shape carries the meaning (Law 5)

⊟  Transaction   a money / order event              e.g. Payment declined ×2 at checkout
↻  Behavior      something the customer did          e.g. Rage-clicked "Place order" 4×
♨  Emotion       how the customer felt (inferred)    e.g. Frustration rising this session
◷  History       prior standing / account changes    e.g. Loyal customer · 12 orders · 3 yrs
⚙  Technical     a system error they hit             e.g. Checkout returned error 500

Scoring Model

score = salience × issue-affinity × freshness
Salience       how strong the event is on its own
Issue-affinity how much it bears on the chosen issue  (the lens changes this term)
Freshness      a time decay — 1.0 toward a ~0.45 floor over ~12h

Freshness-Decay Curve — label

Freshness over time   —   1.0 → ~0.45 floor over ~12h
[ decay curve area ]
A rage-click from this morning matters more than one from last week — but old
context never drops to zero.

Confirmed ↔ Provisional Wall — specimen (Billing)

● Payment declined ×2 at checkout        Confirmed          92
● Read "Why was I charged twice?"        Confirmed          76
— — — — — — Provisional — confirm before relying — — — — — —
◐ Possible duplicate hold — $128.40      Provisional        86

The provisional hold scores 86 — above the confirmed read at 76 — yet it sits below
the wall. A high score never lets an unverified claim jump it.

Screen 4

Screen 4
Calibrate / Tune the order, never the reply
"This changes the order you see — never what you send."

A billing specialist and an escalations lead don't want the same things first. Calibrate tunes the order each sees while the provisional wall holds and the reply stays untouched.

Persistent Law-1 banner (sits above everything)

+ Calibration changes the order you see — never what you send.
There is no setting anywhere that lets Signal Inbox compose or send a reply.

Header

Calibrate — teach the feed, never the reply
Issue:  [ Billing ]  [ Technical ]  [ Returns ]  [ Account ]
Tune the order; the "Your ranking" column re-sorts live.

Signal Weights — three sliders

Recency                     ●————————○   35
Confirmed-first strictness  ——————————●—   High
Emotion sensitivity         ———●————————   40

[ Save your surfacing preference ]   [ Reset to default ]

Default vs Your ranking — live, with ▲▼ deltas

Default ranking                         Your ranking
1  Payment declined ×2                   1  Payment declined ×2        —
2  Checkout error 500                    2  Read "charged twice?"      ▲1
3  Read "charged twice?"                 3  Checkout error 500         ▼1
   — provisional wall —                     — provisional wall —
4  ◐ Possible duplicate hold             4  ◐ Possible duplicate hold  —

This changes the order you see — never what you send. Confirmed signals reorder;
the provisional hold stays pinned below the wall in both columns.

Toasts

Saved your surfacing preference
Reset to the default ordering

Screen 5

Screen 5
Impact / What the workspace changed
"A debrief that only celebrates wins is marketing — Impact names the outcomes and the boundary the product chose not to cross."

Four outcome metrics, a black-box vs Signal Inbox before/after, and a recap of all five product laws.

Outcome Metrics — 4 tiles

45%   faster time-to-resolution
38%   drop in escalations
52%   faster root-cause analysis
40%   less investigation time

Before / After — the black box vs Signal Inbox

The black box · what most tools expose
Logged in              14:02
Viewed order #4471     14:03
Payment event          14:05
A flat, time-ordered log. No priority, no evidence, no read on what mattered for
this issue, and no sign of what the customer felt.

Signal Inbox · the glass box
▲ Surfaced   Payment declined ×2   ● Confirmed · 92
Why surfaced for Billing — on the exact issue she raised. Evidence one tap away.
The same payment event, ordered for the issue and traced to the source that earned it.

The Five Product Laws — recap

1 · Context, never the reply.            The only action is "Add to my reply context."
2 · No signal without a source.          Every signal traces to a replay moment or source event.
3 · Relevance is explained, not assumed. Re-ranking shows why each signal moved for the issue.
4 · Uncertainty is labeled, not hidden.  Provisional signals pin below confirmed events.
5 · Shape + label, never colour alone.   Signal type is carried by shape and text, not hue.

Outcome Label

Signal Inbox turns a thirty-second hunt into a prioritized, traceable read of the
issue in front of you — surfaced, explained, and proven — while the reply stays
human. Surface → Explain → Prove: customer context you can read, trust, and act on
in seconds, and never a reply written for you.