How do I put a quote form on my website?
If you (or whoever built your website) can work with React, you can take quote requests on your own site and have them arrive in SnowTracker as leads — no copy-pasting from a contact-form inbox. This one’s written for the developer.
Create a publishable key
Settings → Publishable Keys → New publishable key. Name it, keep Live mode, and restrict Allowed origins to the domains your site runs on (test-mode keys also work from localhost). The key needs the quotes:create scope — on by default. Publishable keys are safe in client-side code; that’s what they’re for.
Install the SDK
npm install @snowtrackerpro/sdk-forms-react @snowtrackerpro/sdk-core — the forms package is a headless React hook: it brings the form’s schema, validation, and submission, and you keep full control of the markup and styling. No iframe, nothing that fights your site’s design.
Wire the hook to your form
Create a client with your key, then useSnowTrackerForm with kind “quote” or “contact”. The hook loads your tenant’s default form — full name, email, phone, property address, driveway surface, urgency, how-did-you-hear, message — and you render each field however you like, calling submit() at the end. Fields can be hidden, relabelled, or extended per form.
Mind the invariants and the spam traps
Every lead needs a name plus an email or phone, and quote forms require the property address. Render the hidden honeypot field the schema includes (bots fill it, humans never see it), and if you’ve enabled CAPTCHA the schema carries the site key for Turnstile.
Submissions become leads instantly
A quote submission with an address lands in the New column of your Leads board wearing the Website pill, everything the visitor typed attached. Contact-form submissions without an address start in Unqualified until you attach a property. From there it’s the normal pipeline — see “How do leads work?”.
Full API docs live in the package READMEs on npm under @snowtrackerpro. Prefer plain JavaScript? @snowtrackerpro/sdk-core alone gives you getFormSchema, validateLead, and submitLead.
