Conversations
Supervise every conversation across every channel from one unified inbox: reply, take over from the AI, and see CRM context in one place.
Objective
Conversations is your unified omnichannel cockpit: a single, supervisory list of every conversation across all channels, so your agents reply and you supervise from one place.
Channels covered: WhatsApp, Web Chat, Instagram, Messenger, Telegram, Email, and Voice.
Access
Sidebar -> Conversations Routes:
- /app/{tenant}/conversations (the cockpit)
- /app/{tenant}/conversations?channel={channel} (filtered by channel)
- /app/{tenant}/conversations?item={id} (a conversation open in the detail panel)
- /app/{tenant}/conversations/{id} (Web Chat full conversation view)
Roles
- owner, admin, agent
Notes:
- Viewer does not see this module.
- Deleting a Web Chat conversation is limited to owner/admin.
- The Email channel only appears when the workspace has the email/inbox module enabled; otherwise the Email chip, rows, and counts are hidden.
Prerequisites
- At least one connected channel (WhatsApp, Web Chat, Instagram, Messenger, Telegram, Email, or Voice).
- At least one active agent handling that channel.
The conversation list
Each row shows:
- A profile avatar with a small channel badge.
- The customer's display name (smart-resolved, so raw phone prefixes, numeric platform IDs, "Unknown" placeholders, and JSON blobs are never shown).
- An identity subtitle (formatted phone or email) when available.
- The last-message preview.
- The channel name and a relative timestamp.
Status indicators on a row:
- A CRM lifecycle chip (Lead / Active / Customer) when the customer is linked to a contact.
- An AI escalated badge (amber) when the AI asked for a human.
- A Human takeover badge (blue) when a person has seized the conversation.
- A "needs attention" dot on the avatar.
Search and filter
- Search: the box (Search by name, number, or email) matches the linked contact's name, email, and phone, and the conversation's own customer name and identity. Use the X to clear.
- Channel chips: an All chip plus one chip per channel, each with a live count. The selected channel is reflected in the URL (?channel=).
- Needs attention: filters to conversations flagged for attention or in an AI-escalated / Human-takeover state.
Pagination and realtime
- Load more pages the list 50 conversations at a time.
- The cockpit updates live: new messages and new conversations bump the counts and the list without a manual refresh.
Row actions (desktop)
- View contact: opens the linked CRM contact.
- Open full view: opens that channel's own dedicated conversation page.
The detail panel
Clicking a row opens the conversation without leaving the cockpit (the list keeps its filters and scroll).
- On desktop it is a docked side panel that you can drag to resize; the width is remembered across sessions.
- On mobile it is a full-screen overlay.
- It can be deep-linked with ?item={id} and closed with the X or the Escape key.
Panel header
Shows the customer, the channel, and an AI-status chip: AI active, AI escalated, Human takeover, Human only, or AI paused. An Open full view link goes to the channel's full page.
Take over from the AI (human-in-the-loop)
A Take over / Return to AI button lets a supervisor seize or hand a conversation back for the five chat channels: Web Chat, WhatsApp, Instagram, Messenger, and Telegram. Email and Voice have no takeover control (see below).
CRM contact card
A collapsible card inside the panel shows the linked contact:
- Name, lifecycle status, and AI score.
- AI Next best action.
- A Pipeline stage dropdown to move the contact between stages inline (this logs a stage-change activity).
- Owner and tags (first 5 shown, then "+N more").
- An Open in CRM link.
If the customer is not matched to a contact yet, the card shows "No contact linked yet".
Reply composer (channel-aware)
| Channel | What the panel shows |
|---|---|
| Web Chat, WhatsApp, Instagram, Messenger, Telegram | A reply box. Enter sends, Shift+Enter adds a newline. |
| A customer who opted out | "This customer opted out of messages. They must send START to resume." (no composer) |
| "Email replies are reviewed and sent from the email inbox." plus an Open in email inbox button. | |
| Voice | A read-only notice pointing to the full call view for the recording. |
Where "Open full view" goes
- Web Chat opens the built-in detail page at /app/{tenant}/conversations/{id}.
- WhatsApp, Instagram, Messenger, Telegram, Voice, and Email open their own module pages.
All of these remember they were reached from Conversations, so their back button returns you to the cockpit.
Web Chat full conversation page
Route: /app/{tenant}/conversations/{id} (owned by this module)
- Shows the visitor name/email and start time.
- An AI on/off switch, plus escalation and takeover banners with Take over / Return to AI.
- Lifecycle controls: Close, Reopen, Archive, and Delete (Delete is owner/admin only).
- Message bubbles render inbound attachments (image thumbnails, audio and document chips, an "unavailable" state when a file is missing) and small knowledge/data badges when the AI used your documents or tables.
- The view polls for new messages automatically.
AI Insights
A side panel (desktop) or bottom sheet (mobile) shows the conversation Sentiment (Positive / Negative / Neutral) and an AI Summary, with a Generate / Regenerate action. If no AI provider key is configured, it points you to API key settings.
Good practices
- Use the Needs attention filter as your daily triage queue.
- Take over only when the AI escalates or a customer asks for a person, then Return to AI when done.
- Keep contacts linked and pipeline stages current from the panel so reporting and the AI's context stay accurate.
Common notes
- Email and Voice are read-only in the cockpit by design: reply to Email from the Inbox module and act on Voice from the call view.
- Web Chat widget setup, embed code, and limits are not here; they live in the Web Chat module.