Your website: quote form and sign-in button
Your marketing site and your portal can work together. Under Settings, then Website you'll find copy-paste snippets that connect any website you own to your portal — WordPress, Squarespace, Wix, or plain HTML.
The quote request form
Paste the two-line embed code where you want the form. Visitors fill in their name, contact details, and what they need; the form matches a clean, neutral style so it sits comfortably on your site.
<div data-codex-quote="YOUR_CODE"></div>
<script async src="https://contractorcodex.com/embed.js"></script>
There's also a hosted page: the same form on a page we host, for places that only take a link — a social profile, an email signature, a QR code on the truck.
Where requests go: the leads pipeline
Every submission lands in Leads at /admin/leads and you get a notification and an email. The page is a simple pipeline: New, Contacted, Quoted, then Won or Lost. Website submissions start in New; you can also add leads yourself (a phone call, a referral, a walk-in) with the Add a lead form, so the whole pipeline lives in one place.
On each lead you can:
- Mark contacted once you've reached out.
- Draft quote: creates the client record (or links the existing client with that email), moves the lead to Quoted, and drops you into the quote composer with that client already picked. When the client later signs a quote, the lead flips to Won by itself. Won is earned by a signature or an explicit accept, never by dragging a card.
- Accept as client: creates or links the client record and marks the lead won directly, for work that doesn't start with a quote.
- Set a next action: assign the lead to a teammate, note what happens next and when, and estimate the job's value. Overdue next actions and leads going cold show up in your Action Center, and the open pipeline's estimated value totals at the top of the page.
- Mark lost, with an optional reason. A lost lead can go back to New if they come around.
Accepting a lead or drafting a quote from it are the only ways a website submission ever becomes a client. Nothing is created automatically from raw internet traffic, and website submissions never trigger AI on their own.
Spam protection, built in
The form quietly filters bots: instant submissions are rejected, hidden trap fields catch crawlers, repeat submissions collapse into one, and per-visitor and per-day limits cap volume. Suspicious submissions are kept in a separate spam view rather than deleted, so a real one caught by mistake is one click from your inbox.
The client sign-in button
A second snippet gives you a styled button existing clients can use to reach their portal (invoices, projects, documents) straight from your website. It's a plain link, so it works anywhere HTML does.
Managing the connection
From /admin/settings/website you can also:
- Turn the form off — the embed and hosted page show "not available" and nothing can be submitted.
- Set a custom headline and intro for the form.
- Get a new embed code — this invalidates the code already pasted on your site, so you'd replace it there too. Useful if a code ever leaks somewhere you didn't intend.
