Skip to main content

Customer Portal

Status: Concept  ·  Last Updated: 2026-05-15

A branded self-service portal the customer accesses on any device — phone, tablet, or desktop. No app download required. Customers can track their technician in real time, review all their documents, manage payments, schedule new work, and see their recurring service calendar without ever calling the office.

This is the customer's window into their relationship with the contractor. Everything they need is here. Nothing the contractor doesn't want them to see is exposed.

Portal Sections at a Glance

SectionDescription
Technician TrackerLive map showing technician location and ETA when dispatched. Push notification when they're on the way and when they arrive.
ProjectsCustomer-visible job history and active project status — photos, milestones, and progress. Internal notes, costs, and margins are never shown.
Invoices & EstimatesAll invoices with payment status, open estimates awaiting approval, and the ability to pay directly from the portal.
ContractsSigned contracts and any pending documents awaiting signature. Full signing flow available inline — no separate DocuSign portal needed.
Payment Methods & HistoryCards on file, ability to add or remove payment methods, and complete transaction history across all jobs.
Schedule & Recurring ServicesUpcoming appointments, the ability to request new work, and a view of all recurring service plans — frequency, next visit, and history.
Communication HistoryFull timeline of every message, email, call, and notification exchanged with the contractor — searchable, filterable by channel or project.

Technician Tracker — Live Map

When a technician is dispatched for a job, the customer receives a push notification and SMS with a link to the live tracker. The map updates in real time as the technician travels to the job site.

Live Tracker — Example States

StateMessage
Scheduled"Your appointment is confirmed for Thursday, May 22 between 9am–11am."
Dispatched"Mike is on his way. Estimated arrival: 23 minutes." Map shows technician moving in real time.
Arrived"Mike has arrived at your location." Tracker closes, replaced by job status view.

What the Map Shows

  • Technician pin — live GPS location updating every 30 seconds
  • Customer pin — the job site address
  • Route line — estimated path and live ETA
  • Technician name and photo — so the customer knows who's coming
  • Call / text button — tap to contact the technician directly if needed

Notification Triggers

EventCustomer Notification
Appointment confirmedSMS + email — date, time window, technician name
Technician dispatchedSMS with tracker link — "Mike is on his way"
Technician 10 min awayPush notification — "Mike is almost there"
Technician arrivedPush notification — arrival confirmed
Job completeSMS — "Work is complete. Here's your invoice."

Projects — Customer View

Customers can see their active and past projects, but only the information relevant to them. Internal job costing, margins, contractor notes, and team communications are never exposed.

What Customers Can See

FieldVisible to Customer
Project name and addressYES
Current phase / statusYES
Progress photos (selected by contractor)YES
Before / after photosYES
Final walkthrough videoYES
Milestones and completion datesYES
Linked estimates, invoices, contractsYES
Internal contractor notesNO
Job costing / materials cost / marginsNO
Team PTT messages and transcriptsNO
AI inspection report (raw)NO
Lead score or CRM tagsNO

Contractors can optionally share specific photos or notes from inside the CRM with a toggle — "Share with customer." Nothing is visible to the customer by default unless explicitly enabled.

Invoices

All invoices across every job, with current payment status, are visible in one list. Customers can pay outstanding invoices directly from the portal without calling or mailing a check.

Invoice List Shows

  • Invoice number and date
  • Project it belongs to
  • Amount due / amount paid
  • Status badge — Draft, Sent, Viewed, Approved, Paid, Overdue
  • Pay Now button — charges the card on file or lets customer choose a payment method
  • Download PDF — for their records

Estimates

Open estimates awaiting the customer's decision are surfaced prominently. The customer can review the full scope, ask a question, or approve directly from the portal — triggering the onboarding flow automatically.

Estimate Actions

  • Review line items — full scope of work, materials, and pricing
  • Approve estimate — one tap; triggers invoice creation and onboarding flow
  • Decline — with optional reason; contractor gets notified
  • Ask a question — sends a message directly to the contractor

Contracts

All contracts — signed and pending — are accessible here. Customers can sign pending contracts inline without any third-party portal.

Contract States Shown

StatusWhat the Customer Sees
Pending signatureFull contract text with a "Sign Now" button — inline e-signature
SignedCompleted contract with signature date — downloadable PDF
ExpiredContract marked expired — contractor can re-send if needed

Payment Methods

Customers manage their cards on file here. This is the same card used for the onboarding $1 authorization and all future charges.

  • View cards on file — last 4 digits, expiry, card type
  • Add a new card — secure card entry form (Stripe Elements or equivalent)
  • Remove a card — only allowed if no outstanding invoices tied to it
  • Set default card — which card gets charged for automatic payments

Payment Transaction History

A full ledger of every charge across all jobs — what was charged, when, for which invoice, and the result.

ColumnDescription
DateDate and time of the transaction
DescriptionWhat was charged — Invoice #, project name
AmountDollar amount
Payment methodLast 4 of card used
StatusSucceeded, Failed, Refunded, Pending
ReceiptDownload link for their records

Schedule — Upcoming & Past Appointments

A calendar view of all appointments — past visits, upcoming scheduled work, and any windows where the contractor is expected on-site. Customers can see what's coming without having to call.

Schedule Views

ViewWhat's Shown
UpcomingAll future appointments in date order — service type, date, time window, technician assigned
Past VisitsHistorical appointments — date, what was done, technician who came
CalendarMonthly calendar view with appointments marked — tap any date for details

Requesting New Work

  1. Customer taps "Request New Service" — Simple form: describe the work needed, preferred date range, and any notes. No phone call required.
  2. Contractor receives the request — Appears in the CRM as a new lead task tied to the existing contact. No duplicate contact created.
  3. Contractor books the appointment and sends an estimate — Customer gets a notification — appointment confirmed or estimate ready to review in the portal.
  4. Customer approves and it's done — No phone tag. No hold music. The whole booking loop happens inside the portal.

Recurring Service Schedules

For contractors who provide recurring work — pest control, HVAC maintenance, lawn care, cleaning, gutter cleaning — the portal shows the customer's full service plan in one view. They can see exactly when their next visit is, what service is included, and a history of every past visit on that plan.

Example plan cards:

  • Quarterly Pest Control — Interior & Exterior — Active since March 2024 · 6 visits completed — Next visit: June 15, 2026 (Every 3 months)
  • Annual HVAC Tune-Up — Active since October 2023 · 2 visits completed — Next visit: October 8, 2026 (Annually)

Each Recurring Plan Shows

  • Service name and scope — what's included in each visit
  • Frequency — weekly, monthly, quarterly, annually, custom
  • Next scheduled visit — with date, time window if confirmed, and technician if assigned
  • Visit history — every past visit on this plan with date, technician, and any notes shared by the contractor
  • Plan status — Active, Paused, Cancelled
  • Pause or cancel option — customer can pause the plan; contractor gets notified and can follow up

What Recurring Looks Like vs. One-Off

One-Off JobRecurring Plan
How it appearsSingle project with timelineA plan card with visit history underneath
Invoice cadencePer-project invoicePer-visit or monthly billing (configured by contractor)
SchedulingCustomer requests → contractor booksAuto-scheduled — customer notified ahead of each visit
Can customer reschedule?Yes — via request formYes — tap to request a different date for the next visit

Communication History

Customers see a complete, chronological record of every interaction they've had with the contractor — texts, emails, calls, voicemails, and AI receptionist conversations — all in one scrollable timeline. Nothing is hidden except internal notes the contractor marks as private. Customers can also send a new message directly from this view.

Example thread (May 14–22, 2026):

  • Acme Roofing → Sarah (SMS, 9:02 AM): "Hi Sarah! This is Mike at Acme Roofing. Your estimate for the roof repair is ready — you can view and approve it in your portal: [link]"
  • Sarah → Acme Roofing (SMS, 9:47 AM): "Looks great, just approved it. When can you start?"
  • Acme Roofing → Sarah (SMS, 10:15 AM): "We can start Thursday May 22nd — crew will be there between 8–10 AM. You'll get a reminder the day before!"
  • System Event (10:16 AM): "Estimate #2041 approved by Sarah Chen — job scheduled for May 22."
  • Acme Roofing → Sarah (Email, May 21 4:00 PM): "Appointment Reminder — Your Acme Roofing crew arrives tomorrow (May 22) between 8–10 AM. Mike will text you when he's 30 minutes away. View your portal for live tracking."
  • Acme Roofing → Sarah (SMS, May 22 7:34 AM): "Mike is on the way! ETA ~26 minutes. Track him live in your portal."
  • Sarah called Acme Roofing (Call, 8:12 AM): Duration: 3m 12s · Connected to Mike Santos
  • System Event (2:45 PM): "Project 'Roof Repair — May 2026' marked complete. 14 photos added to your portal."
  • Acme Roofing → Sarah (SMS, 3:00 PM): "The crew just wrapped up — hope everything looks great! We'd love your feedback: [review link]. Your invoice is also ready in your portal."

Reply box is available at the bottom to send a message to the contractor. Internal contractor notes are not visible here.

What Customers Can See

Communication TypeVisible to CustomerNotes
SMS messages (both directions)YesFull text of every message sent and received
Email messages (both directions)YesSubject + body; attachments linked
Inbound/outbound call logYesDate, time, duration, who answered — no recording exposed
Voicemail (left by customer)YesTranscription shown; audio playback optional
AI receptionist conversationsYesFull transcript of AI chat, labeled "AI Receptionist"
System events (estimate approved, job scheduled, etc.)YesShown as timeline events, not messages
Internal contractor notesNoMarked private by contractor; never surfaced to customer
Internal team messagesNoContractor-to-contractor chat never shown
Cost, margin, job costing dataNoFinancial internals never shown
  • By channel: All, SMS, Email, Calls, System events
  • By project: Filter the thread to only show messages related to a specific job
  • By date range: Narrow to a specific period
  • Search: Full-text search across all message content

Replying from the Portal

Customers can send a new message directly from the communication history view. The message routes to the contractor's CRM inbox as an inbound SMS or email (depending on the customer's preferred channel) — the contractor sees it in their unified conversations view alongside all other customer communication.

Portal Access & Authentication

The portal is accessed via a unique link sent to the customer — no username or password required by default. For returning customers, a magic link or SMS verification code gets them back in without friction.

Access MethodWhen Used
Magic link (email)Sent automatically when: estimate ready, invoice due, appointment confirmed, contract pending
SMS verification codeCustomer opens portal on mobile — enters phone number, gets a code
Saved sessionIf customer bookmarks the portal, they stay logged in on that device for 30 days

Notification Preferences

Customers control exactly what the contractor's CRM sends them — from within the portal itself. This respects customer autonomy and reduces opt-out complaints. The contractor sets the account defaults; customers override for their own account.

Notification TypeSMSEmailNotes
Appointment reminders (Day before + morning of)ToggleToggleCan also choose 48h advance notice
Technician on the way (Dispatched notification with ETA)ToggleToggleLinks to live tracker map in portal
Project status updates (Started, milestone reached, completed)ToggleToggleCustomer can choose email-only for these
Invoice ready (New invoice or upcoming payment due)ToggleAlways onEmail always sends; SMS is optional
Payment confirmation (Receipt after successful charge)OffAlways onCannot be disabled (legal requirement)
Estimate ready for reviewToggleToggleAt least one channel must be on
Contract needs signatureToggleToggleAt least one channel must be on
Upcoming recurring service (Reminder before each scheduled visit)ToggleToggleDefault: 48h advance SMS + email
Review request (After job completion)ToggleToggleOne-click unsubscribe in every message
Newsletter & project examples (Marketing emails, testimonial videos)Off by defaultOpt-in onlyCAN-SPAM compliant unsubscribe required

Quiet Hours

Customers can set a do-not-disturb window. SMS and push notifications are held outside of business hours if the customer configures it. Email is not affected by quiet hours. Emergency communications (payment failure, safety-related) always go through.

How Preferences Are Set

  • Customers access their preferences from the Account section of the portal.
  • The contractor's account-level defaults apply until the customer makes a change.
  • The contractor can see per-customer notification preferences but cannot force opt-in to marketing — that's always customer-controlled.
  • Bulk opt-out (e.g., "unsubscribe all") immediately stops all non-transactional messages.

Open Questions

  1. GPS tracking for the technician tracker — does the mobile app share location automatically when dispatched, or does the technician have to opt in each time?
  2. What mapping provider — Google Maps, Mapbox, Apple Maps?
  3. Can customers see photos before the contractor explicitly shares them, or is everything gated behind contractor approval?
  4. Inline e-signature for contracts — integrate a provider (Dropbox Sign, DocuSign) or build custom?
  5. Payment processing for the Pay Now button — Stripe, Square, or other?
  6. Is the portal a subdomain of the contractor's website (portal.acmeroofing.com) or a generic Merchant Protocol hosted URL?
  7. Can customers add multiple properties (addresses) to their account for contractors who serve the same customer at different locations?
  8. Recurring plan billing — handled through the portal's payment method or a separate subscription processor?
  9. What happens when a customer wants to cancel a recurring plan — immediate, or end of billing period?