‹ All screens
Views
How the agent's output is shown. Pick one when you create a workflow — or let the inferred-workflow step pick for you. Each view is a typed contract: skill output → view input → screen the operator works in.
MetricCards
v1Forecast accuracy
91.2%
↑ 5.4 pts vs baseline
SKU coverage
2,184
no change · 30d
Stockout exposure
$84k
↓ 21% week-over-week
Markdown risk
$12k
↓ 8% week-over-week
Input shape
{ label: string, value: number|string, unit?: string, delta?: { value: number, direction: "up"|"down"|"flat", scope: string } }[]Best for
Glanceable dashboards · 2–6 KPIs · operator opens, scans, moves on
Avoid when
More than 8 metrics (use TableView) or single value with deep drill (use chart)
TimeSeriesChart
v1Forecast accuracy · last 30 days
↑ 5.4 pts vs baseline · 4 improvements
Forecast accuracy
Baseline
Input shape
{ series: { name, points: [{ t, value }] }[], baseline?: number, annotations?: { t, label, delta }[] }Best for
Lift over time · before/after improvement story
Avoid when
Comparing categorical values (use TableView) or single point-in-time state (use MetricCards)
TableView
v1| SKU | Description | Forecast | On-hand | Exposure | Risk |
|---|---|---|---|---|---|
| BOOT-W42 | Winter trail boot, men's | 1,847 | 312 | $48k | High |
| BOOT-W41 | Winter trail boot, women's | 1,422 | 280 | $22k | Med |
| JKT-D08 | Down jacket, unisex | 911 | 198 | $11k | Med |
| GLV-T03 | Touchscreen glove | 540 | 120 | $3k | Low |
Input shape
{ columns: { key, label, type, format? }[], rows: object[], toolbar?: { title, summary } }Best for
Operator triage · "show me the things that need attention, ranked"
Avoid when
Fewer than 3 rows (use cards) · narrative output (use ConversationView)
AlertList
v1Stockout forecast: BOOT-W42 will hit 0 in 6 days
Promotional uplift underweighted on bundled SKUs
Supplier lead time drifted +2 days for 12-week SKUs
Input shape
{ severity: "high"|"medium"|"low", title, meta, action_url? }[]Best for
Inbox · monitor signals · "since last open" · anything time-ordered with severity
Avoid when
Items have no inherent priority (use TableView) or workflow output is a single drafted reply
KanbanBoard
v1New
3Refund eligibility · #4821
Annual subscription, 47 days in
Order status · #4820
Where is my package, no tracking
Drafted
2Account merge · #4815
Two accounts, same email
Plan change · #4812
Downgrade from team to solo
Sent
14Order confirmation · #4809
Replied 6 minutes ago
Tracking link · #4807
Replied 12 minutes ago
Escalated
1Refund dispute · #4798
Customer not satisfied with policy
Input shape
{ columns: { key, label, count }[], cards: { id, column_key, title, body, meta, tags? }[] }Best for
Ticket triage · ops queues with clear stages · agent + human shared workspace
Avoid when
No stage transitions (use TableView or AlertList)
ScheduleGrid
v1Input shape
{ rows: { key, label }[], cols: { key, label, sub? }[], cells: { row_key, col_key, value, target?, status: "ok"|"warn"|"error", tag? }[] }Best for
Shift schedules · capacity boards · content calendars · room booking · on-call rotations · anything resource × time
Avoid when
Time isn't an axis (use TableView) · single-day view (use AlertList or KanbanBoard)
ConversationView
v1CS
Hi — I'd like to cancel my annual plan and get a refund for the unused months.
AI
I can help cancel your plan. On refunds — our annual plan is non-refundable after the first 30 days1, but I can stop it from auto-renewing. Want me to do that?
CS
OK please stop auto-renew. When does it actually end?
AI
Done — auto-renew is off. Your current term ends 2026-08-142. You'll keep full access until then.
Input shape
{ messages: { role: "agent"|"user"|"system", text, ts, citations?: [{ id, source }] }[] }Best for
Customer support · sales chat · any agent-to-human dialogue with grounding
Avoid when
Output is structured (use TableView) or operator never sees individual conversations (use MetricCards)
SideBySideView
v1Current skill · v3421 chars
when forecasting: load 36mo
history. detect anomalies as
>2 stdev from prior-year.
emit forecast.run with
{accuracy, exposure}.
Proposed · v4518 chars
when forecasting: load 36mo
history. detect anomalies as
>2 stdev from prior-year.
also flag seasonal-cluster
drift >15% vs prior-year same-
week (catches winter footwear
case).
emit forecast.run with
{accuracy, exposure}.
Input shape
{ left: { title, body, format? }, right: { title, body, format?, highlight?: "added"|"removed" } }Best for
Proposal diffs · before/after improvement view · contract drafting
Avoid when
No comparison anchor exists (use a single panel)
DocumentReader
v1Input shape
{ blocks: { kind: "heading"|"para"|"clause", text, spans?: [{ start, end, type, note }] }[], annotations: { id, span_id, severity, body }[] }Best for
Contract review · policy drafting · any reviewer-with-document workflow
Avoid when
Document is short (under 200 words) — use SideBySideView · or no annotations needed (use plain prose)
Need a view that isn't here?
We deliberately keep the set small — every view multiplies the surface area we have to keep stable across themes, eval, and accessibility. If you have a workflow that doesn't fit one of the 9, tell us at views@ownevo.ai with a sketch.