freewebsitebuilder.app

PRACTICAL GUIDE

Build a contact form that actually sends enquiries

A form is complete when the intended message reaches the intended recipient and the visitor sees the correct result. A nicely styled button and a success animation do not prove that delivery works.

Editorial guidance from Free Website Builder. Product details can change.

We may earn a commission if you purchase through our links.

Ask for the minimum useful information

Start with a name, reply address, and message. Add a date or project type only when it changes how you respond. Use persistent labels rather than relying only on placeholder text. Explain which fields are required and preserve the visitor’s work if validation fails. Do not collect sensitive details simply because a form builder makes it easy.

Choose where messages go

Decide whether submissions should reach an email inbox, a CRM, a database, or more than one destination. Select the service before calling the feature connected. Keep service credentials out of browser-delivered code. If you use an email service, follow its sender-verification instructions and test with the actual recipient address.

Make the confirmation truthful

Show success only when the submission has been accepted by the configured system. If email delivery happens asynchronously, avoid promising that a human has already received or read it. For failures, give a useful message and a way to retry. A fallback contact address can help when the service is unavailable.

Handle abuse without blocking everyone

Public forms can receive automated submissions. Apply appropriate server-side validation and limits, and consider a low-friction spam measure. Do not rely only on checks in the browser. Test legitimate messages containing punctuation, longer names, and non-English text so useful safeguards do not reject normal customers.

Run realistic tests

Try an invalid address, missing required fields, a double click, and a slow connection. Check inbox and spam folders. Verify that the reply address is usable and the message includes enough context to identify the originating page. Review who can access stored submissions and how long you need to retain them.

Map the whole submission journey

A contact form has several stages: the visitor enters information, the browser checks it, the server accepts it, a destination stores or receives it, and the visitor sees an appropriate response. Failure at any stage can make the form useless even when the design looks finished. Draw that sequence before choosing animations or button colours.

For a fictional design studio, the form needs a name, email, project description, and optional timing. The destination is a designated enquiry inbox or CRM. The studio should know which system owns the record and how someone follows up. Sending a notification to an unmonitored address does not complete the business workflow.

Choose fields by their operational value

Ask what changes when each answer is supplied. If project type determines which team responds, it may be useful. If a phone number is never used, requiring it adds friction without helping. Keep detailed qualification for a later conversation unless the initial information is genuinely necessary.

Use visible labels and explain required fields. A placeholder disappears while the visitor types and should not be the only label. Accept reasonable variations in names and addresses. Do not reject a legitimate customer simply because their name contains punctuation or their message uses a language other than English.

FieldInitial roleValidation approach
NameAddress the replyAllow realistic length and characters
EmailSend a responseCheck format without claiming deliverability
MessageUnderstand the requestRequire useful content with a sensible limit
ServiceRoute the enquiry if neededOffer a relevant set plus a flexible option
TimingPrioritise when usefulAllow uncertainty rather than forcing a false date

Decide what success actually means

A success message should reflect the state reached. If the system has accepted and stored the enquiry, say that the enquiry was received by the system. Do not promise that a person has read it. If the business commits to a response period, ensure the team can maintain that promise and explain any business-hour condition.

Keep the form content while submitting and after recoverable errors. Disable duplicate submission appropriately, but do not leave the button permanently disabled after failure. A retry should not create multiple independent records when the first attempt succeeded but the browser missed the response. Use a stable submission identifier or another supported duplicate-handling approach where appropriate.

ADAPT THIS PROMPT

Connect this enquiry form to [selected destination]. Validate on the server as well as in the browser. Preserve entered text after failure. Store or accept the submission before showing success. Handle repeated clicks safely. Keep credentials server-side. Provide tests for invalid input, service failure, duplicate submission, and a valid message that reaches the destination.

Set up email delivery deliberately

Use the email service’s supported sender configuration. A form should not impersonate the visitor as the sender if that conflicts with the service’s authentication requirements. A common pattern is an approved business sender with the visitor’s address available for replies, implemented according to the chosen provider’s instructions.

Test the actual recipient inbox and spam folder. Include the page or service context in the message so the team knows what the visitor was viewing. Avoid placing unnecessary sensitive details in the subject line. If a notification fails but the submission is safely stored, staff need a way to discover and respond to that record.

Keep API credentials and service tokens out of public source code. Ask the builder to identify where secrets are configured and which operations run on the server. A hidden form field is not a secure place for a credential. Review access to stored submissions as well as access to the sending service.

Handle abuse proportionately

Public forms can receive automated junk. Use server-side input checks and reasonable limits, and consider an accessible anti-abuse measure suitable to the risk. Do not rely solely on browser validation, because requests can be sent without using the visible form.

Test safeguards with ordinary legitimate messages. A strict filter that blocks URLs may reject someone sharing a project brief. A short character limit may cut off a useful request. Inspect false positives and provide a fallback contact route. The goal is a usable enquiry path with appropriate protection, not a form that blocks everyone equally.

Use a troubleshooting table rather than random changes

SymptomInspectFocused next step
Button does nothingValidation and browser errorsIdentify the field or script blocking submission
Success appears, no record existsServer response handlingShow success only after acceptance
Record exists, email missingDelivery service and recipient filtersCheck sender verification and delivery status
Duplicate enquiriesRetry and repeated-click handlingMake repeated processing safe
Replies go to the wrong addressSender and reply configurationVerify the reply route with a test
Long messages vanish after errorForm state handlingPreserve input on recoverable failure

Change one layer at a time. Redesigning the form does not fix an unverified sender. Changing the email provider does not fix an application that never sends a request. Record the exact failure and the evidence that distinguishes the next likely cause.

Test a realistic set of submissions

Use a valid message, a missing required field, an invalid address format, a long but acceptable message, a double click, and a temporary service failure. Try the form on a phone and with keyboard navigation. Ensure error messages are associated with the relevant fields and can be understood without relying only on colour.

Check the complete reply loop. A received notification is useful only if the team can respond to the visitor. If the site has multiple enquiry pages, verify that each one carries the correct context. Use labelled test data so it can be removed without confusing real leads.

Maintain the form after launch

Assign an owner to check delivery periodically and after changing domains, service credentials, or recipient addresses. Review who can access stored messages and how long the business needs them. Keep the collection purpose clear to visitors and avoid accumulating information without an operational need.

Track successful submissions separately from button clicks. If form starts rise but accepted submissions fall, inspect errors and friction before rewriting the entire page. A reliable contact form is a small system with a clear destination, honest states, and a person responsible for the enquiries it receives.

Your starting prompt

Use this as an editable brief. Replace the brackets with your own details and review the result before connecting real services.

EDIT THE BRACKETS BEFORE YOU BUILD

Build an enquiry form collecting [fields]. Connect it to [chosen service] using server-side credentials. Include accessible labels, server-side validation, duplicate-submit protection, and clear success and failure states. Preserve entered text after errors. Do not show a success message when submission fails. Ask for missing configuration and provide a realistic test checklist.

A complete enquiry test

  • Send a new message from a real test address.
  • Verify delivery at the intended destination.
  • Reply to the message and confirm the reply reaches the sender.
  • Test invalid input and service failure.
  • Check repeated submissions do not create confusing duplicates.

Ready for a first draft?

Choose a builder, start with the essentials, and check the result one step at a time.