Customer Portal

What the Customer Portal Is

The Customer Portal is a self-service website where your customers can log in to see their vehicle history — past Repair Orders, what work was done, and what they paid. It is completely separate from the shop login. Customers never see anything shop-internal, and they cannot create or edit records.

How Customers Get Access

Customers do not receive a separate invitation. They register at the Customer Portal using the same email address on file in CSM. The system automatically links their portal login to their Customer record by email. No manual linking step is required on the shop side.

If a customer uses a different email than what is on their CSM record, the system will not find a match — prompt them to register with the same email or update their record in CSM first.

What Customers Can See

The portal shows vehicles linked to the customer. Selecting a vehicle shows its Repair Order history.

Vehicles They Currently Own

Full Repair Order detail: labor items, parts, tech notes, and invoice totals. Customers can see everything that was done and what it cost during their ownership period.

Vehicles They Previously Owned

Repair Orders completed during their ownership period are still visible with full detail. Repair Orders from before or after their ownership show only the date and a “work was performed” note — not the full contents. This protects prior owner privacy while giving the current owner useful history.

Shop Contact on Receipts

Every receipt shown in the portal includes your shop’s name, phone number, and address as configured in Shop Settings. Customers can use this to reach you directly if they have questions about past work.

Portal Navigation

The portal has four tabs at the top of every page. Customers switch between them at any time.

Overview

The landing page after login. Shows upcoming appointments across all linked shops, a preview of recent messages, and linked vehicles by VIN. Tapping a vehicle goes to its full repair history.

Repair Orders

All repair orders across every vehicle and every linked shop in one list. Tapping a row opens the full detail — labor, parts, tech notes, and totals — for any RO within the customer’s ownership period. ROs from before or after their ownership show only the date and a brief summary.

Payments

Separates outstanding balances from paid invoices and shows a running total of what is owed across all linked shops. Customers can pay directly from this tab when an online payment link is available on the RO.

Messages

The full message inbox. Lists every Repair Order thread the shop has sent a message on, newest first. Tapping a thread opens the full conversation — shop messages and customer replies in order. A reply box at the bottom lets the customer write back. The thread refreshes every 30 seconds automatically so new messages appear without the customer having to reload the page.

Messaging Your Shop

The Customer Portal includes two-way messaging. When your shop sends a message from a Repair Order, the customer sees it in their Communication Hub and can reply directly from the portal. The conversation is threaded — both sides see the full history in order.

Shop Side

Open a Repair Order and go to the Emails tab. Use a template (e.g. “Ready for Pickup”) or write a free-form message. Clicking Send emails the customer and — if they have notifications enabled — also pushes a notification to their phone. Customer replies appear in the same thread with an amber “Customer reply” indicator.

Customer Side

The portal has a dedicated Messages tab that lists every thread by Repair Order. The Overview tab also shows recent messages as a quick-access preview. Tapping any thread opens the full conversation — shop messages and customer replies in chronological order. A reply box at the bottom lets the customer write back. Their reply lands in the RO’s Emails tab on the shop side instantly, marked with an amber “Customer reply” indicator. The thread updates every 30 seconds automatically so new messages appear without refreshing.

Linking Multiple Shops

Customers are automatically linked to any CSM shop where their email matches a Contact record. If a customer visits a second shop that also uses CSM, they can add it themselves from the Overview tab using the Add a shop button. They search by shop name, tap Add, and that shop’s vehicles, repair history, and messages all appear in the same portal login from that point on.

Customer Account Settings

Customers access their account settings from the profile icon in the portal header. From there they can change their preferred language (English, Spanish, or auto-detect) and open the built-in Install the App guide with step-by-step instructions for their device.

Add to Home Screen (Mobile App)

The Customer Portal is a Progressive Web App (PWA). Customers can install it on their phone’s home screen so it opens like a native app — no App Store required. Once installed, they can also receive push notifications when the shop sends a message.

Android (Chrome)

Chrome shows an “Add to home screen” button automatically after the customer visits the portal. If the button does not appear on the first visit, ask the customer to visit once more — Chrome requires a brief engagement period before offering the install. They can also tap the three-dot menu and choose “Add to Home Screen” at any time.

iPhone / iPad (Safari)

Safari on iOS does not show an automatic install prompt — this is an Apple platform restriction that no website can work around. To install on iPhone or iPad:

  1. Open the portal in Safari (not Chrome or Firefox for iOS).
  2. Tap the Share button (the box with an arrow pointing up).
  3. Scroll down and tap Add to Home Screen.
  4. Tap Add to confirm.

Push notifications on iOS require iOS 16.4 or later and the app must be installed to the home screen first — they do not work from the browser tab.

Requirement: HTTPS. The install prompt and push notifications both require the portal to be served over a secure HTTPS connection. This is a browser requirement that applies to every website on every platform — it cannot be bypassed. CSM’s live production environment runs over HTTPS automatically. On a local development server (HTTP only), the install prompt and push notifications will not appear.

SMTP — Email Configuration

The Communication Hub sends messages to customers by email. Without SMTP configured the message is saved to the thread but never delivered to the customer’s inbox. SMTP is set up once by the platform administrator in config.local.php.

Configuration Variables

Add these lines to config.local.php (or set them as server environment variables):

define('CSM_SMTP_HOST',       'smtp.gmail.com');
define('CSM_SMTP_PORT',       587);
define('CSM_SMTP_ENCRYPTION', 'tls');
define('CSM_SMTP_USERNAME',   'you@example.com');
define('CSM_SMTP_PASSWORD',   'your-password-or-app-password');
define('CSM_SMTP_FROM_EMAIL', 'shop@example.com');
define('CSM_SMTP_FROM_NAME',  'Downtown Auto');
VariableWhat it does
CSM_SMTP_HOSTYour SMTP server hostname.
CSM_SMTP_PORT587 for STARTTLS (most providers). 465 for implicit SSL.
CSM_SMTP_ENCRYPTIONtls for STARTTLS (port 587). ssl for implicit TLS (port 465).
CSM_SMTP_USERNAMEYour SMTP login name — usually the full email address.
CSM_SMTP_PASSWORDYour SMTP password or app-specific password.
CSM_SMTP_FROM_EMAILThe From address customers see. Must be authorised by your SMTP provider.
CSM_SMTP_FROM_NAMEThe display name customers see in their inbox — e.g. your shop name.

Common Provider Settings

ProviderHostPortEncryption
Gmailsmtp.gmail.com587tls
Outlook / Office 365smtp.office365.com587tls
Yahoo Mailsmtp.mail.yahoo.com587tls
Fastmailsmtp.fastmail.com465ssl
SendGridsmtp.sendgrid.net587tls
Mailgun (SMTP)smtp.mailgun.org587tls
Gmail users: If your Google account has two-factor authentication enabled, Gmail will reject your regular password. You need to create an App Password: Google Account → Security → 2-Step Verification → App passwords. Use the generated 16-character password as CSM_SMTP_PASSWORD.

Per-Shop Override

Each shop can optionally configure its own SMTP credentials under Integrations → Email (SMTP). When a per-shop SMTP host is set, all outbound emails for that shop are sent through it instead of the platform defaults. Leave the shop-level fields blank to continue using the platform credentials.

Push Notifications

When the portal is installed and notifications are enabled, customers receive a push notification on their phone each time the shop sends a message from a Repair Order. Tapping the notification opens the message thread directly.

Enabling Notifications (Customer)

The first time a customer visits the portal after notifications are configured, a banner at the top of the page reads “Get notified when your shop sends updates — Enable notifications.” Tapping Enable triggers the browser’s standard permission dialog. If the customer taps Allow, they are subscribed immediately.

If a customer taps Block, their browser will not ask again. To re-enable, they must go to their browser’s site settings and manually change the notification permission for your portal’s domain.

Enabling Notifications (Admin Setup)

Push notifications require a one-time setup by the platform administrator:

  1. Log in to the CSM Admin panel.
  2. Go to Integrations and confirm PWA / Push Notifications is switched On.
  3. Click Configure → next to it.
  4. Enter a VAPID Subject — your admin email in the format mailto:you@yourshop.com.
  5. Click Generate Keys. The system creates the encryption keys and saves them automatically.

This is done once. Do not regenerate keys unless absolutely necessary — doing so invalidates every existing customer subscription and customers will need to re-enable notifications on their next portal visit.