> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replybubble.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Live Inbox

> Handle conversations in real time alongside your AI chatbot

The Live Inbox is where your team replies to visitors directly, taking over from the AI when a conversation needs a human touch. It's a real-time, three-pane workspace: conversation list, chat thread, and contextual sidebar.

Find it at **Dashboard > Inbox**.

***

## Layout

The Inbox adapts to your screen size:

| Width                | Layout                                             |
| -------------------- | -------------------------------------------------- |
| Desktop (≥1280px)    | Full 3-pane -- list, chat, and sidebar all visible |
| Laptop (1024-1279px) | 2-pane -- sidebar becomes a slide-over panel       |
| Tablet (768-1023px)  | 2-pane, narrower conversation list                 |
| Mobile (\<768px)     | Single-pane -- list or chat, not both              |

A green "N online" indicator at the top shows how many teammates are currently connected.

***

## Conversation List

The left pane lists conversations, sorted with escalated-and-unassigned conversations first, then by status (new, awaiting reply, active), then by most recent activity.

### Filters

| Tab            | Shows                                                 |
| -------------- | ----------------------------------------------------- |
| **All**        | Every open conversation (new, active, awaiting reply) |
| **Mine**       | Conversations assigned to you                         |
| **Unassigned** | Open conversations with no agent assigned             |
| **Snoozed**    | Conversations snoozed until a future time             |
| **Closed**     | Resolved conversations                                |

Additional filters stack with the tab: a **channel filter** (Web, WhatsApp, Email, Messenger, Instagram), a **tag filter**, and an **"SLA breached only"** toggle (only shown when [SLA targets](/sla) are enabled for the workspace). A search box (`Cmd/Ctrl+K` to focus) searches conversation content and visitor name/email; typing 2+ characters switches the list into search mode.

### Row indicators

Each row shows the visitor's name (or "Anonymous visitor"), a channel icon for non-web conversations, an unread badge, a truncated last-message preview (or a "typing..." indicator when the visitor is actively typing), and status badges:

* **Needs agent** (red, pulsing) -- escalated and unassigned
* **New** (blue) -- unassigned, not yet escalated
* **Unassigned** (outline) -- open with no agent
* **Awaiting reply** -- assigned, waiting on the agent
* **Snoozed**
* A green dot or agent first name when assigned
* SLA chips: a red **SLA breached** badge, or an amber **due in Xm** countdown when a target is close to breaching
* A waiting-time label (e.g. "12m waiting") while the visitor is waiting on a response
* Up to 2 tag color dots, with a "+N" overflow count

Colored left borders reinforce state: red for escalated/unassigned, blue for new/unassigned, amber for open/unassigned.

### Presence

A live dot next to the visitor's name shows whether they're currently online, with "Last seen Xm/Xh/Xd ago" when offline.

***

## Selecting and Reading Conversations

Click a row to open it in the center pane. Keyboard shortcuts (desktop only, ignored while typing):

| Key          | Action                                                    |
| ------------ | --------------------------------------------------------- |
| `↑` / `↓`    | Move to previous/next conversation                        |
| `Escape`     | Clear bulk selection, then deselect the open conversation |
| `Cmd/Ctrl+A` | Claim the open conversation                               |
| `Cmd/Ctrl+D` | Toggle the details sidebar                                |
| `Cmd/Ctrl+K` | Focus the search box                                      |
| `T`          | Open the tag picker for the open conversation             |

Opening a conversation (or an unread message arriving while it's open and the tab is visible) marks it read. On the first desktop load, the first conversation in the list is auto-selected.

***

## Assignment and Presence

<Steps>
  <Step title="Claim">
    Click **Claim** on an unassigned conversation to take it over. Claiming pauses the AI -- you're now responding directly, shown by an "AI paused -- you're responding directly" banner in the chat header. Claiming also wakes a snoozed conversation.
  </Step>

  <Step title="Assign to a teammate">
    If your workspace has more than one team member, an assignment picker lets you hand the conversation to another agent (grouped by online/offline), or use **Auto-assign** to route it through your [routing rules](/routing-rules).
  </Step>

  <Step title="Release">
    Click **Release** to unassign yourself. If the AI hasn't replied yet, the conversation returns to **New**; otherwise it returns to **Awaiting reply**, and the AI can resume responding.
  </Step>
</Steps>

<Note>
  If a conversation is assigned to someone else, the chat header warns "Assigned to \{name}. Replying will reassign to you." -- sending a reply as a different agent takes over the conversation.
</Note>

Sending the first customer-facing reply on an unassigned conversation auto-assigns it to you, even without clicking Claim first.

***

## Replying vs. Internal Notes

The composer has two modes, switched with tabs above the input box:

* **Reply** -- sends a message the visitor sees.
* **Internal note** (amber background, sticky-note icon) -- visible only to your team, never to the visitor. Type `@` in a note to mention a teammate; mentioned members get a notification (and an email, if configured).

Composer shortcuts: `Enter` sends, `Shift+Enter` inserts a newline, `/` opens the canned-response menu, `@` opens the mention picker (notes only).

### Saved replies

Typing `/` opens a searchable list of your workspace's [saved replies](/saved-replies) by shortcut or title. Selecting one inserts the resolved template text -- variables like the visitor's name/email, your name, and the workspace name are filled in automatically.

### Attachments

The paperclip button attaches a file (images, PDF, TXT, CSV, or Office/ZIP documents, up to 10MB). Attachments are only available on **web** conversations -- email, WhatsApp, Messenger, and Instagram threads don't support outbound file delivery yet, so the button is hidden for those.

### AI Copilot

The Sparkles button (or the "Copilot" tab in the sidebar) generates an AI-suggested reply for the open conversation. Suggestions appear in a strip above the composer with **Insert**, **Dismiss**, and **Retry** actions; inserting one loads it into the composer as an "AI-generated draft -- review before sending" for you to edit before sending.

### Read receipts and delivery status

Each of your sent messages shows a status icon: clock (sending), single check (sent), double check (delivered), or eye icon (read). Delivery status updates in real time as the visitor's client acknowledges the message.

### Typing indicators

Both directions are live: the visitor sees when an agent is typing, and the agent sees a "typing..." indicator (in the list row and above the composer) when the visitor is composing a reply.

***

## Snoozing

Snooze a conversation to hide it from your active queues and get reminded later. Presets: **In 1 hour**, **Tomorrow, 9 AM**, and **Next week** -- or set a custom time up to one year out via the API. Snoozing preserves the conversation's prior status so it's restored correctly when it wakes.

A conversation un-snoozes automatically when:

* Its snooze time elapses (checked by a background job every 2 minutes)
* An agent clicks **Unsnooze**
* An agent claims it, gets assigned it, or replies to it

<Tip>
  If your workspace has SLA targets enabled, the time a conversation spends snoozed is credited back to its SLA due dates -- snoozing doesn't cause a false breach.
</Tip>

***

## Tags

Add relational tags to a conversation from the tag picker in the chat header or the sidebar's **Tags** section. Tags are workspace-defined (managed elsewhere in Settings) and can be used to filter the conversation list.

***

## Closing and Reopening

Click **Close** to resolve a conversation, choosing a resolution: **Resolved**, **Unresolved**, or **Abandoned**. Closing clears the assignment and shows a 5-second "Undo" toast. Closed conversations show a "This conversation is closed" message in place of the composer -- click **Reopen to reply** (or the header's **Reopen** button) to resume, which moves it back to **New**.

***

## Bulk Actions

Select multiple conversations using the row checkboxes (which appear on hover, or always once any row is selected) or the header's "select all in view" checkbox. `Shift`-click extends a range selection.

A floating toolbar appears at the bottom of the screen with:

* **Close** (resolved)
* **Assign** -- to a teammate, or unassign
* **Snooze** -- same presets as the single-conversation menu
* **Tag** -- add a tag to every selected conversation
* **Mark read**
* **Clear** selection

Bulk actions operate on up to 100 conversations per call and only affect valid targets (e.g. bulk assign skips already-closed conversations).

<Note>
  Bulk selection and all mutating actions (reply, claim, assign, close, snooze, tag) require the **Editor** or **Owner** role. **Viewers** can read conversations but the selection checkboxes and action buttons are hidden for them.
</Note>

***

## Conversation Details Sidebar

The right pane (inline on extra-wide screens, a slide-over panel below that) has two tabs:

### Details

* **Escalation Context** -- shown for new, unassigned, escalated conversations: visitor identity, wait time, why it escalated (visitor-requested vs. AI-detected), and a **Claim & Reply** button.
* **Recent activity log** of actions taken on the conversation.
* **AI Summary** -- an AI-generated recap of the conversation so far.
* **Browsing** -- the visitor's page journey on your site with live online/offline status (web conversations only).
* **Contact** -- name and email.
* **Conversation** -- status, created/last-activity times, [CSAT rating](/widget-features) if the visitor rated the conversation, and a link to the full conversation history.
* **Tags** -- add/remove tags.
* **Device & Location** -- browser/device info and geolocation.
* **Notes** -- internal notes with author and timestamp; add or delete notes here (deleting requires Editor/Owner).

### Copilot

A dedicated AI assistant tab for the open conversation -- ask questions, search your knowledge base, and insert suggested excerpts directly into the composer.

***

## Realtime Updates

The Inbox connects over WebSocket for live updates: new messages, assignment changes, typing indicators, presence, and read receipts all arrive without refreshing. Connection status is shown as a banner:

* **Reconnecting to live updates...** -- temporary drop, retrying automatically
* **Live updates disconnected** -- with a manual **Reconnect** link
* **This inbox session was replaced by another tab** -- you opened the Inbox in a second tab/window
* **Agent seat limit reached** -- with a link to upgrade your plan

Replies still send over HTTP even while the WebSocket is reconnecting or offline -- only the live-update stream is affected.

***

## Tips

* **Claim before replying** if you want to make sure AI won't reply first -- claiming immediately pauses the AI for that conversation.
* **Use internal notes with @mentions** to loop in a teammate without the visitor seeing it.
* **Snooze instead of closing** conversations you'll need to follow up on -- closing clears the assignment, snoozing preserves it.
* **Watch the SLA chips** in the conversation list to catch conversations approaching a breach before it happens.
