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.
Register: https://completeshopmanager.com/csm/customer_register.php
Log in: https://completeshopmanager.com/csm/customer_login.php
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:
- Open the portal in Safari (not Chrome or Firefox for iOS).
- Tap the Share button (the box with an arrow pointing up).
- Scroll down and tap Add to Home Screen.
- 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.
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');
| Variable | What it does |
|---|---|
CSM_SMTP_HOST | Your SMTP server hostname. |
CSM_SMTP_PORT | 587 for STARTTLS (most providers). 465 for implicit SSL. |
CSM_SMTP_ENCRYPTION | tls for STARTTLS (port 587). ssl for implicit TLS (port 465). |
CSM_SMTP_USERNAME | Your SMTP login name — usually the full email address. |
CSM_SMTP_PASSWORD | Your SMTP password or app-specific password. |
CSM_SMTP_FROM_EMAIL | The From address customers see. Must be authorised by your SMTP provider. |
CSM_SMTP_FROM_NAME | The display name customers see in their inbox — e.g. your shop name. |
Common Provider Settings
| Provider | Host | Port | Encryption |
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | tls |
| Outlook / Office 365 | smtp.office365.com | 587 | tls |
| Yahoo Mail | smtp.mail.yahoo.com | 587 | tls |
| Fastmail | smtp.fastmail.com | 465 | ssl |
| SendGrid | smtp.sendgrid.net | 587 | tls |
| Mailgun (SMTP) | smtp.mailgun.org | 587 | tls |
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:
- Log in to the CSM Admin panel.
- Go to Integrations and confirm PWA / Push Notifications is switched On.
- Click Configure → next to it.
- Enter a VAPID Subject — your admin email in the format
mailto:you@yourshop.com. - 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.