CoPhraseCoPhrase

Unified Inbox

Every channel in one place — the conversation timeline, assignment, read state, and taking over from the agent.

The inbox is where humans and the agent share the same conversations.

What the inbox does today

Threads from every live channel land here, with the conversation list and detail, a durable timeline, live updates, takeover, human reply, and resume. Assignment, tasks, snooze/close, rich filtering, private notes and drafts, CRM context, and playground links are still being built — they are marked below.

Every live channel lands in the same thread shape — web chat, Discord, email, WhatsApp, Telegram, and Instagram DMs — and the connectors still being built will too.

The thread is the unit of work

A conversation in CoPhrase is a thread on a channel — not a person.

If the same customer messages you on WhatsApp and on Instagram, you get two threads. That is deliberate. Each thread has one channel, one composer, one assignee, one controller (AI or human), and one send window. Closing the WhatsApp thread does not close the Instagram one; taking over one does not silently take over the other. Nothing you do in the inbox fans out into a channel you were not looking at.

The data model can link several channel identities to one contact. Verified cross-channel linking and the read-only cross-channel history surface are being built; anonymous widget identity hints are deliberately kept untrusted.

Two rows, one customer — on purpose

The same contact appearing twice in the thread list is not a bug. It is two conversations on two channels, each of which can be assigned, taken over, and closed independently.

The timeline

A thread is one stream of everything that happened, not just the messages:

ItemWhat you see
MessagesInbound and outbound, with delivery state — and a clear reason plus a retry when a send fails
Voice notesTranscribed, so you can read what the agent heard
Images and PDFsUnderstood by the agent before it replied, so you can see what it saw
Tool tracesWhat the agent did — a lead captured, a meeting booked, an order looked up — collapsed until you want detail
EventsHandoffs, takeovers, agent reassignment, status changes
Private notesInternal notes to your team. Never sent to the customer
Non-reply explanationsWhy the agent stayed silent, when it did

Every item is attributed to exactly one actor — the customer, a human on your team, or the agent. The agent is a first-class actor in the timeline, not a fake user account. You can always tell who said what.

The timeline updates live. New messages, takeovers, and status changes appear without a refresh.

Working the inbox

Controller — every thread is either AI-controlled or human-controlled. Taking over flips it, and the agent goes quiet. Handing back resumes it. A manual reply without a formal takeover pauses the agent temporarily instead. See handoff.

Assignment (future) — threads will be assignable to a person on your team, with tasks for escalations.

Status (future controls) — the model reserves open, snoozed, and closed states, but Phase 2 does not expose snooze/close commands.

Read state — unread is computed per person from where you actually last looked. There is no counter drifting out of sync with reality.

Priority and filters — All, Attention, and Human. Channel, assignee, status, approval, and richer priority filters are being built.

Planned composer extensions

The composer is bound to this thread's channel. There is no dropdown asking where the reply should go, because there is only one answer.

Channel rules are enforced in the composer, not discovered at send time:

  • On WhatsApp, Instagram, and Messenger, a live countdown shows how long the free-form reply window is open.
  • When a WhatsApp window closes, the composer switches to your approved templates.
  • When an Instagram window closes, it stops you with a plain-language explanation instead of failing silently.
  • You can write a private note instead of a message, or ask the agent for a draft and edit it.

Planned context panel

Beside the thread: who this is, and what you already know.

  • Contact card — name, fields, tags, and their identities across your channels
  • Their other threads, on other channels
  • The live deal and its qualification state
  • Tasks linked to this contact
  • Agent controls — pause for an hour, resolve, replay this conversation in the playground

Verified automatic merge, soft-match suggestions, previews, and undo are being built. Anonymous widget visitors are not yet identified or merged.

What is not in your inbox

  • Spam. A new contact's first message is classified. Spam is flagged, the agent stays off, and it stays out of your counts — while the underlying event is still retained, so nothing real is ever truly dropped.
  • Future test conversations. The Phase 3 playground will mark its conversations as tests so they can be excluded from later analytics and billing surfaces.

Multi-party threads

Discord channels, email threads with people on CC, and group chats are not one-to-one. The thread tracks participants, and each message is attributed to the participant who sent it.

Next

On this page