Conversations Inbox
A multi-party, attributed conversation model with a chat-style WhatsApp inbox.
Messaging is organized into conversations — threads that group messages with attributed senders, viewed in a chat-style inbox.
Conversations and participants #
A Conversation is a thread on a channel (WhatsApp 1:1 or a WhatsApp group).
Every message is attributed to its sender — an external Contact or an
internal staff User — and each thread tracks its participants.
Sessions vs. channels #
A channel is persistent (a phone number or a group). A conversation is a session within it: after a configurable silence window (Inactivity window, default 5 hours, set in Agency Settings), the next message opens a new conversation under the same channel. An idle-close job closes silent sessions as a backstop.
The Inbox #
The inbox is a two-pane chat view: a conversation list (newest first, with unread badges and Group/Prospect tags) and the selected thread with attributed bubbles, participant chips, and a reply box. Each row also shows who the thread is assigned to, whether it has been resolved, and how many internal notes it carries.
Every bubble names who actually sent it. A message sent by an automation or a campaign — with no staff member behind it — is attributed to your agency, not to the host who received it.
Working the inbox as a team #
Four things make the inbox a shared queue rather than a list two people can both answer at once.
Assignment. A thread has at most one owner. Assign to me takes it in one click; Assign hands it to a colleague, or clears the field to put it back in the unassigned queue everybody works from. Only members of your agency can be picked. Every change is in the record's history.
Open and resolved. A thread stays Open until somebody resolves it, which is a decision a person makes — it is not the same thing as the WhatsApp session closing after a quiet spell. Resolve takes it out of the default list; Reopen brings it back, and so does the host writing again.
Internal notes. Switch the compose box to Internal note to leave your colleagues a warning or a piece of context. Notes are stored apart from messages and are never delivered on any channel: the box turns amber while you write one, and the note is shown in the thread on an amber, padlocked card labelled Internal note — not sent to the host.
Unread means unhandled. Opening a thread no longer clears its badge — reading something is not the same as dealing with it. The count clears when you reply, resolve the thread, or press Mark read; Mark unread puts the host's outstanding messages back in the queue for later. Assigning, resolving, reopening, marking read or unread and writing internal notes all need Messaging: Update, so a role without it sees the thread and can reply, but not those buttons. The sidebar count is the unread messages in threads nobody has resolved.
Filters. The conversation list filters by owner (anyone, assigned to me, unassigned, or a named colleague) and by state (open, resolved, or both), on top of search, channel and platform. Sub-agency managers and recruiters still see only the threads they are allowed to.
Did it send? #
Each message you send carries its own delivery state, shown on the bubble:
| State | Meaning |
|---|---|
| Sending | Queued, not yet handed to the channel. |
| Sent | Accepted by WhatsApp or the mail provider. |
| Delivered | Confirmed as delivered to the host. |
| Read | The host opened it. |
| Not sent | It failed. The bubble turns red and the failure reason is on hover. |
A failed message gets a Retry button in place of guesswork. The toast after you press Send is honest about the same thing — "Reply sent", "Reply queued — not delivered yet", or "Reply not sent" with the reason — rather than claiming success for anything that was merely accepted for queueing.
Drafts and search #
Half-written replies survive. Click away to another conversation, follow a link into a different thread, or use the browser's back button, and the text you had typed is waiting when you come back. It is cleared once the message is sent.
Search covers the full history, not just what is on screen — it matches message bodies and email subjects across every conversation, as well as contact names and numbers. When nothing matches, the list says so instead of looking empty.
If no channel is connected #
If the channel a thread runs on isn't set up in Agency Settings, the reply box says so plainly, links you to the settings page, and disables Send — rather than accepting the message and dropping it. Anything you have typed is left in the box.
Unknown senders #
A message from a number that isn't a contact appears as a prospect conversation. From there you can block the number (spam never becomes a contact) or create a contact (which back-links the thread into your pipeline).
Channels #
The inbox is not WhatsApp-only — WhatsApp and email share it, and you reply on whichever channel the thread is on. The 24-hour reply window is a WhatsApp rule, so an email thread can always be replied to.
WhatsApp is fully two-way over your own Meta number; see WhatsApp.
Email is two-way as well, with one condition attached. When you send through Live Agent Pro's managed sending, we set a reply address that routes the host's answer back into the same conversation, matched to their contact record. Replies thread automatically, with the HTML body and attachments preserved.
If your agency sends through its own provider (Resend, Postmark, Mailgun, or SMTP), we set no reply address — so a host's reply goes to your own mailbox and never appears here. Inbound threading is a managed-sending feature. Choose your email provider in Agency Settings with that in mind.