Holiday Lights Estimate Wizard

Use the Holiday Lights Estimate Wizard to design holiday lighting proposals with visual design tools, zone mapping, and contract pricing.

Intermediateownersales repUpdated 2026-08-12

Holiday Lights Estimate Wizard

The Holiday Lights Estimate Wizard combines visual design tools with automated pricing. You trace gutter lines on satellite or street view imagery, assign lighting zones, and generate a proposal with installation, materials, and removal costs.

If an owner assigns a brand under Settings -> Brands -> Module Brand Assignments, every new Holiday Lights estimate uses that identity by default. An originating lead's saved brand takes priority. This works the same way in the office web app and native mobile app: the customer preview, portal, sent email and text, PDF, contract, invoice, and payment stay with the selected holiday brand.

On mobile, the builder uses three focused steps: Property, Design & Packages, and Review & Send. Customer, property, estimate type, editable title, and salesperson are selected before the builder opens. The customer's default property is preselected, but the rep can choose or add another property.

The office web builder now follows the same three-phase structure. It opens in a dedicated Holiday Lights workspace with Setup, Design, and Review across the top instead of the former nested Design, Bundle, and Generate Quote tabs. The web Design phase keeps Satellite, Street View, property-photo tracing, Winter Wonderland, and Good/Better/Best selection together. Review shows full Monday-through-Sunday installation-week ranges, removal timing, customer notes, internal crew notes, contract pricing, preview, and send controls without asking for the customer information a second time.

The web Design phase uses the same direct package designer as mobile rather than embedding the older map-and-zone editor. Choose Good, Better, or Best, then draw C9, mini-light, or permanent-light strands directly over the large property image. Wreaths, power outlets, and cable runs are placed on that same canvas. Strands render as individual glowing bulbs, wreaths use a recognizable lit-wreath shape, selected items expose exact quantity, unit price, name, and color-sequence controls, and the power layer keeps timer and customer-visibility settings with the quote.

Canvas controls on web and mobile support 1x–4x zoom while preserving accurate placement coordinates. Undo and Delete operate on the active design or power layer. Generated Winter Wonderland images and copied custom packages have their own delete controls. Wreaths include 24, 30, 36, 48, and 60-inch size choices. Mini lights are placed as individual lighted areas for bushes, trees, or beds; each area has its own editable strand quantity and strand price. On mobile, Move items lets a rep press and drag any placed strand, wreath, or mini-light area; the new position is committed when the rep releases it.

On mobile, Save draft and Review estimate appear after the design content in the normal page flow instead of covering the canvas in a fixed footer.

Winter Wonderland validates the already-composed PNG request using its bounded PNG header rather than a native server image library. This keeps generation compatible with the production serverless Linux runtime.

The Property step supports Camera, Gallery, Satellite, and Street View sources. Satellite is the default map view. Street View opens as an adjustable preview: the web designer first calculates the bearing from Google's panorama position back to the geocoded property, so its initial frame faces the selected house instead of an arbitrary compass direction. Reps can then drag to turn or tilt the camera, use the zoom and fine-position controls, then select Use this view to lock the exact frame into the estimate. The preview is not added to the design until it is locked. The same control is available in the mobile and web designers.

On desktop, 3D Satellite opens Google's photorealistic satellite scene with orbit, tilt, rotation, and zoom controls. After positioning the property, select Snapshot & design and choose This tab in the browser share prompt. The app crops the visible 3D map into a still design canvas; the screen-share stream stops immediately after capture and is not stored.

The Design & Packages step combines products with the visual designer. Reps can tap to place wreaths, power points, timers, and other individual items, or draw roofline and mini-light strands. C9, mini-light, wreath, permanent-light, and power-run items use exact configured prices. The selected color sequence can be changed before or after drawing, including custom patterns such as warm white, warm white/red, or repeating multi-color sequences. Calculated quantities and prices remain editable by the salesperson.

Traced strands render as individually spaced glowing bulbs instead of solid highlight lines. Placed wreaths render as lit green wreaths with a red bow. Use Winter Wonderland to generate a snowy blue-hour version of the selected property image; the editable vector lighting design stays layered above that background so changing a strand does not require regenerating the snow scene. During generation, the drawn bulbs and symbols are treated as placement guides, not finished pixels. The renderer replaces them with realistically scaled bulbs, wire, clips, and wreaths snapped to the nearest roof edge, gutter, fascia, column, doorway, window, or other mountable surface. It corrects small drawing offsets and removes the guide graphics so decorations do not float over the house or sky. The marked strand, mini-light, and wreath counts are scope-locked: strands stop at their drawn endpoints, and unmarked rooflines, trees, landscaping, and neighboring structures remain unlit.

Winter Wonderland also applies professional-installation photographic rules without feeding another property's photo into the edit. Medium-quality final rendering keeps distant C9 bulbs small and teardrop-shaped with restrained bloom and visible fascia between sockets while avoiding unrequested lights copied from an unrelated example. Wreaths use irregular evergreen branches, needle texture, natural depth and shadow, sparse micro-lights, and a proportionate fabric bow rather than a perfect glowing ring. These rendering rules never replace the customer's house, camera angle, placement, or selected scope.

The generator separates its two image roles. The clean property image is the edit target and the salesperson's marked canvas is a placement-only guide. This prevents the large guide dots or wreath symbol from being baked into the finished photograph. Both web and mobile send the clean property and marked canvas separately.

The placement image used for generation is intentionally different from the friendly editor overlay. Web and mobile convert strands into individually colored, numbered centerlines with explicit square endpoints and convert wreaths into a small cyan center and size marker. The generator must account for every numbered strand separately, including short side edges and upper ridges, without imitating the editor's oversized bulb dots or circular wreath icon. When a ridge and front upper gutter are both marked, their badges explicitly say RIDGE and UP GUTTER so the generator keeps both parallel strands on their own architectural edges. Short SIDE runs are bounded by their endpoints and cannot be stretched down the siding. Unmarked walls remain naturally dark rather than receiving an invented decorative wash. The generation request also carries an explicit strand inventory. If no SIDE strand exists, the preview is told that no vertical or side-wall lights are allowed; when a ridge and upper gutter coexist, both must remain visibly separate in the finished customer image. Multi-point strands retain every drawn corner and segment. A short diagonal leading into a ridge, for example, cannot be shortened away while the longer horizontal portion is rendered. Mobile captures both the clean property and placement guide from the same zoomed canvas frame, so roofline coordinates remain aligned when the salesperson zooms into the property before generating. Mobile Street View sends Google the required location parameter and prefetches the initial property frame, so opening the adjustable camera does not wait on AI generation. A failed image request stops after 12 seconds and offers a visible retry instead of leaving an endless spinner. The mobile 3D Satellite picker uses a tilted, rotatable satellite map. Drag, pinch, rotate, tilt, or use the fine-position controls, then save the exact framed map as the durable drawing canvas. The mobile app prepares an upload-sized preview automatically and allows the longer processing window required by image generation. Draft synchronization only updates the saved estimate identity when it actually changes, so the builder remains still while a rep types, draws, or waits for the preview.

Winter Wonderland uses a fast landscape preview render. While it is active, the designer shows a visible percentage, elapsed time, and the current Preparing, Rendering, or Finalizing phase so the rep can distinguish active generation from a timeout. If generation or private storage is still finishing, web and mobile keep checking the same request instead of starting a second billable image. Generated files are stored beneath the current organization's private storage prefix and customer access is signed for that same organization. Mobile keeps the pending request identity with the estimate, so leaving and reopening the builder resumes the same generated image. One attempt is capped at four minutes; it no longer leaves an indefinite spinner on a permanent storage failure.

Private Winter Wonderland images opened by the mobile canvas include the signed-in user's bearer token and active organization id. This allows the image to load through the same tenant-scoped storage route as the rest of the app; the canvas no longer falls back to a gray area after a successful generation.

On web, double-click the final point to finish a strand. On mobile, long-press the final point. Move items lets a rep drag an entire completed strand, wreath, or mini-light area to a new position on either platform. Mini-light areas render as dense organic light clusters rather than circular spirals.

Good, Better, and Best packages are shown by default. A package can be selected as-is, then adjusted before delivery. The Review & Send step includes the recommended three-year agreement with the office-configured discount (15% by default), a higher one-year price, a 50% approval deposit, the remaining balance due at installation, installation week ranges, removal after January 1, and standard customer and internal crew notes. Email and SMS copy can be reviewed and edited before sending.

To build package tiers quickly, open the completed starting package and select Copy to Better or Copy to Best. Mobile and desktop copy the complete lighting design, custom scope, measurements, color sequences, and exact prices into the named destination, then open that destination so the rep can add the upgrade items. Better and Best keep their original names, ordering, and recommendation setting. If the destination already contains work, CE Pro asks for confirmation before replacing it. The separate duplicate action remains available when a fourth custom package is actually needed.

Installation timing is selected from labeled Monday-through-Sunday week ranges for the current season. The office chooses the exact day later when the route is finalized.

Native mobile Holiday Lights saves use the authenticated estimate sync. The server verifies the workspace, user, strict zone and add-on payload, saved revision, and, when the estimate is being sent, customer-delivery requirements. It recalculates material, labor, add-on, zone, and estimate totals before atomically saving the shared estimate, canonical line items, and proposal mirror. The mobile app cannot insert or update Holiday Lights proposal rows directly.

Use Preview customer proposal before sending. The preview shows the selected package drawn over every property image included in the workspace, the separate Winter Wonderland rendering when one was generated, package scope, pricing, deposit, and customer-facing notes. The delivered customer proposal reads the same versioned workspace, so mobile-created estimates retain the mock-up, Winter Wonderland view, and all other selected images. Internal crew notes are never included in this customer view.

After saving, the mobile estimate record keeps the same proposal evidence easy to review. Install & takedown preferences shows the selected installation week, standard after-January-1 takedown timing, and any requested date or note. Attachments shows each saved property mockup with its selected-package lighting overlay and the separate Winter Wonderland render. Notes shows the customer preferences and internal crew notes with clear labels.

The approval and signature flow follows the saved contract term. A three-year selection is labeled as a three-year holiday lights agreement, displays the selected amount per season, and shows the standard one-season price for comparison; a one-year selection is labeled as a one-season estimate. Holiday Lights approval does not offer or require Suds Club. Suds Club remains limited to eligible residential estimates and cannot block a Holiday Lights approval. When a camera or gallery image uploads after an offline save, its private remote URL is also reconciled into the workspace media entry before customer delivery; the proposal never depends on a file URI that exists only on the rep's phone.

After the holiday lights quote is saved, Proposal Options A/B/C prepares its shared estimate and opens the option builder. Use it for choices such as one-year versus three-year scope, different display packages, or optional service combinations without sending separate proposal links.

Editing a Saved Holiday Lights Quote

Open the linked estimate when a customer asks to change an existing quote. For the common case, select Edit line items in Scope & pricing. Edit the existing item name, customer-facing description, quantity, unit, or exact unit price; add or remove rows; and select Save line items. The live total updates on the estimate page, and the payment balance follows the saved total.

Changing line items does not reopen or remeasure the canvas. The saved property image, drawing points, and measurements remain intact. Use the two design actions only when the display itself needs to change:

  • Edit design opens the saved drawing without remeasuring it. Move, add, or

remove lights while keeping the existing measurements until you deliberately change them.

  • Remeasure design opens the saved design and makes the drawing the source

of truth again. Changes to measured roofline drawings recalculate their linked quantities and quote total.

The saved Street View, satellite snapshot, or uploaded property image reopens in the same locked canvas position. Back, Cancel, and a successful save return to the linked estimate instead of the Holiday Lights queue.

The Design tab keeps a live Quote line items panel directly under the canvas. While a roofline is being drawn, the panel previews the item, measured quantity, unit price, and amount. Finishing the drawing turns that preview into an editable quote row. Private Winter Wonderland previews resolve through the currently open CleanEstimate environment, so a test or branch preview can load the generated image using the signed-in office session.

Holiday Lights quotes now use one exact regular price. The queue, estimate line items, review step, public proposal, and delivery email no longer show or derive a low/high range. Older quotes use their stored regular price, and their existing linked estimate line items populate the editor the first time they are opened.


Step 1 -- Customer & Property

Enter the customer and property information.

Screenshot placeholder
Step 1 showing customer type selector and client details form

Customer Type

Select Residential or Commercial at the top of the form. This determines the pricing tier and proposal template.

Screenshot placeholder
Residential/Commercial toggle at the top of the form

Client Details

Search for an existing client or enter new information.

FieldDescription
Customer NameFull name of the homeowner or business contact
EmailFor proposal delivery
PhoneFor SMS delivery
AddressGoogle Places autocomplete
City / State / ZIPAuto-filled from address selection
Screenshot placeholder
Client details form with address autocomplete dropdown visible

Click Next to continue.


Step 2 -- Design & Quote

The mobile Design phase opens with a compact property workspace based on the approved estimate screen. It includes:

  • a property image with Photo, Satellite, and Preview modes;
  • one customer and full-address card with Call and Text actions;
  • compact Color, Bulb style, and Zones controls;
  • slim scope-of-work rows with real saved measurements and prices;
  • installation, removal, and storage preferences;
  • a design-segment summary, current estimate total, and Preview at night;
  • Save draft and Continue to products actions.

Tap Edit design to open the complete zone editor for adding, changing, or removing roofline, tree, bush, pathway, fence, window, and custom zones. The night preview applies a visual treatment to the saved property photo; it does not claim to be an AI-generated lighting placement.

The larger web designer has three tabs: Design Canvas, Bundle, and Quote Preview. The sections below describe that expanded workspace.

Screenshot placeholder
Step 2 tab bar showing Design Canvas, Bundle, and Quote Preview tabs

Tab 1 -- Design Canvas

The design canvas is where you trace light lines and define zones on the property.

Screenshot placeholder
Full design canvas view with satellite imagery, drawing tools on the left, and design summary on the right

Canvas Views

The left panel has three canvas tabs:

TabWhat It Shows
SatelliteAerial view of the property from above
Street ViewAdjustable ground-level view; pan, tilt, zoom, then lock the exact frame
Property PhotoUpload a customer photo of the home

In the mobile builder, a newly captured property photo is copied into durable storage for the signed-in user and workspace. It can remain queued while the phone is offline. After reconnecting, the authenticated estimate-photo pipeline uploads it and saves the returned HTTPS address into both the local builder and the canonical Holiday Lights estimate before customer delivery continues. Replacing the image uses the same idempotent removal queue. A missing or changed local file stops for review instead of publishing a device-only URI.

Switch between tabs to trace lines from different angles. Selecting Street View starts camera adjustment first; drawing remains disabled until Use this view locks the selected angle.

When the satellite property is not centered correctly, click Move image. The editor loads Google's supported high-resolution satellite image with a wider real source area around the property. Drag across the property, then click Done moving. Selecting Move image also closes a failed 3D panel so the satellite canvas never remains trapped behind it. Drawing coordinates, placed products, power-plan markers, and generated winter previews stay aligned with the adjusted image. Use Reset image position to return to the original centered view and 1x zoom. The selected image position and zoom are saved with the workspace.

Click 3D Satellite when the roof is easier to understand from an angled view. Drag to orbit, tilt, rotate, and zoom, then choose Snapshot & design. When the browser asks what to share, select the current tab. If 3D imagery is unavailable, the editor shows Google's specific initialization error. The site security policy follows Google's Maps CSP requirements for its WebAssembly renderer and required tile connections, and the scene becomes interactive as soon as Google mounts it instead of waiting indefinitely for a final rendering event. If the browser cannot capture the tab, cancel back to the regular satellite canvas and continue editing there. Hovering or focusing 3D Satellite begins loading the 3D library before the click, while property lookup and library loading run together.

The estimator continuously keeps a browser recovery draft. Refreshing or accidentally closing the page restores the customer, current step, drawings, quote items, workspace, and satellite framing. Successfully saving the estimate clears that temporary recovery copy.

Drawing and pricing are optional and independent:

  • Turn off Add new drawings to quote on web, or select Visual only on

mobile, when lights should appear in the design without adding a priced line.

  • Select an existing drawing and turn off Include drawing in quote pricing

to convert it to visual-only artwork.

  • Click Add quote item without drawing to enter a quantity and exact price

without placing anything on the property image. This lets you build and send a complete priced quote without creating a drawing.

Quoted items on web and mobile come from the active shared price book. The builder opens on Holiday Lights products and recognizes entries such as C9, wreaths, minis, garland, pathway stakes, and permanent lights. Organization overrides replace inherited default rates. A selected price-book product keeps its catalog id, unit, and current base rate on the design or manual line item. Holiday inventory SKUs are excluded because their price-book bridge stores inventory cost, not the customer selling price. If no Holiday Lights selling products are configured, drawing remains available as visual-only artwork and the builder will not silently substitute hard-coded quote prices.

Screenshot placeholder
Canvas tab switcher showing Satellite, Street View, and Property Photo tabs

Drawing Tools

Use the drawing tools to trace gutter lines, mark zones, and place light positions on the canvas.

  • Gutter Line Tool -- click to place points along the roofline. The system measures the total linear footage.
  • Zone Tool -- draw enclosed areas for accent lighting, bushes, or ground features.
  • Light Placement -- mark individual fixture locations for spotlights or ground stakes.
Screenshot placeholder
Gutter line being traced along a roofline on the satellite view with measurement labels

Color Picker

Select the light color for each line or zone. Options include:

  • Warm white
  • Cool white
  • Multi-color
  • Red
  • Green
  • Blue
  • Custom (enter hex code)
Screenshot placeholder
Color picker expanded showing warm white, cool white, multi-color, and individual color options

AI Measurement

Click Measure with AI to let the system estimate linear footage from a property photo. Upload a clear photo of the home, and the AI traces the gutter lines and returns measurements.

Screenshot placeholder
Measure with AI button and the resulting auto-traced gutter lines on a property photo

AI measurement works best with:

  • Clear, well-lit photos
  • Unobstructed views of the roofline
  • Standard residential architecture

The AI measurement tool is an authenticated office-side action. The signed-in team member needs Holiday Lights manage, Estimates create, or AI access before CE Pro will call the measurement service.

Street View image loading now also runs through authenticated internal map routes. That means the signed-in teammate needs estimate-view access, and CE Pro prefers GOOGLE_MAPS_SERVER_API_KEY for those requests. If the dedicated server key is missing, the office environment falls back to NEXT_PUBLIC_GOOGLE_MAPS_API_KEY. If that public Maps key is browser-only, referrer-restricted, or missing Street View access, the design canvas keeps the plain-language unavailable message instead of falling through to a misleading address or image-load error.

For complex rooflines, trace manually for better accuracy.

Standalone Designer Pilot Safeguards

The separate Christmas Lights designer pilot uses stricter automatic-quote rules while it is evaluated for a future native rollout:

  • Properties over 4,000 square feet are stopped before automatic analysis

and sent to manual review.

  • The Apify test selector requires known square footage, prefers detached homes

near 2,000 square feet, and screens the available listing gallery before a roofline trace is created.

  • A low-cost photo-selection pass chooses a clear front or angled-front facade.

Aerial, interior, rear, side-only, distant, heavily obstructed, and complex views do not proceed automatically.

  • The precision vision pass must independently confirm that the selected image

is suitable for a customer mockup. Its roof points must follow visible roof edges, and decor uses bounded zones fitted to the actual trees, bushes, columns, wreath locations, and walkways.

  • Click Render winter in the designer to create the reusable customer

background. The edit changes only the season, weather, and time of day: a blue-hour sky, realistic snow, subtle snowfall, and warm existing windows. It preserves the source facade, roof geometry, landscaping positions, framing, and perspective.

  • Good, Better, and Best lighting is drawn after the winter background is

created. The image model never generates package lights, so the saved roof segments and decor zones remain the source of truth for every tier.

  • C9 roofline pricing still uses the contractor's configured per-foot rate. If

the measured seasonal service is lower, the customer quote applies the contractor's $1,000 minimum.

  • Good, Better, and Best emails include separate package images. The test sender

stops instead of delivering when the Good tier still falls outside its target band after the service minimum.

These safeguards apply to the standalone pilot. The current native Holiday Lights wizard remains the production workflow until the replacement is ready.

Design Summary Panel

The right panel updates in real time as you draw. It shows:

MetricDescription
Linear FeetTotal length of all traced lines
ZonesNumber of defined lighting zones
Color BreakdownFootage per color selection
Mini Light StrandsNumber of strands needed (calculated from linear feet)
Roof PitchFlat, Standard, or Steep -- affects installation pricing
Unit Price per FootYour configured rate
SubtotalLinear feet multiplied by unit price
Screenshot placeholder
Design summary panel showing linear feet, zones, color breakdown, strands, roof pitch, and subtotal

Tab 2 -- Bundle

Link the holiday lights estimate to an existing power wash estimate for combined pricing.

Screenshot placeholder
Bundle tab showing the option to link a power wash estimate and the calculated bundle savings

How Bundling Works

  1. Select an existing power wash estimate for the same customer. The system searches by customer name and address.
  2. The combined price appears with the bundle discount applied.
  3. Enter the Bundle Discount amount (percentage or dollar value).

Bundling a power wash with holiday lights increases the average ticket value and gives the customer a reason to book both services at once.

Screenshot placeholder
Bundle discount field with percentage applied and the updated combined total

Tab 3 -- Quote Preview

The quote preview shows exactly what the customer will see.

Screenshot placeholder
Quote preview tab showing the full estimate with customer info, design details, and pricing

Customer Info

Name, email, phone, and property address.

Design Details

  • Linear feet
  • Number of zones
  • Colors used
  • Roof pitch

Pricing Breakdown

Line ItemDescription
InstallationPer-foot rate multiplied by total linear feet
Mini LightsCost of light strands
RemovalIncluded if a 3-year contract is selected
SubtotalBefore discount and tax
Bundle DiscountApplied if a power wash is linked
TaxBased on your configured tax rate
TotalFinal price
Screenshot placeholder
Pricing breakdown table showing installation, lights, removal, subtotal, bundle discount, tax, and total

Contract Term

Select between two options:

  • 1-Year Contract -- single-season installation and removal.
  • 3-Year Contract -- locked pricing for three seasons. Removal costs are included in the annual price.

If your office uses the AI estimate-review tools on a holiday lights quote, the nearby-comparison benchmark now follows the first-year annual contract price when it exists. That keeps the review aligned with what the customer would actually pay for the selected contract instead of comparing an annual contract against install-only historical subtotals.

Screenshot placeholder
Contract term radio buttons showing 1-Year and 3-Year options with price comparison

Proposal Media

Attach visual materials to the proposal:

  • Photos -- property photos used during the design.
  • Mockups -- renderings of the home with lights applied.
  • Installation Blueprints -- annotated diagrams for the install crew.

The customer sees these attachments when they open the proposal link.

Generated holiday mockups are stored in the private job-photos bucket. The proposal keeps a scoped access URL tied to the exact mockup path instead of a permanent storage link. When that URL is opened, CE Pro verifies its access token and redirects to a fresh short-lived signed URL, so the saved proposal reference remains usable without making the underlying image public.

When the wizard creates the paired holiday-lights sidecar for a bundled residential estimate, CE Pro now keeps the follow-up client-link update scoped to the same workspace that created the quote. That prevents cross-workspace retry or rollback paths from touching the wrong holiday-lights record.

AI Mockup Guardrails

Mockup generation is an authenticated office-side action. Before CE Pro calls the AI image editor, the signed-in teammate must be allowed to manage Holiday Lights or create or manage estimates.

CE Pro also applies these protections before sending a mockup request:

  • The request must come from the signed-in CE Pro browser and use the app's JSON

request format. Cross-site form submissions and non-JSON requests are rejected before they can consume a rate-limit slot, reserve credits, or contact the image provider.

  • The complete request is capped at 3.5 MB; the validated, normalized PNG

source image must be 2 MB or smaller.

  • Each teammate is rate-limited to a small burst of mockup generations per

minute using their signed-in workspace identity, even if they change networks.

  • The workspace-wide Enable AI Features switch and AI credit policy are

checked before the image provider is contacted. A workspace using Block cannot begin a mockup when the conservative reservation would exceed its available monthly credits.

CE Pro records each paid mockup's image count, provider token usage, and estimated cost. Mockups use OpenAI's current GPT Image 2 editor at explicit high quality. Because that model's output token calculator is dynamic, CE Pro reserves a deliberately higher 1024-square output ceiling plus the normalized input and prompt ceiling before starting; reported provider usage replaces the hold afterward. Updated browsers keep a request id in durable browser storage, scoped to the workspace, teammate, and exact design. A retry after a reload or tab crash therefore checks the original request instead of creating a second paid image; older cached browser versions remain accepted during the rollout.

If the provider outcome is unknown or the provider returns no usable image, CE Pro preserves and meters that terminal request. The editor explains that a new attempt may create another paid image and changes the action to Start New Generation. Only choosing that explicit action creates a new request id.

Completed images are staged before private upload and use a deterministic, request-bound object path. If private storage is temporarily unavailable, the same request retries that upload without asking the image provider to generate again. New mockups never fall back to an inline data URL; older saved inline mockups remain readable. If the usage ledger is unavailable, CE Pro retains the staged result and its credit reservation until accounting succeeds instead of discarding known provider spend after a retry limit.

These guardrails help prevent accidental spend spikes and keep the tool available for active estimators.

Screenshot placeholder
Proposal media section showing attached photos, a mockup rendering, and an installation blueprint

Bulk Seasonal Re-Quotes

Use the holiday-lights list to renew prior-season customers without rebuilding each design or changing the historical quote.

  1. Go to Admin > Holiday Lights.
  2. Filter or search for the prior-season quotes you want to renew.
  3. Select individual rows, or use the checkbox in the table header to select

every visible result.

  1. Click Re-Quote for New Season.
  2. Choose the Target season and enter the customer price increase. For

example, enter 3 for a three-percent increase.

  1. Leave Send each renewal immediately off when the office should review

the drafts first. Turn it on only when the selected quotes are ready to go.

  1. Click Create Renewal Drafts or Create & Send Renewals.

Each renewal is a new quote. The original quote and its status history remain unchanged. The renewal carries forward the customer, property, measurements, lighting design, saved photos, selected contract term, and internal material and labor costs. The chosen percentage applies only to customer-facing prices.

The list shows the season and renewal percentage for generated quotes. CE Pro also links each renewal back to its source quote and skips a source that already has a renewal for the same target season. This makes retrying a partial batch safe. A quote without a customer email remains a draft even when immediate delivery is selected.

Review the completion summary after the batch finishes. It separates new drafts, successfully sent quotes, existing renewals that were skipped, and failures that still need attention.


Saving and Sending

Sent Holiday Lights quotes open in the shared customer viewer with the saved design scope, package, contract term, proposal media, total, and signed deposit schedule. The customer can download the standard estimate PDF, sign on a phone or computer, and then pay online or arrange an offline deposit. An offline choice stays Deposit pending until the office confirms receipt.

The deposit is taken from the accepted Holiday Lights agreement. CE Pro does not substitute a generic 25% deposit when that agreement calls for another percentage or no deposit. A selected proposal option can carry a fixed deposit amount when that option is part of the signed acceptance.

The same action buttons appear at the bottom of the screen regardless of which tab is active.

ButtonWhat It Does
Save DraftSaves the estimate without sending
Preview PDFOpens a PDF preview of the full proposal
Send EstimateOpens the send modal
Screenshot placeholder
Action buttons at the bottom -- Save Draft, Preview PDF, Send Estimate

Send Modal

Click Send Estimate to open the same shared review-and-send modal used by the other estimate and proposal wizards.

The subject line, email body, and SMS body are pre-filled. Edit them if needed. For SMS, the character counter shows your message length against the 160-character limit.

Screenshot placeholder
Shared send modal with editable email and SMS copy

Click Confirm & Send. CE Pro now confirms the holiday-lights email and text send before it reports success back to the office, and the admin quote header uses that same shared modal instead of bypassing the review step with a direct-send button.

  • If the send succeeds, the estimate moves to Sent and the office gets a success confirmation with the destination email address.
  • If the email send fails, the wizard keeps the estimate retriable instead of silently claiming success.
  • After the first successful send, the same header action becomes Resend Proposal so the office can send the holiday-lights email again without rebuilding the quote.

The matching View Public Page action now follows that same live customer-link path too. If the linked estimate already has a shared quote token, the office preview opens the shared /quote/[token] page; otherwise CE Pro falls back to the seasonal portal URL instead of a tokenless estimate link that would open in read-only mode.

  • If the client has no phone number on file, or if SMS delivery is unavailable, the email still sends and the office sees a warning explaining why the text message did not go out.

Holiday-lights sends now stay on the seasonal delivery path inside the shared send module. That keeps the outgoing email and SMS pointed at the holiday-lights workflow instead of falling back to the standard residential estimate sender, while the linked shared estimate workspace records the send history and sent quote event from the same send completion path.

When a linked holiday-lights estimate already has a persisted shared public quote token, the delivered email and SMS now prefer that shared /quote/[token] link first and only fall back to the older holiday-lights portal URL if the shared quote link is unavailable. That keeps seasonal sends aligned to the same durable quote-core public link model the other migrated estimate types already use.

When a customer opens that holiday-lights portal from the delivered quote link, CE Pro now runs the same shared quote-core viewed-event bookkeeping there too. The latest open holiday-lights quote for that customer records the public portal view back into the linked estimate workspace instead of leaving the seasonal portal outside the shared send/view history.

That same seasonal view bridge now also runs when a customer opens the shared /quote/[token] page for a holiday-lights quote. Shared public quote links still render from the linked estimate workspace, but the underlying holiday-lights source quote now records its own viewed timestamp and seasonal pipeline move from that same open instead of only the linked estimate seeing the activity.

The first holiday-lights customer open now also advances the source seasonal quote from Sent to Viewed instead of only stamping viewed_at. That keeps viewed-status filters, dashboard counts, and seasonal reporting aligned with the first actual customer open.

Once a seasonal quote has been viewed, the office can still resend it normally. CE Pro now treats Viewed holiday-lights quotes as resendable proposal records instead of blocking delivery after the first customer open.

Shared /quote/[token] opens now record as shared quote opens in the holiday-lights sales history instead of being mislabeled as portal-only opens, which keeps the seasonal activity trail aligned with the public path the customer actually used.

Holiday-lights draft saves and status changes now run through the same shared quote-core service layer too. Saving or editing a seasonal quote now keeps the linked shared estimate, attached design snapshot, and bundled power-wash link aligned from one save path, and manual Declined or Expired updates now write the matching shared quote event onto the linked estimate instead of stopping at the seasonal source record.

Older workspaces that still had the earlier holiday-lights estimate-list projection function now stay compatible too. Seasonal quote saves now keep the shared estimate-list projection writing delivery_state as JSON, so holiday-lights draft creates no longer fail on production databases that were partially through the quote-core rollout.

When you reopen an existing holiday lights estimate from admin, the header now includes the office-side actions you expect:

  • View Public Page
  • Download PDF
  • Send Proposal or Resend Proposal after the first successful delivery
  • Open Estimate Workspace
  • Convert to Job after the linked estimate exists

Behind that linked estimate workspace, holiday lights quotes now also feed canonical shared quote-core line items instead of only the older compatibility line_items JSON. The holiday-lights save routes still own the source holiday_lights_estimates table for now, but the linked estimate record now carries structured holiday-lights line items and quote snapshots aligned to the same quote-core direction used by generic, residential, fleet, and commercial work.

That linked estimate workspace now also carries the source holiday-lights estimate id directly, which lets shared quote-core public links rebuild the seasonal summary from the linked estimate record instead of losing the holiday-lights context when staff or customers open the shared quote page outside the dedicated portal send flow.

Holiday-lights quote-core syncing now follows the saved contract term too. When a quote has zone-based annual pricing, the linked estimate workspace uses the selected 1-Year or 3-Year annual contract total instead of falling back to the older midpoint install range, and reopening the office editor keeps the saved term, premium, and proposal media selections in place instead of snapping back to the default 1-year view.

Editing an existing holiday-lights quote now also keeps the saved Price Guarantee Years value aligned with the latest seasonal pricing config. Traced quotes that start from zone-derived linear footage no longer fail validation just because the office left the manual linear-feet field at 0 while the traced roofline still measures correctly.

That same saved contract-term total now carries through the rest of the workflow too. Holiday-lights send copy, AI review comparisons, client-detail estimate totals, and admin revenue / lead-source reporting now read the saved selected annual contract price before they fall back to the older low/high range fields, which keeps the office-facing numbers aligned with what the customer actually accepted.

The office-side holiday-lights inventory list now follows that same shared catalog direction too. The inventory admin screen and the dashboard low-stock count read from the shared price_book_items bridge when those SKU rows exist, and legacy SKU create/update actions refresh that shared copy after the write so the seasonal inventory catalog stops depending on a separate read-only table path.

Those holiday-lights inventory saves now also fail closed if the shared price-book bridge cannot be updated. If CE Pro cannot persist the matching shared SKU row, the office-side inventory create or edit is rolled back instead of leaving inventory_skus and the shared quote-core catalog out of sync.

Holiday-lights inventory writes now only touch the matching shared SKU rows too. Admin inventory creates and edits update the specific bridged price_book_items record for that SKU instead of rebuilding the whole holiday-lights inventory bridge after every change, which keeps the shared price-book copy aligned with far less write churn.

Accepted holiday-lights quotes now reuse the shared quote-core accepted follow-up helper too. When a customer accepts from the seasonal status flow or the office signs the linked holiday-lights contract, CE Pro re-syncs the linked estimate workspace first and then runs the same accepted-event, pipeline, webhook, gamification, and accepted-job follow-up path used by the newer shared estimate flows instead of keeping a separate seasonal-only acceptance branch.

Holiday-lights contract signing continues to store the captured signature directly on the contract record, and that signature-backed acceptance path is now regression-tested alongside the shared estimate-signature and commercial proposal-signature flows so CE Pro can harden all public signature collection paths together instead of patching them one module at a time.

That acceptance bridge now also owns the source holiday-lights quote update itself. Customer status changes and office-side contract signing both flow through the same helper, so the seasonal sales pipeline records the acceptance from one path, and already-accepted quotes no longer rewrite accepted_at just because the office reapplies a signed contract record later.


Tips

  • Desktop work is protected continuously. The web designer saves a browser recovery draft shortly after each customer, package, canvas, schedule, or note change. Refreshing the page restores that newer draft instead of reverting to the last server save. Use Save draft in the header or below the canvas to persist the full estimate to CE Pro; the first save of a new estimate creates its permanent editable record.
  • 3D Satellite uses the stable desktop map renderer. Orbit, tilt, and zoom the saved property location, then capture a bounded snapshot for drawing. CE Pro compresses that snapshot before adding it to the estimate so opening 3D or saving browser recovery cannot exhaust the page's memory or browser storage.
  • Desktop review uses exact package prices. The selected Good, Better, or Best subtotal is the one-season price. The configured three-year discount produces one exact per-season agreement price. Customer review and preview no longer show low/high ranges or internal materials and labor estimates.
  • Delete only what you selected. Turn on Move items, tap or drag the strand, wreath, or mini-light area you want, and use Delete selected. The designer no longer treats the canvas delete control as “remove everything.” On desktop, Clear all is a separate action with a confirmation prompt.
  • Protected Winter Wonderland images stay inside the signed-in designer. Web mockup reads use the current CE Pro origin so the browser keeps the active tenant session. If an image genuinely fails, the old canvas is cleared instead of leaving a stale property image underneath the warning.
  • Winter Wonderland is a clean preview. The generated snowy image does not show the editable C9, mini-light, wreath, outlet, or cable drawing overlays. Select a drawing or power tool to return to the original property canvas before making changes.
  • Power tools take control of the canvas. Opening the power layer or selecting Place outlet or Draw cable automatically exits Move items, so the next canvas press places the selected electrical item.
  • Zoom without losing placement accuracy. At higher zoom levels, taps remain aligned to the underlying property image and editing bulbs, wreaths, outlets, and cable paths stay compact instead of growing with the photo.
  • Pan a zoomed mobile canvas with two fingers. Once the canvas is above 1×, drag with two fingers to inspect another roofline or section of the property. Panning stays inside the image bounds, while one-finger drawing and Move items continue to work normally.
  • Generation always uses the complete property frame. You can zoom in while drawing, but Winter Wonderland temporarily captures the original 1× property view and then restores your editing zoom. The builder and customer proposal use a fit-to-frame preview so no side of the generated house is cropped.
  • 3D Satellite does not require device-location permission. CE Pro resolves the saved service address through its tenant-aware Google address service, then opens the satellite camera directly on that property.
  • Each designed item stays one estimate line. A roofline, wreath, mini-light area, permanent-light run, or other design item appears once on the linked estimate. Installation production time remains available internally without creating a duplicate customer-facing labor line.
  • Reopening cannot erase priced scope. The server rejects a stale empty builder snapshot when the existing Holiday Lights estimate still has priced items. Estimate detail prefers canonical line items and can recover the display from the saved editor snapshot when an older projection is missing.
  • Use the satellite view to trace gutter lines accurately. The overhead angle gives the clearest picture of the full roofline.
  • AI measurement works best with clear property photos taken during the day. Avoid photos with heavy shadows or tree cover blocking the roofline.
  • 3-year contracts include removal pricing in the estimate. This simplifies the proposal for the customer and locks in recurring revenue.
  • Bundle with a power wash for a higher ticket value. Customers who are already spending on holiday lights are good candidates for a fall cleaning package.

Troubleshooting

AI measurement returned inaccurate results

The AI works best on standard rooflines with clear photos. For L-shaped homes, complex dormers, or multi-level roofs, trace manually using the gutter line tool. You can combine AI-traced lines with manual adjustments.

Colors do not match the design summary

Make sure you select the color before drawing each line segment. If you need to change a color after drawing, select the line on the canvas and use the color picker to update it.

Bundle discount is not applying

Confirm that the linked power wash estimate belongs to the same customer (matched by name and address). The bundle discount only applies when both estimates are active and not already sent.

Was this article helpful?

Still need help? Contact support