How to set up a request a quote form that brings in real jobs

Get a free quote

Websites start at $5,000. Quotes are free; a few details are enough.

Your email or phone number

Rather talk? Call (616) 580-0996.

A field-by-field plan for a quote request form: a short version and trade extras, placement on every service page, alerts tested with a real message, spam protection that doesn't punish people, and tracking which page each lead came from.

Written by Aiden (Web development and SEO, Business Jet Fuel). Updated November 8, 2026.

Prefer to talk? Call (616) 580-0996

A good request a quote form asks only what you need to call someone back, sits in the first screen of every service page, and sends an alert straight to the person who returns calls. It also blocks bots without making real customers solve puzzles, and it tells you which page the lead came from. If any of those parts is missing, you pay for the visit and lose the job anyway.

This is the deep dive behind the quote-form point in our contractor website checklist, and it fits any service business. The bigger picture of how a site turns visits into calls is on our lead generation websites page.

Ask only what you need to call back

The short version

Five fields cover most service businesses:

  • Name. One box. Splitting it into first and last name adds a field and gains nothing.
  • Phone or email. Ask for both, but require only one. Some people won’t give a phone number to a company they haven’t talked to yet.
  • ZIP code or town. It tells you right away whether the job is in your area.
  • What they need. A short choice list of your services. On a service page, set it to that service already.
  • Details. An optional box for anything else.

On phones, a few settings help. Put a visible label on every field, as the W3C’s form guidance asks, instead of gray hint text that disappears when someone starts typing. Use type="tel" on the phone field so phones show a number pad. Add the right autocomplete tokens (name, email, tel, postal-code) so the browser can fill them in. Keep it to one column, and skip “confirm your email” boxes.

Extras by trade

Extras earn their place only when the answer changes what you do next. Make every one optional:

  • Roofing, tree work, drywall repair, concrete: a photo upload. One picture of the damage or the tree can save a site visit.
  • Excavation and site work: the site address or nearest cross street, what’s on the lot now, and whether equipment can get in.
  • Painting: inside or outside, and roughly how many rooms.
  • Plumbing and HVAC: “Is this an emergency?” as a yes or no, so urgent calls jump the line.
  • Trucking and hauling: pickup and drop-off ZIP codes, what’s being moved, and the date.
  • Remodeling and larger projects: a timeline choice such as “As soon as possible”, “In the next few months” or “Just planning”.

Ask for a full street address only when you’re ready to visit. A ZIP code is enough to decide whether to call.

Photo uploads need two checks. Phone photos are large, so look up your form tool’s file size limit and allow more than one file. And use accept="image/*" on the upload field, which lets a phone offer the camera or the photo library.

If the list of extras grows long, split the form into two steps. The first step sends the lead with the short fields. The thank-you screen then offers “Add photos or details”. You get the lead even if they stop there.

Get a quote

Put the form where people decide

The form belongs in the first screen of each service page, next to a tap-to-call button, with that service already picked. Someone who just read about stump grinding shouldn’t have to find a contact page and explain it again.

Keep a form on the contact page too, but don’t make it the only one. Avoid three common mistakes:

  • A “Get a quote” button that opens a separate page with a long form
  • A pop-up that covers the page as soon as it loads
  • A form at the very bottom, below every photo and review

Send the alert to whoever calls back

Decide who answers new leads, then send the alert to that person and one backup. A lead that goes only to an inbox nobody checks on Saturday is a lead lost to whoever calls first.

Email alerts

Put every field in the alert, so nobody has to log in to read it. Put the service and town in the subject line. Set the reply-to address to the customer’s email, so answering takes one click.

Check the defaults on your form tool. On Wix, form alerts go to the site owner unless you change the recipients under Automations, in the Send an email action, as Wix’s help page explains. The same page warns that some email providers treat messages as spam when the sender and recipient are the same address.

Phone alerts

For a faster heads-up, send a copy to a text service or a team chat like Discord or Slack. Don’t count on carrier email-to-text addresses. AT&T ended its email-to-text service on June 17, 2025.

Keep a saved copy of every message in the form tool’s dashboard too, so one lost email never loses a lead. We set up these alerts, by email or Discord, as part of our website automations work.

Test it with a real message

Don’t call a form done until a real message has landed. Run this test:

  1. On your phone, switch off Wi-Fi so you test over mobile data.
  2. Open a service page and fill out the form with your own name and a normal-sounding note, such as “Checking our quote form from my phone.” Spam filters, including the AI filters some form tools use, can quietly hold a message that says “test, please ignore”, so if no alert arrives, check the form tool’s spam folder before deciding the form is broken.
  3. Use an email address that isn’t the one receiving the alerts.
  4. Time how long the alert takes, and check that every person on the list got it. Look in spam folders.
  5. Hit reply on the alert and make sure the reply goes to the “customer”.
  6. Check that the alert shows which page the form was sent from.
  7. Check what the thank-you screen says.

Repeat the test once a month and after every change to the site. Forms break quietly.

Get a quote

Stop spam without punishing real people

A hidden honeypot field

A honeypot is an extra field that people never see but simple bots fill in. If it comes back filled, the message is dropped. Done well, it costs real visitors nothing:

  • Hide it off-screen with CSS, not with a label that says “leave blank”.
  • Add tabindex="-1" and aria-hidden="true", so keyboard and screen reader users skip it.
  • Give it a name browsers won’t autofill, such as fax_extension rather than email2, and set autocomplete="off".
  • Show the normal thank-you screen when a bot fills it in, so the bot learns nothing.

Limits and server checks

Cap how many messages one connection can send in a few minutes. Our own form does this. Check the fields on the server too, not only in the browser: required fields present, a phone number that looks like a phone number, and a sensible length for the message box. Bots skip the browser, so browser-only checks stop people, not bots.

When something looks odd but might be real, such as a message with a link in it, flag it in the subject line rather than throwing it away. A false alarm costs a few seconds. A deleted real lead costs a job.

Skip the impossible puzzles

The W3C’s note on the inaccessibility of CAPTCHA explains that picture and audio puzzles lock out people with disabilities and work less well against bots over time. It lists honeypots and limits on repeat use among the alternatives. If you still need more, pick an invisible check that only challenges suspicious traffic.

Get a quote

Make the thank-you step useful

The screen after “Send” is part of the form. A good one does four things:

  • Confirms it went through. “Thanks, Dana. We got your request for stump grinding.”
  • Says what happens next. “We call back within one business day, from this number.” Promise only what you’ll keep.
  • Gives a way to reach you now. A tap-to-call button for anything urgent.
  • Offers an optional next step. Add photos, or look at recent jobs like theirs.

Don’t send people to the home page, and don’t show the confirmation as a tiny message that fades away. A separate thank-you page also makes tracking easier.

Know which page each lead came from

Add a hidden field that records the page address when the form is sent. Also save where the visitor first arrived and how they got there, such as Google, an ad or a link, and include both in the alert. Our own quote forms report the page each lead came from.

Tag the website link on your Google Business Profile with UTM parameters such as utm_source and utm_medium, so those visits show up as the profile and not as plain Google traffic.

In Google Analytics 4, enhanced measurement can record form_start and form_submit events. Before trusting them, send a test and confirm the event appears for your form. A thank-you page view marked as a key event is easier to verify. Once a month, count leads by page and by source, and put more work into the pages that bring jobs.

Get a quote

Want it built for you?

Most of this you can set up yourself. Start with the alert test, since a form that doesn’t deliver makes the rest pointless. If you’d rather have it built and tested for you, with forms on every service page, alerts that reach the right person and lead tracking, that’s the core of our lead generation websites. Tell us your services and who answers new leads today on our contact page.

Questions people ask

How many fields should a quote request form have?

As few as you need to call back and know if the job fits: name, a phone number or email, ZIP code or town, the service and an optional note. Add trade extras like photos only if they change what you do next, and make them optional.

Should I ask for a budget on my quote form?

Usually not on the first step. Many people don't know what the job should cost yet, and a required budget box makes them stop. If a price range really changes how you respond, make it an optional choice list, not a typed number.

Do I need a CAPTCHA on my quote form?

Most small business forms don't. A hidden honeypot field, a limit on repeat sends and checks on the server stop most bots without asking customers to solve a puzzle. If spam still gets through, add an invisible check that only challenges suspicious visitors.

Why am I not getting emails from my website form?

The usual causes are an alert set to the wrong address, the message landing in spam, or the form sending from the same address it sends to. Send a test from your phone, check the spam folder and the form tool's saved entries, and fix the recipient list.

Grand Rapids Drywall Repair home page on a laptop: the headline, call and quote buttons, and the free quote form
Grand Rapids Drywall Repair home page on a phone, with the call and quote bar at the bottom
Grand Rapids Drywall Repair's live site, built and hosted by us.

Recent work: Grand Rapids Drywall Repair

Grand Rapids Drywall Repair fixes holes, cracks, water damage and ceilings across West Michigan. We rebuilt its website around the repairs people search for, put a quote form in the first screen, and kept every old address working.

  • A page for each repair: holes, cracks, water damage, ceilings, texture matching and more
  • A quote form in the first screen that shows call and email if the form can't load
  • 14 town pages, 16 guides and 4 project pages, all listed in the site's own sitemap

Getting visits but not enough calls?

Send us your site's address, the services you want more of and who answers new inquiries today. We will reply with where we think leads are slipping away.

  1. We read your message and look at your current site, listings or profiles.
  2. We reply with a few questions, or a time to talk.
  3. You get a written proposal with one-time and monthly costs listed separately.

Tell us about your project

Websites start at $5,000. Quotes are free; a few details are enough.

Your email or phone number

Rather talk? Call (616) 580-0996.