# Work the inbox

Find the conversations waiting on you, answer them, and pass threads between your team and the agent.

Every conversation from every channel lands in one queue, in the sidebar of
the **Home** tab. The agent answers what it can. Your team picks up the rest.

## Answer a conversation

1. **Open the thread**

   Press a row in the queue. Rows under **Needs a person** are waiting on your
   team.

2. **Take it over, if the agent has it**

   Press **Take over** above the composer. The agent stops answering and the
   thread is yours. Sending a reply takes it over too.

3. **Reply**

   Type in the composer and press `Enter`. The reply goes back on the
   thread's channel: the widget, email, Discord or your help center.

4. **Hand it back, or finish it**

   Press **Hand back to**, followed by your agent's name, to let the agent
   carry on. Or press **Resolve** when it is done.

## The queue

One row per conversation.

| Part | Shows |
| --- | --- |
| Face | The customer's picture, or their initial |
| Corner of the face | Nothing while the agent has the thread. A red warning mark when it asked for a person. The teammate's face once someone took it over |
| Name | Bold while the thread is unread |
| Preview | The last message, on one line |
| Time | When the last message arrived. A clock beside it means the thread is snoozed |
| Thread id | Such as `W-12`, under the time |

Hover a row for quick buttons: **Resolve** or **Reopen**, **Snooze** or
**Wake up now**, and **Archive** or **Move to inbox**. `Up` and `Down` move
between threads.

The inbox loads the 200 most recent conversations. The archive loads its own
200. An open thread shows its newest 200 messages.

A dot on the **Home** tab means open threads are waiting on you. A thread
waits on you when the agent asked for a person, or when you hold it and the
customer wrote back. Snoozed and archived threads do not count.

### Tabs

| Tab | Holds | Grouped into |
| --- | --- | --- |
| **Open** | Threads still being worked. The default. Shows a count | **Needs a person**, **Assigned to you**, **Assigned to teammates**, and **Handled by**, followed by your agent's name |
| **Snoozed** | Threads put off until later. Shows a count | |
| **Done** | Finished threads | **Resolved** and **Closed** |
| **Archived** | The archive | |

Press a group's heading to fold it. Its tick selects every row in it, which
is how a pile of threads the agent already answered gets resolved in one go.

### Search and filter

The search box above the queue matches the thread id, the subject, the last
message, and the customer's name, email and company. A search looks across
every tab, the archive included. `Esc` clears it, and a second `Esc` leaves the
box.

The funnel beside it holds the rest. Each active filter shows as a chip you
can remove.

| Control | Options |
| --- | --- |
| **Unread only** | Hides threads you have read |
| **Channel** | **Live chat**, **Email**, **Discord**. Pick several. None picked means every channel |
| **Sort** | **Newest first** or **Oldest first**, by last message |
| **Clear filters** | Puts all three back |

**Live chat** covers the widget, the support modal, the contact form, and
threads started over the REST API. Conversations from your help center's
support page show as **Help center**.

### Thread ids

Every thread gets an id like `W-12`.

- The letter is the first letter or digit in the workspace name, in capitals. A name with neither uses `T`.
- The number counts up per workspace, in arrival order, and stays with the thread.
- Renaming the workspace changes the letter on every id.
- Ids show on queue rows, in the thread header and on the customer page.

### Act on a row

Right click a row. Labels change with the thread's state.

| Item | Shown when | Does |
| --- | --- | --- |
| **Take over** | The agent has the thread | You hold it and the agent stops answering |
| **Hand back to** your agent | A person has the thread | The agent answers the next customer message. Needs Standard or Pro |
| **Mark as read**, **Mark as unread** | Always | Toggles the row's weight |
| **Snooze**, **Snooze again** | Always | Hides the thread until a time you pick |
| **Wake up now** | Snoozed | Brings it back now |
| **Resolve**, **Close** | Open | Finishes the thread |
| **Reopen** | Resolved or closed | Opens it again |
| **Archive**, **Move to inbox** | Always | Files it away, or brings it back |
| **Delete forever** | Archived | Deletes the thread, its messages and files |

Each snooze option shows the time it wakes.

| Option | Wakes |
| --- | --- |
| **In an hour** | 60 minutes from now |
| **Tomorrow** | 9:00 tomorrow, your local time |
| **Next week** | 9:00 next Monday. On a Monday, the Monday after |

A snoozed thread comes back unread, with the line "This conversation came back from snoozing".

### Select several

Click a customer's face to select the row. `Shift` click selects every row in
between. The header becomes **N selected**.

| Tab | Actions |
| --- | --- |
| Every tab but **Archived** | **Resolve**, **Close**, **Archive** |
| **Archived** | **Move to inbox**, **Delete** |

**Delete** confirms first with "Permanently delete the selected conversations
and all their messages and files." Rows already in the target state are
skipped. Switching tabs clears the selection.

### Auto-resolve

The wand button reads the 100 most recent open threads, archived and snoozed
ones excluded. It resolves the answered ones, closes spam and dead ends, and
leaves the rest. It also leaves threads where the agent is waiting on your
team. The thread line names **Auto-resolve** as the actor.

- It runs when you press it, whatever **Resolve conversations automatically** says. That switch is about the agent finishing threads on its own.
- A dialog asks **Auto-resolve the inbox?** before it starts.
- One pass runs at a time. A second gets "An inbox review is already running. Wait for it to finish."
- Needs a [paid plan](/articles/manage-your-plan-and-credits#plans).

The nightly review is the **Review the inbox nightly** switch. See
[Set up your agent](/articles/set-up-your-agent).

## A thread

### Header

| Part | Shows |
| --- | --- |
| Name and thread id | Who wrote in, and the thread's id |
| Channel | **Live chat**, **Email**, **Discord** or **Help center** |
| Status | **Resolved** or **Closed**, once the thread is finished |
| **Snoozed until** | The wake time, while snoozed |
| **Snooze**, **Archive** or **Move to inbox** | Buttons of their own on a wide screen |
| **More actions** | **Mark as read** or **Mark as unread**, and **Close without resolving** on open threads |
| Details button | Shows or hides the details panel |
| **Resolve**, **Reopen** | Finishes the thread, or opens it again |

Drag the edge of the queue to resize it. On narrow screens the details panel
opens as a drawer.

### Who answers

The line above the composer says who writes the next reply. The examples use
the default agent name, Median AI.

| Line | Button | Means |
| --- | --- | --- |
| **Median AI is answering** | **Take over** | The agent has the thread |
| **Median AI needs approval to run** and the tool's name, such as **Refund order** | **Take over** | A high risk call is waiting. See [Approve tool calls and run tools](/articles/approve-tool-calls-and-run-tools) |
| **Median AI is writing a reply** | **Stop** | A reply is on its way. **Stop** cancels this reply only |
| **Median AI has a question for the team** | **Answer**, **Take over** | The agent asked your team something in a note and is waiting. The row shows **Question for the team** |
| **Median AI needs a person** | **Take over** | The agent handed the thread to your team. The line turns red |
| **You are handling this conversation** | **Hand back to Median AI** | You hold the thread |
| **Sam is handling this conversation** | **Hand back to Median AI** | A teammate holds it. **A teammate is handling this** when no name is known |

- The agent answers customer messages only while it has the thread. After it asks for a person, or once a person holds it, it stays quiet.
- **Take over** stops any reply in progress and adds "Sam took over from Median AI" to the thread.
- **Hand back** adds "Sam handed this back to Median AI", and the agent writes the next message itself.
- **Hand back** needs Standard or Pro. On Explore it is disabled with "Available on Standard and Pro". See [Plans](/articles/manage-your-plan-and-credits#plans).

| Last message before you hand back | What the agent does |
| --- | --- |
| Yours | Follows on from it, such as checking the fix worked. On email it waits for the customer instead |
| The customer's | Answers it |
| The agent's line asking for a person | Picks the question back up, following your notes |
| A note from your team | Acts on it |
| The agent's answer, with nothing after it | Stays quiet, and answers the customer's next message |
| Any, on a resolved, closed, snoozed or archived conversation | Stays quiet |

### The agent's work

| In the thread | Shows |
| --- | --- |
| Source chips | Under an agent reply, the documents it answered from |
| **Used Refund order**, **Used 3 tools** | A card under an agent reply. Open it to see each call's name, **Your team's tool** or **Built in**, the endpoint, **Asked for** and **Answered** |
| **The agent run failed** | A reply that did not complete. Open **Why it failed** for the error |
| **Median AI asked for a person** | The handoff, with the agent's reason when it gave one |
| Approval and run cards | See [Approve tool calls and run tools](/articles/approve-tool-calls-and-run-tools) |
| Grey lines | Who took over, resolved, snoozed, archived, approved or declined |

## Reply

| Key | Does |
| --- | --- |
| `Enter` | Sends |
| `Shift+Enter` | Adds a new line |
| `/` as the first character | Opens the command menu |

Attach files with the **+** button, by dropping them on the composer, or by pasting.

| Limit | Value | Error |
| --- | --- | --- |
| Length | 4,000 characters | Messages have to be 4000 characters or fewer. |
| Files | 6 per message | Messages can carry 6 files at most. |
| File size | 25 MB each | Larger than the 25 MB limit |
| File type | No HTML, XHTML, SVG or XSL | This kind of file cannot be sent |

A file over the size or type limit stays in the composer marked with its
error, and **Send** stays disabled until you remove it.

Replies render Markdown in the inbox and the widget. The customer sees typing
dots while you type a reply.

While the agent has the thread, typing shows "Sending a reply pauses Median AI
in this conversation." Sending changes the thread:

| Before | After you reply |
| --- | --- |
| The agent has it | You hold it. The thread reads "Sam took over from Median AI" |
| Resolved or closed | Open |
| Archived | Back in the inbox |
| Snoozed | Awake |
| Unread | Read |

With email support on, a customer who is away also gets an email copy of your
reply. See [Set up email support](/articles/set-up-email-support). Replying
on an email thread needs a [paid plan](/articles/manage-your-plan-and-credits#plans).

### Drafted replies

The [assistant](/articles/use-the-assistant-on-a-conversation), an MCP
client or a script can write a reply for you to send. It waits in this
conversation's reply box and sends nothing on its own.

- An empty reply box gets the draft straight away.
- Over your own words, or in a note, it shows as a **Drafted reply** chip. **Use** switches the box to **Reply** and puts the draft in place of your words. The cross dismisses it.
- A draft written with a Median key waits for whoever opens the conversation next.

### Notes

Switch the composer from **Reply** to **Note**, or pick **Write an internal
note** from the `/` menu. A note has a dashed edge and an **Internal note**
label.

- The customer never sees a note.
- Notes are not sent to webhooks, and do not post to the Slack and Discord mirrors.
- Notes take no files.
- The agent reads every note on the thread as an instruction from the team, and follows it over its standing rules. It never quotes a note or says one exists.
- A note wakes the agent only while it has the thread. That is how you answer its question for the team.

### Slash commands

Type `/` as the first character of an empty composer.

| Group | Commands |
| --- | --- |
| **Conversation** | **Resolve** or **Reopen**, **Close**, **Snooze for an hour**, **Snooze until tomorrow**, **Snooze until next week**, **Wake up now**, **Archive** or **Move to inbox**, **Stop Median AI**, **Take over** or **Hand back to Median AI**, **Mark as read** or **Mark as unread**, **Show customer details** or **Hide customer details** |
| **Compose** | **Write an internal note** or **Write a reply**, **Attach a file** |
| **Tools** | Every switched on tool, with its risk badge. Picking one opens its run form |

- Rows appear only when they apply. **Close** needs an open thread and **Stop** needs a reply in progress.
- The menu stays open for up to four words after the slash, and matches loosely, keywords included. `/done` finds **Resolve** and `/spam` finds **Close**.
- `Up` and `Down` move. `Enter` or `Tab` runs the row. `Esc` dismisses the menu until you delete the slash.

## The details panel

A header with the customer's face, name and email, then three tabs. The name
opens the [customer page](/articles/manage-customer-profiles).

| Tab | Holds |
| --- | --- |
| **Profile** | **Insights**, what was learned from their conversations, with a refresh button. Then their details: where they started, when they were last seen, local time, language, browser, how long they have been a customer, and each key your site sent as `user.metadata`. Four rows show, then **Show all** |
| **History** | Their other threads. "This is their first conversation." when there are none |
| **Tools** | Your switched on tools, when any can run here. Press one to [run it yourself](/articles/approve-tool-calls-and-run-tools) |

## Statuses

| State | Set by | When the customer writes |
| --- | --- | --- |
| Open | A new thread, **Reopen**, or a teammate's reply | Same thread. The agent answers if it has it |
| Resolved | **Resolve**, **Auto-resolve**, the nightly review, or the agent | By email or Discord, a new thread starts on the same channel. From the widget or site, writing in it reopens it |
| Closed | **Close**, **Auto-resolve**, or the agent | By email or Discord, a new thread starts on the same channel. From the widget or site, writing in it reopens it |
| Snoozed | **Snooze** | The thread wakes |
| Archived | **Archive** | An open thread comes back to the inbox. A finished one starts a new thread |

- Resolving, closing or archiving clears a snooze and marks the thread read.
- Snoozing marks the thread read and takes it out of the archive.
- Only archived threads can be deleted.
- On Discord a finished ticket locks, and the customer opens a new ticket to write again. See [Set up Discord support](/articles/set-up-discord-support).
- The agent resolves and closes threads itself while **Resolve conversations automatically** is on. See [Set up your agent](/articles/set-up-your-agent).

A thread turns unread when the customer writes, a snooze ends, the agent asks
for a person, a tool call waits on the team, one of the agent's tool calls
fails, or a reply could not be emailed. Opening it marks it read.

## Notifications

Median emails the team when the agent asks for a person, hands a thread over
after a failed reply, or asks the team a question.

| Rule | Detail |
| --- | --- |
| Who | Every member with an email address on file |
| Skipped | Members with Median open on this workspace in the last 3 minutes. A background tab counts |
| Second look | 5 minutes later, skipped members who no longer have Median open get the email, if the thread still needs a person |
| Cancelled | When someone takes the thread over first |
| Subject | "Jane Doe needs a person", or "Median AI has a question" for a question |
| Body | The agent's reason or question, the customer's last message up to 280 characters, who they are, and **Open conversation** |

There is no per person setting.

| Also | Where |
| --- | --- |
| Items on **Home** | [Find your way around the dashboard](/articles/find-your-way-around-the-dashboard#home) |
| Pings in Slack and Discord | [Reply and approve from Slack or Discord](/articles/reply-and-approve-from-slack-or-discord) |
| A staff role ping in a Discord ticket | [Set up Discord support](/articles/set-up-discord-support) |
| Events for your own systems | [Webhooks](https://docs.median.sh/api/webhooks) |
