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.ai/v/roofer-123?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblend
Landing-specific visualizer
https://roofkit.ai/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 iframe source
https://roofkit.ai/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 embeds, add the deep-link params to the contractor host page URL for the button widget, or directly to the iframe URL for inline installs. RoofKit forwards the same supported params into the embedded visualizer.