Messages
Overview
The Messages section in the customer portal is a direct line between the customer and the contractor's team. It's backed by the CRM's SMS infrastructure — messages sent here arrive on the contractor's phone as SMS and in the CRM inbox simultaneously. Replies from the contractor appear in the portal conversation thread in real time.
For customers, this is far more convenient than calling. For contractors, it eliminates the problem of customer texts going to personal phones and never making it into the job record. Every message is in the CRM, attached to the contact, and visible to the whole team.
Features
- Conversation Thread — Chronological message history between the customer and the contractor's team; shows sender name and timestamp per message
- Send Message — Compose and send a message from the portal; delivered as SMS to the contractor's business number
- Read Receipts — Timestamps showing when each message was delivered and when it was read
- File Attachments — Customers can attach photos (up to 5 per message, JPG/PNG) — useful for sending photos of an issue
- Notification Badge — Unread message count shown in the portal navigation
- Message History — All messages are retained permanently; customers can scroll back to the beginning of the conversation
- AI Receptionist Threads — If the customer was previously handled by the Digital Receptionist, that conversation history is included in the thread
Message Routing
| Portal Message | Routes To | Staff View |
|---|---|---|
| Customer sends message | CRM Conversations inbox + SMS to business number | Flagged as new in CRM |
| Staff replies in CRM | Portal thread + customer's phone (SMS) | Thread updated |
| AI Receptionist handoff | Existing thread or new thread | Tagged as AI handoff |
CRUD Reference
| Object | Create | Read | Update | Delete |
|---|---|---|---|---|
| Message | ✅ | ✅ | — | — |
| Attachment | ✅ | ✅ | — | — |
| Thread | — | ✅ | — | — |
| Read Receipt | — | ✅ | — | — |
Notes
Portal messages are sent using the contractor's provisioned Twilio number — the customer does not see the contractor's personal phone number. Message delivery is not guaranteed if the customer's phone number is invalid or carrier-blocked; the portal shows a delivery failure indicator. Customers cannot delete messages or threads. Staff can view the full thread regardless of which team member replied — it is a shared team inbox, not individual inboxes.