Customer Portal
How customers access their portal to view estimates, make payments, leave reviews, and share referral links.
Customer Portal
The customer portal is a public-facing page where your customers interact with your business online. It gives them self-service access to view proposals, request estimates, pay invoices, leave reviews, and share referral links -- all without calling your office. The portal is branded with your company identity and accessible at a permanent URL that you share on your website, social media, business cards, and marketing materials.
Portal URL
Your portal is available at:
app.cleanestimate.pro/portal/your-slugThe slug is your unique business identifier, set during onboarding. It appears in all portal links shared with customers. For example, if your company is "Sparkle Clean Pros" and your slug is sparkle-clean, your portal URL would be:
app.cleanestimate.pro/portal/sparkle-cleanThe slug cannot be changed after initial setup. Choose a short, recognizable slug that matches your business name or brand.
How Customers Access the Portal
Customers reach your portal through several channels. No account creation or password is required for most features -- customers identify themselves by entering their email address or phone number.
| Channel | How It Works |
|---|---|
| Direct link | Share the portal URL on your website, in email signatures, or on social media profiles. |
| QR code | Generate a QR code for the portal URL. Print it on business cards, door hangers, vehicle wraps, or yard signs. |
| Estimate emails | When you send an estimate, the email includes a link to the portal where the customer can view their proposal. |
| Invoice emails | Invoice notifications include a portal link for online payment. |
| SMS messages | Text messages sent through the platform can include the portal link. |
| Post-job follow-ups | After completing a job, send a follow-up message with a portal link for reviews and referrals. |
The low-friction access model (no login required for lookups) means customers can interact with the portal immediately without setting up credentials. This dramatically increases usage compared to systems that require account creation.
Portal, estimate, and invoice links open as normal browser pages. CleanEstimate Pro no longer prompts customers to install the site as a Chrome app/PWA.
The dedicated customer login page at app.cleanestimate.pro/customer/login now renders outside the authenticated customer portal shell. That keeps magic-link sign-in available to signed-out customers instead of redirecting the login route back to itself.
Direct estimate, proposal, maintenance-plan, and payment links are signed automatically. Generic quotes plus the shared quote-core linked-estimate pages for residential, fleet, commercial building, and holiday-lights records now use the shared public quote URL instead of the older signed estimate-only route whenever that saved quote has a persisted public quote token. When a customer opens a link from email or SMS, CE Pro still routes them to the correct public page without requiring an office login.
Commercial linked-estimate sends now preserve that saved shared quote token more reliably too. When a fleet or commercial building proposal already has a persisted public quote token on its linked estimate, resend and preview flows keep reusing that same /quote/[token] link instead of silently downgrading to a temporary signed estimate URL.
Holiday-lights sends now follow that same rule. If the linked holiday-lights estimate already has a persisted public quote token, CE Pro delivers the shared /quote/[token] link to the customer first and only falls back to the older seasonal portal URL when the shared quote link is not available yet.
Those signed estimate, proposal, maintenance-plan, and payment links still depend on the server-side CUSTOMER_TOKEN_SECRET environment variable. Set that secret before you send live customer links, keep it stable across deploys, and rotate it only when you are prepared for previously sent signed links to stop working. Customer delivery tokens now include an expiry window, so older links will age out instead of remaining valid forever. Shared quote-core public links are stored separately on the quote record and do not use that same customer-token URL format for the base page itself.
Customer sends now also fall back to the workspace's configured public site URL when the older dedicated app URL setting is blank. That means quote, proposal, maintenance-plan, shared quote, and holiday-lights portal links can still be generated during normal deploy or config transitions instead of failing the send with a temporary secure-link error.
Office-side send failures are now categorized more accurately too. If customer-link setup is the real issue, CE Pro still shows the secure-link setup warning. But if the draft is missing proposal options, missing a maintenance plan, or the email provider itself is unavailable, the send flow now surfaces that specific delivery problem instead of incorrectly blaming secure estimate links.
Estimate sends are also now resilient to live schema drift in the estimate pricing columns. The delivery helper no longer depends on newer optional estimate columns being present on every production workspace before a quote email can be generated, so sends keep working during rollout windows where one workspace still has an older estimates table shape.
Shared /quote/[token] pages now keep their online actions interactive even if that signing secret is temporarily unavailable. Quote acceptance, proposal package selection, maintenance-plan acceptance, customer-facing PDFs, and deposit actions can validate directly against the saved public quote token on the linked estimate, so a customer or office preview opened through the shared quote link no longer falls back to a misleading read-only "approval unavailable" state just because the customer-token secret is missing.
That same shared-quote fallback now also keeps office send messaging aligned with reality. When a generic, asphalt, residential, fleet, commercial building, or holiday-lights quote already has a persisted public quote token, CE Pro no longer warns the office that the delivered link is "view-only" or that secure quote setup is incomplete just because CUSTOMER_TOKEN_SECRET is temporarily missing. The email still sends, and the shared quote page keeps using the saved public token path.
Residential proposal-option and maintenance-plan links also keep their own public-view context when they hand off to the shared quote page. That means package-option opens still count as proposal views, maintenance-plan opens still count as maintenance-proposal views, and the customer sees the same specialized tab first instead of everything being treated as one generic quote open.
Portal proposal lookup and customer estimate lists now classify those mirrored residential package and maintenance offers from the shared quote-core offer layer too. Even after CE Pro moves proposal-option or maintenance-plan data off the parent estimate JSON, customers still land on the right public page from the portal instead of seeing a plain estimate link.
That same shared offer classification now also drives the customer dashboard and customer estimate list links directly. If a residential record is really a package proposal or maintenance offer, those summary cards now open the matching proposal or maintenance view instead of always defaulting to the base estimate link.
Viewing Estimates and Proposals
Customers can look up their proposals through the portal's Proposals tab.
How It Works
- The customer navigates to your portal URL.
- They select the Proposals tab.
- They enter the email address used on their estimate or proposal.
- CE Pro checks for matching live proposals and estimates in that workspace, then emails secure links instead of rendering proposal data directly in the browser.
What the Customer Sees
After they submit the form, the portal shows a confirmation state:
- If matching live records are found and email delivery is available, the customer receives secure links in their inbox.
- If no matching live records are found, the portal keeps the response generic instead of exposing whether that email belongs to a customer.
- If email delivery is temporarily unavailable, the portal asks the customer to retry instead of falsely claiming links were sent.
Opening a secure link from that email takes the customer to the full proposal or estimate view, which includes:
- Detailed service descriptions with scope of work.
- Line-item pricing breakdown.
- Multi-option selections if the proposal includes tiered pricing (e.g., Basic, Standard, Premium).
- Package discount details if applicable.
- Terms and conditions.
- An Accept button with e-signature capture.
- A Download PDF option for the customer's records.
Accepting a Proposal
When the customer clicks Accept, a signature pad appears. The customer signs using their mouse, trackpad, or finger (on mobile devices). After signing:
- The proposal status changes to "Accepted."
- You receive a notification that the proposal was accepted.
- The customer sees a confirmation screen.
- A job record is created in your system automatically.
Office staff can also use the admin-side View Public Page preview to walk through the same signature flow while signed in. CE Pro now honors that authenticated office preview path instead of requiring a separate customer token just to verify the acceptance experience from admin. Shared quote-core public pages now inherit the workspace organization name in the header too, so customers see the office brand instead of a hardcoded product label when they open a shared estimate or quote link.
That office preview path now resolves through the same valid customer-link contract across residential estimates, package proposals, maintenance plans, fleet proposals, commercial building proposals, holiday-lights linked estimates, generic quotes, and asphalt quotes. If an internal teammate opens an older raw public route while signed in, CE Pro now hydrates the same interactive approval token the delivered link would have used instead of falling back to a read-only "approval unavailable" state.
Signature capture is now hardened across all three public acceptance pipelines too: shared estimate and quote links sign through the shared estimate-sign route, fleet and commercial building proposal pages self-heal missing signature-storage buckets before retrying the upload, and holiday-lights contract signing keeps using the inline contract signature fields. That keeps online approval reliable across estimate, proposal, maintenance-plan, and holiday contract flows instead of each module depending on a separate fragile signature setup.
If the customer adds notes or requests changes before signing, those comments are saved on the estimate record so your team can review them in the admin estimate detail view.
This eliminates the back-and-forth of emailing signed documents and accelerates the time from proposal to scheduled job.
Requesting an Estimate
The estimate request form turns your portal into a lead generation tool that operates around the clock.
The Request Form
Customers fill out a form with:
- Contact information -- Name, email address, and phone number.
- Property address -- With optional autocomplete for faster entry.
- Services of interest -- Checkboxes for the service types you offer (house wash, gutter cleaning, window cleaning, etc.).
- Additional notes -- A free-text field where the customer can describe their specific needs, timeline, or concerns.
What Happens After Submission
When a customer submits an estimate request:
- A new lead is created in your pipeline automatically.
- The lead source is tagged as "Portal" so you can track portal-generated leads separately.
- You receive a notification (email or in-app, depending on your notification settings).
- The customer sees a confirmation message thanking them for their request.
This means a homeowner who visits your website at 10 PM on a Saturday can submit their request immediately. Without the portal, that lead might forget to call on Monday morning.
Response Time
Portal estimate requests are warm leads -- the customer actively sought you out and took the time to fill out a form. Respond within one hour during business hours for the best conversion rates. Configure notifications to alert you immediately when a new portal request arrives.
Making Payments
Customers can pay outstanding invoices directly through the portal. Payments are processed through Stripe, so your Stripe integration must be connected before enabling this feature.
Payment Workflow
- The customer navigates to the Pay tab on your portal.
- They enter their email address or invoice number.
- The portal displays their outstanding invoices with amounts and due dates.
- The customer selects an invoice and clicks Pay Now.
- A Stripe-hosted checkout page opens for secure card entry.
- After successful payment, the invoice status updates to "Paid" automatically.
- Both the customer and your team receive a payment confirmation email.
Benefits of Portal Payments
- Faster collection. Customers pay immediately without writing a check or calling to read a card number over the phone.
- Reduced friction. The fewer steps between "customer wants to pay" and "payment received," the faster your cash flow.
- Automatic reconciliation. Payments update your invoice records automatically. No manual data entry.
- Security. Stripe handles all card data. You never see or store credit card numbers.
Payment Methods
Stripe supports credit cards, debit cards, and (depending on your Stripe configuration) ACH bank transfers and digital wallets like Apple Pay and Google Pay. The available payment methods are determined by your Stripe account settings.
Leaving Reviews
After a completed job, customers can leave feedback through the portal's Review tab.
Review Flow
- The customer navigates to the Review tab.
- They select a star rating from 1 to 5.
- They write optional feedback in a text area.
- They submit the review.
Google Review Redirect
If you have configured a Google Review URL in Settings > Account, the portal implements a smart redirect:
- High ratings (4-5 stars): After submitting through the portal, the customer is encouraged to also post their review on Google. A button links directly to your Google Business Profile review page.
- Lower ratings (1-3 stars): The customer's feedback is captured privately through the portal. They are not redirected to Google. This gives you an opportunity to address the concern before it becomes a public negative review.
This approach protects your public reputation while still giving you honest feedback from every customer.
Using Reviews Effectively
- Send a follow-up message with a portal review link within 24 hours of completing a job, while the experience is fresh.
- Respond to all feedback, positive or negative. Customers who leave low ratings through the portal are giving you a chance to fix the problem.
- Track your average rating over time. A declining trend signals a service quality issue.
Sharing Referral Links
Referrals are one of the highest-converting lead sources for exterior cleaning businesses. The portal makes it easy for happy customers to refer friends and family.
Referral Lookup
The Refer tab is available only to existing customers. CE Pro uses the customer's email address to protect referral credit and keep the portal from turning into an open public lead form.
- If the customer already has a referral code, the portal shows their existing share link and stats immediately.
- If the customer is known to your workspace but has never used referrals before, the portal asks for their name once and then creates a shareable referral code.
- If the email is not tied to an existing customer record, CE Pro blocks the request instead of letting an unknown visitor create a referral code.
What Happens After Submission
- The customer copies or shares their personal referral link.
- A referred prospect opens that link and starts an estimate request with the referral code attached.
- The new lead or estimate is tagged back to the referring customer for attribution.
- The referring customer can return to the portal later to reuse the same link and review their referral totals.
Tracking Referral Performance
Because the referring customer and code stay attached to the referral link, you can:
- Identify your top referral sources (which customers refer the most).
- Calculate the lifetime value of referral leads versus other lead sources.
- Implement referral incentive programs and track redemption.
Holiday Lights Portal Tab
If your account has the Holiday Lights module enabled, the portal automatically includes an additional tab for holiday lighting.
Customers can:
- View their holiday lighting proposal with design details.
- See mockups showing how their property will look with lights installed.
- Review zone configurations and light specifications.
- Accept the holiday lighting proposal with an e-signature.
This tab appears only when the Holiday Lights module is active. It is visible to customers who have an active or pending holiday lighting proposal.
Portal Branding
The portal displays your company branding to create a professional, consistent customer experience.
Branding Elements
- Company logo -- Displayed in the portal header.
- Brand colors -- Applied to buttons, headings, links, and accent elements.
- Company name -- Shown in the page header and footer.
If you have multiple brands configured in Settings > Brands, the portal uses your default brand. The branding ensures the portal looks like an extension of your company's website, not a generic third-party tool.
Configuring Portal Features
Go to Settings > Portal to control which features are available on your portal. Each feature has an on/off toggle.
| Feature | What It Controls | Prerequisite |
|---|---|---|
| Proposals | Show or hide the proposal lookup tab. | None |
| Estimate Requests | Show or hide the estimate request form. | At least one service configured in pricing settings. |
| Invoice Payments | Show or hide the payment tab. | Stripe integration connected. |
| Reviews | Show or hide the review submission form. | Google Review URL configured (optional but recommended). |
| Referrals | Show or hide the referral form. | None |
Changes save automatically when you toggle a feature. For detailed portal configuration instructions, see the Portal Settings guide.
Sharing the Portal Effectively
The portal only provides value if customers know about it. Integrate the portal URL into every customer touchpoint.
Website
Add a prominent "Customer Portal" or "Pay Online" button to your website navigation. Place it in the header, footer, or on a dedicated customer resources page.
Print Materials
Include a QR code for the portal URL on:
- Business cards
- Door hangers left after estimates or jobs
- Yard signs placed during active jobs
- Vehicle wraps and magnets
- Flyers, brochures, and direct mail pieces
Email Communications
- Add the portal URL to your team's email signatures.
- Include portal links in estimate emails, invoice emails, and follow-up messages.
- Create a post-job email template that links to the review and referral sections of the portal.
Post-Job Follow-Up
After completing a job, send a single follow-up message that includes links to:
- The Review tab for leaving feedback.
- The Pay tab if there is an outstanding invoice.
- The Refer tab for recommending friends.
This one message can drive reviews, accelerate payment collection, and generate new leads simultaneously.
Tips
- Enable only relevant features. If you do not offer online payments through Stripe yet, do not enable the Pay tab. Empty or broken features erode customer trust.
- Test the portal from a customer's perspective. Open the URL in a private browser window and walk through each feature. Make sure everything works and looks professional.
- Mention the portal to customers. Technology only helps if people use it. Train your team to mention the portal during job completion and follow-up calls.
- Use the referral feature actively. Ask satisfied customers to refer a friend through the portal right after completing their job, while their satisfaction is highest.
- Respond to portal estimate requests quickly. These are warm leads. Aim for a response within one hour during business hours.
- Keep your Google Review URL current. If you change your Google Business Profile, update the URL in settings immediately.
- Track portal metrics. Monitor how many estimate requests, payments, reviews, and referrals come through the portal each month. This data justifies the effort of promoting it.
Troubleshooting
Portal page shows a 404 or "not found" error
Verify your portal slug at Settings > Portal. The URL must match exactly, including case. If the account was recently created, the portal may take a few minutes to become active.
Customer cannot find their proposal
The proposal lookup matches by email or phone number. The customer must enter the same email or phone number that was used when the estimate was created. If they use a different email, no results appear. Check the estimate record to confirm the correct contact information was entered.
Pay Now button is not showing on invoices
Ensure your Stripe integration is connected and active at Settings > Billing. If Stripe is connected but the button still does not appear, check that the invoice status is "Sent" or "Outstanding." Draft invoices are not available for payment through the portal.
Google Review redirect is not working
Verify that the Google Review URL is configured at Settings > Account. The URL must be the direct review link for your Google Business Profile, not your general business listing URL. You can find this link in your Google Business Profile dashboard under "Get more reviews."
Referral form submissions are not creating leads
Check that the Referrals toggle is enabled at Settings > Portal. If the toggle is on but leads are not appearing in your pipeline, check the leads list with the source filter set to "Portal" or "Referral." The leads may be created but filtered out of your default view.
Portal looks unbranded or uses default styling
Verify that your company logo and brand colors are configured at Settings > Brands. The portal pulls branding from your default brand. If no brand is configured, the portal uses generic default styling.
Related articles
Was this article helpful?
Still need help? Contact support