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.ai/v/roofer-123?brand=westlake&material=lib-tiles&shape=high_barrel&color=westlake-fn-barcelona-900-avalonbeachblendhttps://roofkit.ai/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://roofkit.ai/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 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.