Skip to main content

Messages

Surface: Customer Portal · Last Updated: 2026-05-16

The customer's Messages page is not an inbox — it's a single conversation thread between them and the contractor. There's nothing to sort, no other contacts to browse, no channels to switch between. They see every message that's ever passed between them and the contractor, in chronological order.

One thread only. Customers don't have inboxes. They have a history. Every SMS, every automated update, every invoice event — one clean timeline they can scroll, search, and reply to.

The Interface

URL: portal.mikescontracting.com/messages

The portal shows the contractor's business name and logo in the header with nav tabs (My Project / Invoices / Messages / Schedule). The customer avatar (initials) appears top-right.

The conversation is a single-thread panel:

  • Thread header: contractor avatar (MC initials), contractor name ("Mike's Contracting"), project context ("Deck Replacement Project · Active"), phone icon
  • Thread body: chronological message bubbles on a light background — contractor messages left-aligned (white bubble, labeled "Mike's Contracting"), customer replies right-aligned (blue/accent bubble)
  • CRM event markers: inline cards like "Invoice #2041 sent — $4,200" appear as centered chips in the thread
  • Reply box: single text input ("Type a reply…") with a send button

Example thread (condensed):

3 days ago — Tue May 13

  • Mike's Contracting (SMS · Tue 8:02am): "Hi Sarah! Your deck project is scheduled for Thursday 8–9am. Reply CONFIRM to confirm."
  • Customer (Tue 8:47am): "CONFIRM"

2 days ago — Wed May 14

  • Mike's Contracting (SMS · Wed 7:48am): "Good morning Sarah! Our crew is on their way — arriving in about 20 minutes."

Today — Thu May 15

  • Mike's Contracting (SMS · 10:15am): "Hi Sarah, how did the deck come out? Hope you love it!"
  • [Invoice #2041 sent — $4,200] ← CRM event card
  • Customer (Portal · 10:22am): "Sounds good! What time works for you?"

What Customers See

The customer has one thread — their own conversation with the contractor. It includes every outbound message the contractor or CRM sent them, every automated update, and every reply they've sent back. All channels are merged into a single chronological view.

  • SMS messages — both what the contractor sent and what the customer texted back
  • Email messages — estimates, invoices, project updates sent via email appear inline
  • Automated CRM messages — appointment reminders, crew-on-the-way updates, follow-ups; labeled so the customer knows they were automated
  • CRM events — milestone markers like "Invoice #2041 sent," "Estimate approved," "Appointment scheduled" appear as cards in the thread
  • Call references — if a phone call happened, a brief event marker appears (e.g., "Phone call — May 13, 4:12pm · 6 min"). No transcript is shown to the customer

What Shows in the Thread

  • Contractor Messages — Left-aligned, light background. Includes the sender label "Mike's Contracting" so the customer knows who sent it.
  • Automated Messages — Also left-aligned, labeled so the customer knows it was an automated update — not a personal note from the contractor.
  • Customer Replies — Right-aligned, accent color. These are the customer's own words — every SMS or email reply they've sent back.
  • Invoice & Estimate Events — Inline event cards when an invoice is sent, an estimate is shared, or a contract is delivered. One tap goes to the document.
  • Appointment Events — Booking confirmations, reschedules, and reminders appear as event markers anchored to the date they occurred.
  • Call References — A simple date/duration marker when a phone call happened. The customer sees that a call occurred — not a transcript.

What Customers Cannot Do

Privacy by design. The customer portal is scoped to a single customer. There is no way to navigate to another customer's conversation, see internal team notes, or access any information outside their own project relationship.

ActionAvailableWhy
See another customer's messagesNoPortal is scoped to a single authenticated customer — no cross-customer access possible
See internal team notesNoInternal notes are contractor-only; never surfaced to the customer under any circumstance
Initiate a phone call from the portalNoPhone icon in the header is informational (shows the contractor's number) — calls must be made outside the portal
See call transcripts or recordingsNoTranscripts contain internal context and CRM data; only the call event marker is shown
Access another project's threadNoIf a customer has multiple projects, their thread is unified — there is no per-project inbox to navigate between
Delete or edit their sent messagesNoThread is an immutable record; customers can see everything they sent but cannot alter the history

Reply Options

Customers reply using a single text box. There are no channel tabs, no compose options, no formatting toolbar. They type, they send. The CRM routes their reply to the right channel automatically:

  • Phone number on file — reply sent as SMS to the contractor
  • No phone, email only — reply sent as email
  • Both on file — SMS is preferred (faster, more reliable for the contractor's inbox)

No channel confusion. The customer doesn't need to think about SMS vs email. They just type a reply. The system picks the best channel based on what contact info is on file and what the contractor can receive.

Notifications

When the contractor or the CRM sends a new message, the customer gets notified on the channels they've enabled. They tap the notification and land directly in the thread.

  • SMS notification — the message itself is the notification; no extra ping needed
  • Email notification — email with message preview and a "View in Portal" button
  • Push notification — if the customer has the portal bookmarked as a PWA on their phone, they get a push
  • Quiet hours — customers can set quiet hours in their notification settings so non-urgent messages don't ping them at night

Notification preferences are managed from the customer's Notification Settings page — not from the Messages page itself.