meetergo
A website contact form on the left, with lines running from each field to the decision it settles on the right: who answers, how fast, and whether a booking slot replaces the reply

Website Contact Forms: Design One That Gets Replies

|12 min read
Dominik Rapacki
Dominik Rapacki
Dominik Rapacki is the CEO and founder of meetergo.com, driving GDPR-compliant scheduling innovation. Featured in leading podcasts, he’s a recognized expert in SaaS, sales, and digital transformation

Most contact form advice optimises the wrong number. Cut the fields, the guidance goes, and submissions go up. That part is true. It is also how you end up with a queue of entries that say little more than a name, an email address and the word "interested".

Every question you took off the form still gets asked, just later, by a person writing a reply two days after the visitor's attention moved on. The form didn't get shorter; the work moved to the slowest part of your business. A website contact form earns its place when it produces an inquiry you can act on without a round trip: one where you already know who should answer and what the first reply says.

Key Takeaways

  • The output of a contact form is a routable inquiry, not a submission. A shorter form wins on submit rate and loses on reply time. Judge each field by the decision it settles for whoever responds.
  • Labels belong outside the field. Nielsen Norman Group's testing found placeholder-only inputs break proofreading and tab navigation, and some screen readers never announce the hint.
  • The confirmation screen is where most forms quit. A generic thank-you tells the visitor nothing. A named owner and a reply window you can hold does.
  • Spam filtering should cost the bot, not the visitor. Server-side checks and invisible challenges catch junk without putting a puzzle in front of someone with a motor impairment.
  • Route on submit, or the form is just an inbox. A webhook into a CRM, or a conditional route to the right owner, turns an entry into an answer.

Why most website contact forms underperform

The usual diagnosis is friction: too many fields, visitors give up. That explains abandonment. It does not explain the more common failure, a form that collects plenty and still produces nothing useful.

Three things tend to be wrong at once. The form is treated as a capture event rather than the opening move in a conversation. Fields get chosen by what is nice to know, not by what changes the reply. And nothing downstream is defined: no owner per category, no reply window, no route. The giveaway is the line almost every contact page carries, promising to get back to you as soon as possible. That is a commitment with no number in it, so nobody can be late and nobody is accountable.

Fixing the layout helps none of that. Decide what the form must produce, then design backwards.

How to design a website contact form, step by step

Step 1: Write the reply before you write the form

Write one sentence describing the inquiry you want in your inbox. Not the persona, the artefact. For a logistics consultancy: a prospective client with a sector, a rough timeframe and a budget band, assigned to the consultant covering that sector, answerable the same working day.

That sentence is the test every field has to pass. A field that does not move you closer to it costs you submissions for nothing. Anything in the sentence without a field behind it is something you plan to ask by email later, which is the delay you are trying to remove.

Step 2: Choose each field by the decision it settles

Fields are not free, so each needs a job. The question is not "would this be good to know" but "what do I do differently depending on the answer".

FieldName
The decision it settlesHow the reply opens
Keep it whenAlways
FieldEmail
The decision it settlesWhether you can reply at all
Keep it whenAlways
FieldWhat do you need help with (choice list)
The decision it settlesWhich person or team answers
Keep it whenWhenever more than one owner exists
FieldOrganisation
The decision it settlesWhether this is a business or an individual enquiry
Keep it whenB2B, where pricing or scope differs
FieldTimeframe
The decision it settlesWhether it joins the queue or today's list
Keep it whenWhere demand is uneven
FieldBudget band
The decision it settlesWhether a call is viable before anyone books one
Keep it whenHigher-ticket services
FieldPhone
The decision it settlesA faster channel when email stalls
Keep it whenOffer it, never require it
FieldHow did you hear about us
The decision it settlesNothing you cannot get from analytics
Keep it whenCut it

The choice list is the field most often missing and the one that pays for itself fastest, because it is the only one that makes routing possible. Three to six options in the visitor's words rather than your org chart, plus a fallback.

Then split required from optional honestly. A field is required only if a reply is impossible without it, which in practice means the email address and the category. The UK Government Digital Service puts the stricter version in its question pages pattern: only ask for information you need, and if you cannot say what you will do with an answer, do not ask. Mark optional fields optional rather than asterisking everything else.

An intake form with a short set of fields and a category choice list, as it appears to a website visitor

Step 3: Label, structure and validate so the form is usable

This is the step that gets skipped, and the one with published standards behind it.

Give every input a visible label, positioned outside the field and programmatically associated with it, as set out in the W3C's form labelling tutorial. Placeholder text is not a substitute. Nielsen Norman Group's analysis of placeholders in form fields documents what goes wrong when the hint lives inside the input: it vanishes on the first keystroke, so nobody can proofread a finished form, keyboard users tab past it unread, grey default text often fails contrast, and not every screen reader announces it. WCAG's labels or instructions criterion is the formal version.

Errors need the same care. WCAG's error identification criterion asks you to name the field in error and describe the problem in text, which rules out a red border as the only signal. The W3C's guidance on validating input covers the rest: check in the browser so corrections are immediate, and again on the server, because client-side rules can be bypassed. On longer forms add an error summary at the top linking to each failed field.

Two details cost nothing and get skipped anyway. Set autocomplete attributes on name, email and phone so browsers can fill them, and stop rejecting phone numbers and postcodes over formatting; strip the spaces yourself instead of making the visitor guess your preferred shape. Keep it single column, one question per line, since two-column forms read ambiguously under a screen reader and invite people to skip the right-hand side.

Step 4: Make the confirmation a commitment

A confirmation answers three things: did it arrive, what happens next, and when. Most answer only the first.

Thanks, we have your message and will be in touch soon, tells the visitor nothing they can plan around. Thanks Anna, your request is with the consultant who covers logistics, and you will have a reply by 6pm today, is a promise with a number in it. Pick a number you can keep on your worst Tuesday, not your best.

Send the same message by email as well as showing it on screen, because the on-screen version disappears the moment the visitor navigates away. Echoing the submitted answers back is worth the effort too, the same pattern behind sending the submitter a copy of their responses.

If the real next step is a conversation, stop promising a reply and offer the slot. A visitor who wanted a consultation does not want an email telling them an email is coming. That is the point of embedding a booking calendar, and adding a booking button next to the form covers visitors who never wanted to write a message at all.

Step 5: Route the inquiry on submit

An unrouted form is a shared inbox with extra steps, and shared inboxes are where inquiries go quiet.

Assign an owner to every option in your category list, plus a fallback owner for anything that does not match, because the fallback catches what would otherwise sit unclaimed. Push the submission into whatever system your team works in rather than leaving it in email. A webhook on submission into a CRM is the usual mechanism, and the CRM integration category shows the kind of destinations teams wire up.

Then measure the number you published. If the form promises a same-day reply and the median is two days, you choose between fixing the rota and changing the number on the page. Leaving both trains people not to believe you.

A routing builder showing conditional rules that send form answers to different owners and calendars

Step 6: Cut spam without punishing visitors

Bot traffic is why contact forms get buried under puzzles, and the puzzles land on exactly the people least able to solve them.

Cheap measures first. A honeypot field, hidden from sight and left empty by any human, catches unsophisticated bots and is invisible to everyone else. Server-side validation rejects submissions that never touched your form, and rate limiting by IP handles volume. None of it asks anything of a real visitor.

If you need a challenge on top, pick an invisible one rather than an image or audio puzzle, a long-standing accessibility barrier. meetergo's Friendly Captcha integration is one option, configured under Settings and Integrations with your own site key and API key, and described by meetergo as privacy-friendly bot protection for booking pages with EU hosting and no user interaction required. It needs a Friendly Captcha account of your own.

Resist blanket blocks on free or disposable email domains: they catch real prospects, and the bots that matter have working addresses. Unsolicited invitations arriving through booking tools are a different problem needing a different fix.

Three field sets to start from

Starting points, not templates. Each is built around a different reply.

  • Consultation request. Name, email, sector, timeframe, free-text context. The reply is a booking link, so the form's job is making sure the right consultant holds the slot.
  • Service or quote request. Add organisation, service category, budget band and an optional file upload. The reply is a price or a site visit, so the form has to scope without a phone call.
  • General or support enquiry. Name, email, category, message. The reply is an answer, so keep it short and route hard on the category.

Past about eight fields, split across pages. Feedback collection and anonymous submissions want their own design rather than a longer contact form.

Tools that help

Any form builder can render fields. The difference shows up on submit, where routing, validation and the handoff into scheduling either exist or don't. If you are still choosing, the trade-offs between a general online form creator and a scheduling-native one are worth reading, as is the walkthrough of building a form online.

meetergo sits on the scheduling side, with coverage across sales, consulting, recruiting, healthcare and other verticals rather than one of them. Its routing forms offer 25+ field types, including rating, signature, file upload, GPS location and a composite contact block, plus multi-page forms. Conditional logic runs client-side with AND/OR expressions and EQUALS, CONTAINS, BLANK and GREATER THAN operators, so a category answer can change the rest of the form without a page reload. Forms embed on your site, work as a shared link, or go out by email or SMS. Answers route respondents to the right team member, calendar or service, every submission can fire a webhook into your CRM, and data sits on EU servers.

Lead Capture Mode shows the form first and then sends the visitor into booking, the Step 4 pattern where a slot replaces a reply. Invitee questions attach a few qualifying fields to a booking instead of running a separate form. For requests that end in paperwork, e-signatures close the loop in the same flow.

PlanFree
Price€0 forever
PlanLight
Price€9.90/user/month
PlanSuite
Price€29.90/user/month
PlanPremium
Price€49.90/user/month

Prices exclude VAT (checked 2026-11-11); paid tiers include a 7-day trial. See meetergo's pricing page for the current matrix.

Two limits before you plan around it. Round robin, host selection and lead routing are not on Free or Light, so the Step 5 routing needs Suite or above. And the forms feature page documents field types and conditional logic but not field-level validation rules or a WCAG conformance level, so if accessibility is a procurement requirement, test the rendered form yourself with a keyboard and a screen reader rather than trusting a badge on a marketing page. That holds for every vendor here, meetergo included.

Common mistakes

  • Making the phone number required. The biggest deterrent on most contact forms, and the first reply is almost always an email anyway. Offer it, and say why you might call.
  • Asking how they heard about you. A question for your analytics, answered badly by visitors who cannot remember, paid for with a lower completion rate.
  • One free-text box and nothing else. It feels friendly and makes routing impossible, so a human reads every message to decide who owns it.
  • A red border as the only error signal. Colour alone fails the WCAG error identification requirement above and leaves colour-blind and screen reader users guessing which field broke.
  • Promising a reply as soon as possible. Nobody can be late against it, so nobody is accountable to it. Publish a number you can hold, even if it is three working days.

Ready to put routing behind your form? Start free with meetergo and build the first version in an afternoon. No credit card required.

100% GDPR compliant

Booking + video conferencing in one tool.

No downloads.No extra costs.Set up in 30 seconds.
Use for free

FAQs

How many fields should a website contact form have?
Four to six for a general enquiry, up to eight when you need scoping detail like budget or timeframe. The mix matters more than the count: one category field that enables routing beats three descriptive fields that do not change who answers.

Should a contact form ask for a phone number?
Include it, do not require it. Requiring one suppresses submissions from people who do not want a call, and you rarely phone before emailing. Add a short note saying when you would use it.

Is placeholder text enough instead of a label?
No. Placeholders disappear as soon as someone types, breaking proofreading and error recovery, and some screen readers do not announce them. Keep a visible label outside the field and use placeholders only for format examples you can afford to lose.

What should a contact form confirmation message say?
That the message arrived, who it went to, and when a reply will come. Give the reply window as a specific time or number of working days, send the same text by email, and echo back what was submitted.

How do I stop contact form spam without a CAPTCHA puzzle?
Combine a honeypot field, server-side validation and rate limiting, which together handle most automated traffic invisibly. If you still need a challenge, choose an invisible one rather than an image or audio test.

Do I need a consent checkbox on a contact form under GDPR?
Replying to an enquiry someone sent you is not usually the part that needs a separate tick. What matters is naming the purpose, collecting only what you need, and never bundling marketing consent into the same checkbox as the enquiry. meetergo's data privacy page sets out its own handling, and anything load-bearing should go past your own counsel rather than a blog post.

See meetergo more often on Google

One click marks meetergo as a preferred source. Our articles then show up more often in your search results, in AI Mode and in AI Overviews.

Make us preferred on Google

pp_cta_h2

pp_close_sub

pp_cmp_feature
pp_compare_label

pp_trial_line

Free

pp_for_free

€0

pp_per_month_user

Light

pp_for_light

€9.90

pp_per_month_user

pp_badge_suite
Suite

pp_for_suite

€29.90

pp_per_month_user

Premium

pp_for_premium

€49.90

pp_per_month_user

pp_cmp_booking_types
pp_cell_3_typespp_cell_unlimitedpp_cell_unlimitedpp_cell_unlimited
pp_cmp_talk_connect
pp_cell_connect_freepp_cell_unlimitedpp_cell_unlimitedpp_cell_with_recordingpp_cell_unlimitedpp_cell_with_recording
pp_cmp_talk_notesmeetergo ConnectZoomGoogle MeetMicrosoft Teams
pp_cell_notes_localpp_cell_10_recapspp_cell_unlimitedpp_cell_with_recordingpp_cell_unlimitedpp_cell_with_recording
pp_cmp_sell_crm
pp_cell_10_dealspp_cell_unlimitedpp_cell_crm_lightpp_cell_unlimitedpp_cell_crm_suitepp_cell_unlimitedpp_cell_crm_premium
pp_cmp_sell_billing
pp_cell_billing_freepp_cell_billing_lightpp_cell_unlimitedpp_cell_billing_paidpp_cell_unlimitedpp_cell_billing_paid
pp_cmp_sell_time
pp_cell_time_ownpp_cell_time_teampp_cell_time_managepp_cell_time_plan
pp_cmp_talk_whatsapp
pp_cmp_not_includedpp_cmp_not_includedpp_cmp_not_includedpp_cmp_included

No credit card required. Cancel anytime.