Your Messaging Inbox
Find, assign, and manage all customer conversations in one shared inbox.
Your Messaging Inbox
The Messages page is your shared communication hub. Every SMS, email, system event, internal note, and automated follow-up lives in one place so your team can see the full customer story before responding.
Call activity is part of that same record. Inbound calls, voicemail events, AI voice-agent summaries, and callback notes all land in the customer's thread so your reps do not have to switch between a dialer and the inbox to understand what happened.
Go to Messages in the sidebar to open it.
Page Layout
The inbox uses a two-panel split view. The left panel lists your conversations. The right panel shows the full thread for whichever conversation you select.
On smaller screens the inbox keeps the same two-panel content but uses mobile-safe viewport sizing so the list and thread do not overlap or overflow the screen height.
Left Panel: Conversation List
At the top of the list is a search bar. Type a name, phone number, email address, property address, or account name to filter the inbox.
Below the search bar you can narrow the inbox with workflow filters such as:
- Mine to see conversations assigned to you
- Unassigned to find threads no one owns yet
- Unread to focus on new inbound activity
- Needs Response to see conversations that still require follow-up
Each row in the list shows:
- Customer name in bold
- Last message preview - a short snippet of the most recent activity
- Timestamp - relative time like "2 hours ago" or "3 days ago"
- Unread badge - a count of unread inbound messages, if any
- Channel icon - a Mail icon for email or a MessageSquare icon for SMS
- Workflow badges - indicators for assignment or response status when needed
Conversations are grouped by contact, not by channel. If the same customer has both a phone number and an email address on file, their texts and emails appear in one shared row in the inbox instead of splitting into separate conversations.
Conversations are sorted by most recent activity. The customer who messaged you last appears at the top.
Click any row to load the conversation in the right panel.
Right Panel: Conversation Thread
The top of the right panel shows a header with the customer's name in bold. Their email address and phone number appear below the name, along with channel icons.
The header also shows the current assignee and whether the thread still needs a response. You can update both without leaving the conversation.
Below the header is a timeline of all communication in chronological order. Right above the thread you can filter the view to show All, Texts, Emails, Notes, or System activity for that one contact.
Four types of entries appear:
- SMS messages display as chat bubbles. Inbound messages from the customer appear on the left. Outbound messages from you appear on the right.
- Email events show the subject line, a preview of the email body, delivery updates such as sent, delivered, opened, or failed, plus a dedicated customer-engagement panel with the latest open time, total open count, the latest tracked link click, and the clicked URL when Resend reports that activity.
- Internal notes appear with a distinct style so your team can share context without sending anything to the customer.
- System events still appear inline in the thread, but customer-engagement events such as quote views, proposal views, estimate views, and invoice views now render as highlighted activity cards so the office can spot them without hunting through small centered text.
Phone activity also appears in the timeline as call or voicemail entries. When the AI Voice Agent handles a conversation, the thread includes the call summary, the outcome, and any internal callback task or alert created from that conversation.
At the bottom of the thread is a Linked Estimates section. It lists every estimate tied to this customer. Each entry shows the estimate number, status, total amount, and date.
Compose Area
The compose area sits at the bottom of the right panel. Use it to send a new SMS or email directly from the conversation, or add an internal note for your team.
A toggle lets you switch between SMS, Email, and Note mode.
When you switch to a different conversation, the compose area now resets to that contact before the thread reload finishes. This prevents an SMS, email subject, email body, or internal note draft from carrying over from the previous customer.
In SMS mode:
- A text area for your message
- The customer's phone number, auto-filled from their record
- A Send button
In Email mode:
- A subject line field
- A body text area
- The customer's email address, auto-filled from their record
- A Send button
In Note mode:
- A plain text field for internal context
- An Add Note button
- Team-only visibility so the customer never sees the entry
SMS and email modes also include an AI Draft button marked with a Sparkles icon. Click it to generate a suggested follow-up message. The system uses AI to analyze estimate age, status, and conversation history, then writes a draft for you to review before sending. If you configured Brand Voice & AI Training, the draft also follows your saved tone, wording rules, and approved examples.
Unread Message Badge
A red badge on the Messages link in the sidebar shows the count of unread inbound conversations. When you open a conversation, the unread count updates automatically.
Real-Time Popup and Sound Alerts
When a new inbound text, email reply, phone call, voicemail, or admin alert arrives, CleanEstimate Pro now raises an on-screen popup inside the admin workspace and plays a short sound cue.
- Texts, emails, calls, and voicemails open back into the matching Messages thread.
- Customer-engagement alerts now also pop live when Resend reports an email open or when a customer opens a quote, proposal, estimate, maintenance proposal, or invoice page.
- Operational alerts such as stale deals or overdue follow-up items open to the related record.
- If your browser allows desktop notifications, the same alert can also appear outside the tab when the app is in the background.
How Messages Get Into the Inbox
You do not need to manually log conversations. Messages appear in the inbox automatically from these sources:
- Estimate delivery. When you send an estimate, the SMS and email are logged to the customer's conversation.
- Customer SMS replies. When a customer replies to one of your text messages, the reply arrives through the active telecom provider webhook and appears in the thread.
- Customer email replies. When a customer replies to an email, the reply is routed through your organization's email slug and logged to the thread.
- Phone calls and voicemails. Provider-powered call activity, including Twilio AI Voice Agent summaries when that path is enabled, is logged to the same customer thread.
- Automated follow-ups. Messages sent by follow-up sequences are logged here so you can see what your automations have sent.
- Internal notes. Team members can leave private notes on the thread for handoffs, phone call summaries, and next steps.
- System events. Actions like "estimate viewed," "proposal signed," and "invoice paid" appear as timeline entries in the relevant conversation, and customer-viewed estimate/proposal/invoice events now stand out as their own highlighted cards.
- Customer email history now keeps the tracked open count and latest tracked click inside a dedicated engagement panel on the outbound email row, so the office can compare "email opened" versus "quote or invoice page opened" from the same thread.
Tips
- The inbox updates in real time, and manual sends refresh the thread immediately so you do not need to reload the page to confirm your message was logged.
- The active conversation now refreshes only when that conversation changes, so background activity in other customer threads is less likely to interrupt the thread you are reading.
- The conversation list now patches changed rows in place for most live updates instead of reloading the whole inbox after every new message, so busy teams should see fewer list jumps during active reply windows.
- When a live contact-row patch cannot be resolved safely, the inbox now falls back to a full list refresh instead of dropping the conversation out of the sidebar mid-session.
- Contact-row refreshes now normalize legacy phone and email thread keys before deciding a conversation is missing, so mixed older/newer contact-key formats are less likely to make an active thread disappear from the list.
- Switching between conversations now clears the previous draft and resets the compose mode to the channels that actually belong to the newly selected contact, so you are less likely to send the right draft to the wrong customer.
- A single contact thread now combines both SMS and email history, and the thread filter lets you isolate one channel without losing the unified customer view.
- Use the search bar to find conversations by customer name, phone number, or email address.
- Use assignment and response filters during busy periods so no conversation gets missed.
- Add an internal note before handing a thread to another rep so they have the right context.
- The AI Draft button works best for follow-ups on estimates that are three or more days old.
- Review call summaries after AI voice-agent conversations so your team can see qualification details before calling the customer back.
Related articles
Was this article helpful?
Still need help? Contact support