# Inbox (https://docs.vitrinka.ai/pm/inbox)



## One list beside the picked report [#what]

The Inbox holds every report a person sent with [Report a problem](/qa/report-a-problem) or wrote on the [reporter portal](/qa/portal). Agents' findings never land here; they stay in dev mode's queues. The Inbox is the first link of the bar in [both modes](/use/modes), and in regular mode the workspace opens on it.

A report is a task from the moment it arrives — a bug waiting in its project, carrying the reporter's words, the places they marked and the minutes before. Triage moves that same task, so there is no copy to keep in step, and the reporter sees each step on their portal.

## The list [#list]

* **Views** — **New** (waiting for triage), **Triaged** (accepted and still open), **Done** (finished, declined or cancelled) and **All**.
* **Project** — every project, or one.
* **By day**, newest first, with more loading as you scroll.

A checkbox, ⌘-click or `X` selects a report; Shift-click adds the range from the last click.

## The picked report [#detail]

Beside the list, the picked report reads top to bottom:

* **Who and how** — the reporter's name and address, when, and how it came: from the app, from the portal, by email or anonymously. **Open task** opens the whole task.
* **The marked places** — each a crop of the screen the reporter marked, with its number and note, a zoom, and **Open on board**.
* **Watch the replay** — the minutes before, as a recorded session.
* **What they wrote**, and the page they were on.
* **Triage** — Category, Priority, Type and Status, each a click to change, and the Sprint it is in.
* **Plan into** — the project's next open sprint, or the arrow beside it to pick another sprint or name a new one. **Accept** and **Decline** beside it; a declined report can be accepted again from **Done**.
* **History** — the report's audit trail: every change, who made it and when.
* **Reply to reporter** — [below](#reply).

## Triage, one or many [#bulk]

Select several reports and a bar offers the same moves for all of them, up to 200 at once:

| Move               | What it does                                                                                                        |
| ------------------ | ------------------------------------------------------------------------------------------------------------------- |
| Plan into sprint   | Accepts each report and puts it in a sprint — an open one, or a new sprint you name right there.                    |
| Status             | Accepts each and moves it to a status of its project.                                                               |
| Category, Priority | Sets the field. Where Eve chose differently, the correction is recorded — [Eve's triage](#eve).                     |
| Accept             | Accepts each report into its project as ordinary work; a cancelled one reopens in its project's first to-do status. |
| Decline            | Declines a waiting report, or cancels an accepted one.                                                              |

**Plan into sprint** and **Status** need the selected reports to share one project.

Every change, to one report or many, shows a notice with **Undo**. Undo puts back only what that change changed — the status, sprint, category, priority or type it set, and whether the report was still waiting when the change accepted or declined it. Anything a teammate changed since stays as they left it. A change can be undone for a day.

## Keys [#keys]

| Key       | Does                   |
| --------- | ---------------------- |
| `J` / `K` | Next / previous report |
| `X`       | Select the report      |
| `E`       | Accept                 |
| `P`       | Plan into a sprint     |
| `U`       | Undo the last change   |
| `?`       | Show these keys        |

Keys answer on the physical key, and never while you type in a field or a menu is open.

## Deep links [#links]

The address always says what is on screen: `?view=` and `?project=` the list, `?r=` the picked report's task id, and `?m=` the mark it focuses. `/w/acme/inbox?r=4182&m=2` opens report 4182 with its second mark in view, so a link in a chat lands a teammate on exactly that place.

## Eve's triage [#eve]

When a report arrives, Eve reads it — the words, the page, the console and the failed requests — and **applies** a category and a priority, and a type when it is a story or a task rather than a bug. The report shows "Eve sorted it", how sure she was and why, and marks each value she set.

Every value she set is one click to change. The optional &#x2A;*Why the change?** beside it travels with the correction, and each correction is recorded: what Eve suggested, what a person chose, who — the signed-in account, never a typed name — and why. That record is how Eve's triage gets better: a dataset, never an automatic training job.

Eve's triage never holds a report back. With Eve off, unreachable or slower than 25 seconds, the report waits exactly as it was sent, and you sort it yourself.

## Switching Eve off [#ai]

| Switch                               | Where                                                                                | Effect                                                                                                                                 |
| ------------------------------------ | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| report triage                        | **Settings → Organization → AI**, and each workspace's **Settings → Workspace → AI** | On by default. The organization switches it off for every workspace; a workspace switches it off for itself. Off at either level wins. |
| use EVE AI                           | **Settings → Workspace → AI**                                                        | Off stops every Eve flow in the workspace, triage included.                                                                            |
| allow training on triage corrections | **Settings → Organization → AI**                                                     | Off by default; an organization admin turns it on. Audited as `org.training_consent`.                                                  |

A deployment without an AI backend — an air-gapped one, say — triages by hand and loses nothing else.

**The training export.** The workspace owner downloads the corrections from `GET /api/v1/classification/export.jsonl`: one JSON line per report Eve sorted — what she read, what she suggested, the final values and whether a person corrected them. It answers only for an organization that allows training; without that consent it refuses, and every correction stays inside the organization. For an organization whose contract forbids AI on its data, switch report triage off at the organization and leave training off.

## Reply to the reporter [#reply]

**Reply to reporter**, at the foot of the picked report, writes to the person who sent it. The reply appears on their report on the portal and in their feed, and is emailed to them with a link back — once their address is proven. A reporter whose address nobody has proven yet reads it when they sign in. Replies and what the reporter writes back are the conversation you share with them; the task's other comments stay the team's own.

## For agents [#agents]

Reports are intake drafts whose source is `report`, so agents read the same queue through the doors they already have: `list {kind: "intake", group: "report"}` pages the waiting reports, `get {kind: "task", id}` reads one, and `get_card_image {annotation}` looks at a mark. The screen itself reads `GET /api/v1/inbox/reports` and writes through `POST /api/v1/inbox/bulk` and `POST /api/v1/inbox/undo`.
