Deep Links

Preselect brand, material, shape, and color before a homeowner starts the public visualizer.

Deep-link contract

Public visualizer and embed URLs support four stable query parameters that preselect roof choices before the homeowner interacts with the visualizer.

ParamValueExample
brandOptional color-library slugwestlake
materialPublic catalog material idlib-tiles
shapeStable shape key for the selected materialhigh_barrel
colorPublic catalog color id after material and shape filteringwestlake-fn-barcelona-900-avalonbeachblend

Resolution rules

  • Parameter names are lowercase.
  • Values are trimmed and matched exactly.
  • Empty values are ignored.
  • Repeated params use the first non-empty value.
  • brand is resolved before material, shape, and color.
  • brand must be workspace-enabled and roofer-active; invalid brand values fall back to the RoofKit catalog.
  • Invalid material drops shape and color.
  • Invalid or incompatible shape drops color.
  • Invalid color drops only color.
  • Shingle selections do not require shape; any supplied shape value is ignored for shingles.
  • Invalid params never show homeowner-facing errors.

Examples

Standalone visualizer
https://roofkit.site/v/roofer-123?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend
Landing-specific visualizer
https://roofkit.site/v/roofer-123/l/storm-damage?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend
Button widget host page
https://contractor.example/roof-replacement?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend
Inline install host page
https://contractor.example/estimate?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend
Direct embed URL
https://roofkit.site/embed/v/roofer-123/l/storm-damage?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend
Custom domain landing
https://visualizer.contractor.example/l/storm-damage?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend

Implementation notes

For the button widget and the one-line inline script, add deep-link params to the contractor host page URL. RoofKit forwards those params into the iframe. A direct embed URL still accepts the same params.