Anticode Open builder

Setting up an online quote request process: form, estimate, final quote

"How much?" is the question most service businesses get first, and the least useful one to answer without details. A good online quote request process turns it into a structured request: a form that asks for the few inputs that actually move the price, optionally an instant estimate worked out from them, and a confirmed quote sent by you after checking. Each stage filters out the wrong enquiries and saves you a phone call.

Updated · By the Anticode team

Start with your pricing, not the form

Write down how you actually price a job. A window cleaner might use number of windows, storeys and whether conservatory roofs are included. A caterer: guests, courses, staff hours and travel distance. A translator: word count, language pair and turnaround. Most businesses find three to six inputs explain most of the price, and a handful of situations where they'd always want to see the job first.

Those inputs become the form. Anything that doesn't change the price or decide whether you take the job doesn't belong on it.

Stage one: the request form

Anticode's built-in contact form asks only for a name, email and message, which is fine for "describe your job" but leaves you chasing details. A quote form with its own fields is a custom form tied to a site function. It can carry up to 30 plain-text fields, posts to the server, and the thank-you page shows a heading and message you write.

  • Price inputs as numbers where you can: rooms, square metres, guests, hours.
  • Qualifiers: postcode or area, preferred dates, how they heard of you.
  • Contact details: name, email, phone.
  • A free-text box for anything unusual. People will tell you about the steep drive or the listed building here.

Forms can't take file uploads, so if you'd normally want photos of the job, say on the thank-you page that you'll ask for them by email.

Stage two: an instant estimate, if it helps

If your pricing really is arithmetic, a formula function can work out an estimate on the server when the visitor sends the form, and show it on the thank-you page. You write it in the builder's Console, under Functions, one labelled line at a time, along the lines of Total = rooms * 45 + 30. Later lines can use earlier ones, so a call-out charge, a surcharge and a total can each be a line. A *refuse when* rule, such as more than twelve rooms, can turn the form away with your own message ("For jobs this size, call us").

When to show an instant estimate
Show one whenSkip it when
Price follows a few inputs reliablyEvery job needs a site visit
People ask "roughly how much?" before anything elseYour prices vary week to week
You're happy for competitors to see the formula's resultAn estimate would be read as a binding price

The estimate appears after sending, not as they type: published pages run no scripts, so nothing is calculated live. If you want a calculator that updates on every keystroke, that's an app build, which runs in a sandbox and can send its enquiry through Anticode's form pipeline. If your pricing lives in a spreadsheet, a site function can instead call your own HTTPS endpoint (an Apps Script or automation) and show what it returns.

Stage three: the confirmed quote

  1. Receive the request. Each one is saved, sealed at rest, and can be emailed to you or sent to Slack, a Google Sheet, Airtable or HubSpot.
  2. Check it within a working day. Speed wins quotes. Look for anything the formula couldn't know: access, distance, an unusual material.
  3. Send the quote from your own tools, with what's included, what isn't, how long it's valid and how to accept. Anticode doesn't send quotes or invoices.
  4. Track the outcome in your sheet or CRM: quoted, accepted, declined, no reply.
  5. Follow up once after a few days if there's no answer.

What goes wrong

The estimate is treated as the price
Label it clearly on the thank-you page: "An estimate based on what you told us. We'll confirm a fixed price after checking."
Too many fields, too few requests
Remove any field that doesn't change the price. Fewer, better requests beat many incomplete ones.
A visitor types text where a number goes
The formula can't work it out, so the visitor is asked to check the form and nothing is stored. Make number fields obvious in their labels.
Quotes go out days later
Send requests to a channel you watch, not just an inbox you check weekly.

Limits

Anticode stores requests, runs a formula or calls your endpoint, shows the result on the thank-you page and passes the request to your connectors. It doesn't calculate as the visitor types on a published page, accept file uploads, send quotes, take deposits or track acceptance. See the quote request page and quote calculator app for the two build routes, and formula functions for the rules language.

Questions people ask

Can my website show an instant quote?

Yes, after the visitor sends the form: a formula works it out on the server and the thank-you page shows it. It doesn't update live as they type on a published page.

Is an online estimate a binding quote?

Treat it as an estimate and say so on the page. Confirm the final price yourself after checking the details.

Can customers attach photos to a quote request?

No, forms don't take file uploads. Ask for photos by email after the request arrives.