Conversations & statuses
A conversation is a single thread with one contact. It collects the messages exchanged over time, tracks a status as the thread moves through its life, and can be assigned to an agent who owns the reply.
Conversations belong to your workspace and are never visible to another.
The full inbox screen ships as that part of the admin panel lands. Today the
conversation model, its statuses, assignment, and the actions below are
available through the API (/api/conversations). This page describes the
behaviour the product actually enforces.
What a conversation holds
| Field | Meaning |
|---|---|
| Contact | The person on the thread (optional — a thread can start anonymous). |
| Department | The routing group the thread belongs to (optional). See Organizing conversations. |
| Assigned agent | The staff member who owns the reply (optional). |
| Status | Where the thread is in its life — see below. |
| Source | The channel the thread came from (for example the chat widget or the API). |
| Title | An optional short label for the thread. |
| Rating | An optional 1–5 satisfaction score. |
| Last message at | When the most recent message arrived. |
The actions above a conversation
The row of icons at the top of an open conversation measures the space it has and shows as many actions as actually fit. Whatever does not fit — together with the actions that have no icon of their own, such as Merge into another conversation and Delete permanently — moves into the ⋯ menu at the end of the row.
Two things follow, and both are worth knowing:
- Nothing is ever unreachable. Whatever the width of the window, the panes or your language, every action is either a button or an entry in the ⋯. The ⋯ is shown exactly when it has something in it, and its label says how many actions it is holding.
- Narrowing the window never removes a power, only a shortcut. As the thread pane gets narrower the rarest actions fold into the ⋯ first — export, block, a flow — while the ones you use all day (search, complete, put on hold, mark as junk, tags) stay out in the open the longest. Squeezed to its narrowest, the row becomes the ⋯ alone, still holding everything.
An action you do not have permission for is shown and disabled, with the reason in its tooltip, rather than quietly removed — so you can see it exists and ask for it.
The status lifecycle
Every conversation carries one status at a time. The statuses are:
| Status | What it means |
|---|---|
| Open | Active and needs attention — the default for a live thread. |
| Pending | Waiting on someone (often the customer) before the team acts again. |
| On hold | Paused deliberately — parked for now, to be picked up later. |
| Completed | Done and closed. Kept for the record but out of the active inbox. Stored as archived in the API. |
| Junk | Unsolicited, and nobody is going to answer it. Out of the way, still there. Stored as junk in the API. |
| Blocked | Closed to the contact — they can no longer write and the AI stays out. |
| Trash | Marked for removal. Soft-deleted conversations also move out of view. |
A thread typically flows Open → (Pending / On hold) → Completed, but you can move it to any status as the situation changes. Re-opening a completed thread is just a status change back to open.
Automatic status from message direction
The status also moves on its own as messages flow, so the inbox folders reflect who is waiting:
- A new message from the contact (an inbound reply) sets the conversation to Open — it needs the team's attention. This also re-opens a Pending, On hold or Completed thread.
- A reply you send (from an agent or the AI bot) sets it to Pending — the ball is back in the customer's court. So Open means "really waiting on us", and AI-handled threads sit in Pending until the customer writes again.
This automatic move is deliberately limited:
- A Junk or Blocked conversation is never moved by an incoming message. These are the two statuses whose whole value is that they keep absorbing messages quietly: for Junk, more spam is the only traffic such a thread gets, so re-opening would erase the mark on the very next message it exists to absorb.
One person, one channel, one thread
A customer who writes again lands in the conversation they already have on that channel — whatever status it is in, with no exceptions. A thread you marked Completed this morning is the thread their afternoon follow-up belongs to, so it is re-opened rather than replaced: the history, the tags, the assignee and the contact's record all stay with the message.
This holds for Trash too. A trashed thread is still the only place that person's history lives, and a thread trashed by mistake is exactly the case where that history matters most — so a new message brings it back to Open instead of starting a blank one beside it.
Junk and Blocked are reused in the same way, they simply do not change status: a message to a Junk thread stays in it and leaves it junk, and a message to a Blocked thread is stored there silently. Neither is handed a new open conversation.
There is no status on which a returning customer gets a second thread. Several parallel conversations with the same person on the same channel only make sense for a website chat widget that has deliberately allowed them, and the widget keeps its own rule for that.
- An internal system note does not change the status.
Junk — "nobody is going to answer this"
Spam, a wrong number, a bot spraying links. Junk is its own shelf rather than a flavour of the statuses that already existed:
- not Completed, because completed means handled — burying spam there makes the completed folder a lie about how much work the team did;
- not Trash, because that is a deletion, a heavier call than an agent wants to make at a glance on a list;
- not Blocked, because blocking is about the person and silences every conversation they will ever have. Junk is about this one thread.
What stops when a thread is marked junk:
- the AI stops replying — no more answers, and no more cost per turn;
- no notifications go out, so a junk thread never rings a phone again;
- it is not counted as unread work in the inbox badge;
- if the visitor was holding a live-chat slot, that slot is released.
Marking junk is a fast call made on a list, so it is sometimes wrong: a junk thread can always be moved back to Open (or on to Trash). Blocked is the one status junk cannot be reached from — moving a blocked thread to junk would quietly unblock the person.
Changing the status
You update the status as part of editing the conversation. Who may do this depends on the role:
- Agents can update a conversation that is assigned to them.
- Supervisors and administrators can update any conversation in the workspace.
See Roles & permissions.
Blocking a conversation or contact
Sometimes you need to stop a thread — spam, abuse, or simply a closed case the person keeps re-opening. Blocking is the firm version of closing.
There are two levels:
- Block the conversation — locks that one thread (status becomes Blocked). Allowed for the assigned agent, a supervisor, or an administrator.
- Block the contact — blocks the person across every one of their threads at once, and keeps any new conversation of theirs blocked too. This is a supervisor / administrator action.
While something is blocked:
- The visitor cannot send messages from the web chat — the widget refuses the send.
- The AI assistant never replies.
- An inbound message on another channel is stored quietly in the Blocked folder but does not re-open the thread and raises no notification.
When you block, you can include a short closing notice that is sent to the contact first, before the thread locks. If you do not type one, the workspace's default block message is used. You can leave it empty to send nothing.
Administrators can edit the default block message in inbox settings.
Unblocking
- Unblock a conversation moves it back to On hold, ready to be triaged.
- Unblock a contact clears the block and moves all of that person's blocked threads back to On hold.
When one person has two conversations
Occasionally the same customer ends up with two threads on the same channel — usually because the workspace briefly held two contact records for them, so a message you sent and their reply landed in different places.
Fix it in two steps:
- Merge the people first. On the contact, choose Merge and pick the record to keep. Both threads now belong to one person. Keep the record that already has their WhatsApp history — that is the one their replies match.
- Then merge the threads. Open either conversation, use the ⋯ menu and choose Merge into another conversation. You are shown that person's other threads on the same channel; pick the one to keep, and everything — messages, files, notes, tags — moves into it.
Only threads belonging to the same person on the same channel can be merged. Joining two different people would invent a conversation that never happened, and a thread's channel decides what can be sent in it, so mixing channels would leave half the messages under the wrong rules.
Merging cannot be undone. Administrators only.
Assignment
Assigning a conversation gives one agent clear ownership of the reply.
- An assigned agent can read, reply to, update, and add notes to their conversations.
- An unassigned conversation is visible to everyone on the team, but only supervisors and administrators (or the eventual assignee) can act on it.
Who can assign or re-assign: only supervisors and administrators. Agents do not move conversations between teammates. Assignment can happen automatically through routing, or a supervisor can re-queue an unassigned conversation from the inbox with Route to agent.
Messages within a conversation
Each conversation holds the messages exchanged. A message records:
- Who sent it — the contact, an agent, the automated bot, or the system.
- Its content — plain text, or richer typed blocks (buttons, cards, images, files and more). See Message blocks.
- Its delivery state — for example queued, sent, delivered, read, or failed.
You list a conversation's messages oldest-to-newest and send new ones into the thread. Sending requires the reply permission on that conversation (the assigned agent, a supervisor, or an administrator).
Read receipts
You can mark a conversation as read, which advances every unread incoming (contact) message to read and notifies other viewers in real time. Marking an already-read thread again does nothing — it is safe to repeat.
Typing indicator
While composing, the panel can broadcast a short-lived typing signal to other people viewing the same conversation. Nothing is stored; it simply lets teammates see that a reply is on the way.
Attachments
You can attach files (images, documents, and more) to the messages in a conversation. See File attachments.
Internal notes, tags and departments
Beyond the messages the customer sees, you can keep internal notes for your team, apply tags to label the thread, and route it to a department. All three are covered in Organizing conversations.
Which ad this person came from
When someone reaches you by tapping an ad — a click-to-WhatsApp or click-to-Messenger ad, or an Instagram one — the contact panel shows an Ad attribution block, and it is the first thing worth reading before you answer. Someone who just watched a pricing ad is asking a different question from someone who answered a job post, even when they both open with "hello".
What the block can show, depending on how much the platform sent us:
- Where they came from — an ad, a post, a link, or a QR code.
- The ad's headline and text, and its picture when one arrives.
- Label — the tag your own team put on that entry point (the text behind a
QR code, or the
refon awa.melink). This is the one line that names the campaign in your words rather than the platform's. - See the ad creative — opens the post behind the ad on Facebook. This is the link to use when you want to see what the customer actually saw; anyone can open it.
- Open in Ads Manager — opens the ad in Meta Ads Manager. It only works for people on your team who have access to the ad account.
Meta decides how much of this arrives, and it is often less than you would like — sometimes only the ad number, with no picture and no headline. That is the platform's message to us, not a setting you can change. The two links are built from the ad's own id, so they are there even when everything else is missing. When a line or a link is absent, it simply does not appear.
Leads from a lead form are shown in their own Lead ad block — the campaign, ad and form the person filled in, with the same Open in Ads Manager link.
Deleting a conversation
A conversation can be deleted (soft-deleted — it moves out of view rather than being erased outright). Only administrators can delete a conversation.
Related pages
- Organizing conversations — departments, tags, notes and saved replies.
- Message blocks — the rich content a message can carry.
- File attachments — adding and downloading files.
- Roles & permissions — who can do what.