Messages — email history, threads, and team chat
Who it's for
Everyone on the team touches Messages in some form. The Messages page (/messages) is where any team member can review the shop's full email history with customers, read threaded conversations, and compose new outbound emails. The Team Chat panel — accessible from the Wraptor AI button on every page — is for internal team communication: channels and direct messages between staff. Both surfaces are governed by the Messaging permission, which every default role (Manager, Designer, Production, Installer) holds — so in practice your whole standard team can use them; remove it from a custom role and that role loses access.
Where it fits
Messages sits alongside Inbox (WraptorMail) in the communications layer of the workflow. The Inbox is the primary surface for reading and replying to incoming customer emails. The Messages page is a companion view that surfaces the same email conversations in a different layout — outbound history, a combined all-emails feed, and a two-column threaded view — plus a full-screen compose area. Team Chat is internal and runs independently of customer email.
See workflow-map.md for the full lifecycle and personas.md for role-specific patterns.
Overview
The Messages module has two distinct surfaces:
The Messages page (/messages) is a dashboard for customer email. It has four tabs: a combined feed of all inbound and outbound emails ("All Emails"), a list of emails your shop has sent ("Sent"), a two-column threaded view of customer conversations ("Email Threads"), and a full-screen compose area ("Compose"). It draws from the same email data as the Inbox — the Messages page is a different view of the same records, not a separate mailbox.
The Team Chat panel is a global slide-over accessible from the Wraptor AI button in the top bar on any page. The panel has three tabs — Assistant (the Wraptor AI chat), Alerts (AI suggestions and notifications), and Team — and Team Chat lives under the Team tab: channels and direct messages for internal staff communication. The Team Chat is entirely internal — customers never see it.
Screens & navigation
Messages page (/messages)
Reach it by clicking Messages in the main navigation. The page header shows a mail icon and the title "Messages — Send and track emails to your customers." Four tabs run across the top:
All Emails tab A combined, chronological list of every email associated with your shop — both inbound (emails from customers) and outbound (emails your shop sent). Each row shows:
- A direction arrow: a green inward arrow for received emails, a brand-colored outward arrow for sent emails.
- The timestamp.
- The sender or recipient name (or email address if no name is known).
- The email subject.
- A customer name badge if the email is linked to a customer.
- A job number badge if the email is linked to a job.
An AI suggestion badge may appear beneath an inbound email if the AI has detected a job suggestion or supplier order opportunity in that message — these are the same AI insights that appear in the Inbox. A Refresh button at the top right reloads the list.
If no emails have been synced yet, the tab shows a prompt to connect Gmail in Settings → Email and run a sync.
Sent tab A list of every email your shop has sent to customers — quotes, invoices, proof notifications, payment confirmations, status updates, and freeform messages. Each row shows the timestamp, recipient address, subject, and a type badge (Quote, Invoice, Proof, Payment, Status, or Freeform). Click any row to expand and read the full email body. A Reply button on each row jumps you directly to the Compose tab pre-filled with the recipient and a "Re:" subject line. A New Email button at the top right opens the Compose tab.
Email Threads tab A two-column view showing email conversations grouped by thread. The left panel lists threads; the right panel shows the full conversation for whichever thread you've selected.
Each thread in the left panel shows the customer company name, the subject line, how recently it was updated, a linked job number (if any), the total email count, and a "Resolved" badge if the thread has been closed. Clicking a thread loads its messages in the right panel — you can see the full conversation with received messages on the left and sent messages on the right, each with sender, timestamp, and the full email body.
From the thread detail header you can mark a thread Resolved (closes it) or Reopen it. This is the same resolve/reopen action available in the Inbox.
The Email Threads tab is a secondary view of the same threads documented in Inbox (WraptorMail). The Inbox is the primary surface for managing customer email. Cross-reference that doc for full thread behavior, linking to jobs and customers, and how inbound email arrives.
Compose tab A full-screen email composer for sending new messages to customers. The composer is the same Smart Composer used throughout Wraptor — it supports linking to a customer and a job, choosing email type, and formatting the body. If you arrived at Compose via a Reply button from the Sent tab, the To and Subject fields are pre-populated. If you arrived from a direct link (for example, from the "New Email" button on a job), the customer and job may be pre-filled as well.
After sending, the tab switches to Sent and the list refreshes.
Team Chat panel (global)
The Team Chat panel is accessible from any page in the dashboard. Click the Wraptor AI button in the top bar (the button with the Wraptor logo) to slide open the panel. Inside the panel, three tabs appear: Assistant (the AI chat), Alerts (AI suggestions and notifications), and Team (internal messaging). Click Team to open the team chat.
The Team Chat panel has two views:
Channel list — the default view when you open Team chat. It shows two sections:
- Channels — your team's shared, topic-based chat rooms. Every shop automatically has a "general" channel that includes all active team members. Channels are shown with a # icon, the channel name, and a preview of the last message. An unread dot appears next to channels with messages you haven't read yet.
- Direct Messages — one-on-one conversations with individual team members. Each DM shows the other person's avatar or initials and a preview of the last message.
Click any channel or DM to open the chat view. A + button next to "Channels" opens the new channel dialog; a + button next to "Direct Messages" opens the new DM dialog.
Chat view — shows the message history for the selected channel or DM, newest at the bottom. Messages are grouped by date (Today / Yesterday / full date). When consecutive messages come from the same person, the avatar and name are shown only on the first, keeping the feed clean. An auto-scroll button ("New messages") appears when you've scrolled up and new messages arrive. The message input at the bottom accepts Enter to send; Shift-Enter adds a line break. Hover over any message to see a copy button; hover over your own messages to see a delete button.
Capabilities
Email (Messages page)
View all emails The All Emails tab shows every email linked to your shop — both received and sent — in one feed. Use the Refresh button to pull the latest.
View sent emails The Sent tab lists every email your shop has sent, with expandable bodies. Use it to confirm a quote or invoice email went out, or to find the exact wording you used with a customer.
Reply to a sent email In the Sent tab, click the Reply button on any row. The Compose tab opens with the To address and a "Re:" subject pre-filled.
Read a customer's email thread Open the Email Threads tab. Select a thread from the left panel. The right panel shows the full conversation — inbound and outbound — in chronological order.
Resolve / reopen a thread In the Email Threads tab, open a thread and click Resolve (marks it done) or Reopen (brings it back to open). This is the same status as in the Inbox.
Compose a new email Go to the Compose tab (or click "New Email" in the Sent tab). Use the Smart Composer to address the email, pick the type (quote, invoice, freeform, etc.), and write the body. Click Send. After sending, the view switches to Sent.
Open Compose pre-linked to a customer or job
From a job or customer record, links to the Messages page can carry a customer ID and job ID in the URL. When you land on /messages?compose=true&customerId=…&jobId=…, the Compose tab opens automatically with those pre-filled.
View AI insights on inbound emails On the All Emails tab, inbound emails that the AI has analyzed show suggestion badges below the email row — a job-suggestion badge if the email looks like a new inquiry, or a supplier-order badge if it looks like a supply order. You can act on these directly from the badge.
Team Chat
Join channels When you open the Team Chat panel for the first time, the "general" channel is automatically created (if it doesn't exist yet) and you are added as a member.
Browse and select a channel or DM From the channel list, click any channel or DM to open the conversation.
Create a new channel Click the + button next to "Channels." Enter a channel name (required) and an optional description. Channel names are automatically lowercased and spaces are converted to hyphens (for example, "Design Reviews" becomes "design-reviews"). Click Create Channel. You are added as the first member. Other team members can be added when they navigate to that channel.
Start a direct message Click the + button next to "Direct Messages." A dialog lists all active team members except yourself. Click any person to start a DM — if a DM channel between you and that person already exists, it reopens that conversation rather than creating a duplicate.
Send a message Type in the message box at the bottom of the chat view. Press Enter to send; Shift-Enter to add a new line. Messages appear immediately in the chat.
Delete your own message Hover over a message you sent. A delete (trash) icon appears. Click it and confirm to permanently delete the message. You can only delete your own messages.
Copy a message Hover over any message and click the copy icon to copy its text to your clipboard.
Step-by-step tasks
-
Read a customer's email thread
- Go to Messages in the navigation.
- Click the Email Threads tab.
- In the left panel, find the customer's thread (browse by company name, subject, or job number).
- Click the thread to load the full conversation in the right panel.
- Scroll through received (left-aligned) and sent (right-aligned) messages to see the full history.
-
Reply to a sent email
- Go to Messages and open the Sent tab.
- Find the email you want to reply to and click its row to confirm the content.
- Click the Reply button (arrow icon) on that row.
- The Compose tab opens with the recipient address and a "Re:" subject pre-filled.
- Write your reply and click Send.
-
Compose a new email to a customer
- Go to Messages and click the Compose tab (or click New Email in the Sent tab).
- In the Smart Composer, enter the recipient's email, select a customer and job if applicable, and choose the email type.
- Write your message and click Send.
-
Resolve a customer thread
- Go to Messages and open the Email Threads tab.
- Select the thread from the left panel.
- In the thread header on the right, click Resolve. The thread is marked resolved and shows a "Resolved" badge.
- To bring it back, click Reopen.
-
Open the Team Chat panel
- Click the Wraptor AI button in the top bar (the logo button).
- In the panel that slides in from the right, click the Team tab.
- The channel list appears with Channels and Direct Messages sections.
-
Start a team channel
- Open the Team Chat panel (Wraptor AI button → Team tab).
- Click the + button next to Channels.
- Enter a channel name and optional description, then click Create Channel.
- The new channel appears in the list and you enter it immediately.
-
Send a direct message to a team member
- Open the Team Chat panel (Wraptor AI button → Team tab).
- Click the + button next to Direct Messages.
- A list of active team members appears — click the person you want to message.
- The DM conversation opens. Type a message and press Enter to send.
-
Check for new team messages
- Look at the Team tab inside the Wraptor AI panel — or open the panel.
- Channels with unread messages show an unread dot.
- Click the channel to read new messages.
Settings & permissions
Who can use the Messages page
The Messages page lives under the main dashboard and is available to all paid plans (Solo, Starter, Pro, Business, Franchise). The Free Claim tier cannot reach /messages because free-claim shops are confined to the Marketing area by the dashboard layout — this is a routing restriction, not a per-feature flag.
The Messages page is gated by the Messaging permission — a role without it is redirected away. By default all four roles have it, so your whole standard team can open the page.
Who can use Team Chat
There is a Messaging permission (description "Team messaging & channels") listed in role settings, and by default it's granted to all four roles — Manager, Designer, Production, and Installer. It's enforced: loading channels and sending messages require it, and the mobile Chat link is hidden without it. Remove Messaging from a custom role and that role loses team chat and the Messages page. Since every default role includes it, your standard team is unaffected.
Who can delete messages
Only the person who sent a message can delete it. There is no admin-delete capability — even a Manager cannot delete another team member's message.
Who can create channels
Any team member with the Messaging permission can create a channel — and every default role has it. Channel creation isn't restricted beyond that permission.
Plan tiers
Team Chat is available on all paid plans (Solo, Starter, Pro, Business, Franchise). Free Claim shops cannot access it (routing restriction). There is no per-plan limit on the number of channels, messages, or direct-message threads.
Tips & common pitfalls
- Messages is not the Inbox. The Inbox is where you manage incoming customer emails — read, reply, sort, and forward them. The Messages page is for reviewing history, browsing threads, and composing outbound emails. If a customer just emailed you, go to Inbox first.
- The "general" channel is automatic. When any team member opens the Team Chat for the first time, the "general" channel is created automatically and all active shop users are added to it. You don't need to set it up manually.
- You can only delete your own messages. If a team member posts something in a channel that needs to be removed, only that person can delete it.
- Channel names are lowercased. Spaces in channel names become hyphens. "Install Crew" becomes "install-crew." Keep names short and descriptive.
- DMs don't create duplicates. Starting a DM with someone you've already messaged before reopens the existing conversation instead of creating a new one.
- Email Threads and Inbox show the same data. The Email Threads tab on the Messages page and the thread view in the Inbox display the same thread records. Resolving a thread in one place is reflected in the other.
- AI badges appear only on received emails. The job-suggestion and supplier-order AI insight badges appear only on inbound emails in the All Emails tab, not on emails your shop sent.
- Team Chat polls, not real-time. The chat view checks for new messages every 3 seconds. There is a brief delay before a message sent by a colleague appears on your screen — you don't need to refresh manually, but don't expect instant delivery like a consumer chat app.
- Compose can be pre-linked. When you click an email-compose link from a job or customer profile, the Compose tab opens with the customer and job already attached. This keeps email history properly linked to the right records.
Related modules
- Inbox (WraptorMail) — the primary surface for managing incoming customer email; the Messages page Email Threads tab is a secondary view of the same thread data.
- Customers — emails are linked to customer records; the customer profile shows sent email history.
- Jobs — emails can be linked to a specific job; job numbers appear as badges in the all-emails feed.
- AI (Wraptor AI) — the AI Assistant tab lives in the same panel as Team Chat; AI email insights appear in the All Emails tab.
- Team — team members and roles; the Messaging permission is assigned here.
- Settings — connect Gmail (Settings → Email) to enable the All Emails feed.
- Workflow map — where customer communication fits in the lead-to-completion flow.
- Personas — how each role uses communication tools.