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.
| Param | Value | Example |
|---|---|---|
| brand | Optional color-library slug | westlake |
| material | Public catalog material id | lib-tiles |
| shape | Stable shape key for the selected material | high_barrel |
| color | Public catalog color id after material and shape filtering | westlake-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
https://roofkit.site/v/roofer-123?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendhttps://roofkit.site/v/roofer-123/l/storm-damage?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendhttps://contractor.example/roof-replacement?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendhttps://contractor.example/estimate?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendhttps://roofkit.site/embed/v/roofer-123/l/storm-damage?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendhttps://visualizer.contractor.example/l/storm-damage?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendImplementation 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.