What does a good contact form do?
A good contact form asks only for what you need to reply, works on a phone with one thumb, tells people how their data will be used, stops bots without blocking humans, and delivers every submission to a place where it cannot be lost.
For most Bangkok businesses that means three to five fields, a short PDPA notice with a link to your privacy policy, invisible spam checks, and a copy of each enquiry saved in the website's database as well as sent by email.
The design side is only half of it. Plenty of forms look fine and still lose leads, because the email silently lands in spam or the mail server stops sending after a hosting change. Styles shift from year to year, and our round-up of web design trends covers the visual side, but the basics below decide whether an enquiry actually reaches you.
Form, WhatsApp or LINE?
In Thailand many customers would rather tap a LINE or WhatsApp button than fill in a form. Chat is fast and personal, and it suits simple questions: "Is there a table for four tonight?", "Do you deliver to Nonthaburi?". A form suits enquiries where you need structured details before you can answer, such as a quote request, a group booking, a property viewing or a corporate order, and it leaves a written record your team can pass around.
Most sites should offer both, side by side, and let the visitor choose. A few rules of thumb:
- Retail, restaurants, salons: put chat first; keep a short form for people who prefer email.
- Clinics and hotels: chat for quick questions, a form for bookings that need dates and details.
- B2B and foreign-run firms: put the form first. Buyers often need to forward the enquiry internally, and procurement teams expect email. Our guide to B2B website lead generation covers request-for-quote forms in detail.
Whichever you lead with, remember that chat enquiries live on someone's phone. If that person leaves, so can the conversation history.
Fields, labels and errors
Every extra field costs you some enquiries, so each one has to earn its place. Name, a way to reply (email or phone) and a message box cover most service businesses. Add a dropdown for the service or a date field only if it changes how you answer. "Company size", "budget" and "how did you hear about us" can usually wait for the first conversation.
- Three to five fieldsName, reply channel and message first; add more only if it changes your answer.
- Visible labelsLabels sit above each field and stay visible; placeholder text is not a label.
- Right input typesEmail and tel input types bring up the right phone keyboard and allow autofill.
- Flexible phone formatAccept a leading 0, country codes, spaces and dashes; do not reject valid numbers.
- Clear errorsSay what is wrong next to the field, in plain words, and keep what the visitor typed.
- Keyboard and screen readerEvery field reachable by Tab, errors announced, focus moved to the first problem.
- Large tap targetsFields and the submit button are easy to hit on a small phone.
Thai details that trip forms up
Thai mobile numbers are usually written as ten digits starting with 0, while foreign visitors type the Thailand country code or their own. Accept spaces, dashes and plus signs rather than rejecting them. Use one name field instead of forcing "first" and "last", since Thai customers often go by a nickname and foreign names do not always split neatly. On a bilingual site, write labels and error messages natively in each language, not as a Thai line under an English one.
The W3C forms tutorial is a good reference for labels, grouping and error handling that also work with screen readers.
PDPA on your form
A contact form collects personal data, so Thailand's Personal Data Protection Act B.E. 2562 (2019), fully in force since 1 June 2022, applies to it. The Act expects you to tell people what you collect, why, and how long you keep it at or before the point of collection. On a form that usually takes one short line under the submit button, for example: "We use these details to reply to your enquiry. See our privacy policy." with a link to the full notice.
Keep marketing consent separate
Replying to someone who asked you a question is one purpose. Adding them to a newsletter or promotions list is another. If you want marketing permission, ask for it with its own checkbox, unticked by default, and do not make it a condition of sending the form. Record what the person agreed to and when, so you can show it later and honour a withdrawal.
What not to collect
Avoid asking for ID card numbers, dates of birth or health details in a general enquiry form. Clinics in particular should keep medical detail out of the first message and handle it in a proper consultation channel. This article is practical guidance, not legal advice; for your own wording, check the Act and the PDPC's guidance or ask a Thai lawyer.
How do you stop form spam without losing people?
Every public form attracts bots. The aim is to stop them without making a real customer solve a puzzle on a slow phone connection. Layer a few quiet checks first and keep a visible challenge as the last resort.
| Method | Visitor effort | Stops | Watch out for |
|---|---|---|---|
| Honeypot field | None | Simple bots | Hide it properly so screen readers skip it |
| Time trap | None | Scripted submissions | Allow for autofill, which is fast |
| Rate limit | None | Floods from one source | Shared office or mobile networks |
| Keyword filter | None | Obvious link spam | False positives on real messages |
| CAPTCHA service | Low to medium | Most automated spam | Third-party script, data sharing, PDPA notice |
A honeypot is a hidden field that people never see but bots fill in. A time trap rejects forms submitted faster than a human could type. Rate limiting caps how many submissions one address can send in a short period. Only if spam still gets through do you add a CAPTCHA service such as Cloudflare Turnstile or Google reCAPTCHA. These work well, but they load a third-party script and send visitor data to that provider, so mention them in your privacy notice and cookie settings.
How do you make sure no enquiry is lost?
The most expensive form problem is invisible: submissions that never arrive. It happens more often than owners expect. A plugin update breaks sending, the hosting company blocks outgoing mail, or messages from the website land in the spam folder because the domain has no sender authentication.
Three safeguards
- Store every submission in the database. The website should save each enquiry before it tries to email it. If the email fails, the lead is still there in the admin area.
- Send through an authenticated mail service. Use SMTP or a transactional email service on your own domain, with SPF, DKIM and DMARC email records set up, instead of the server's default mail function.
- Test every month. Submit the form yourself, in each language, and confirm the message arrives in the right inbox. Put a reminder in the calendar; nobody notices a silent failure otherwise.
Also send the notification to a shared address rather than one person's inbox, so enquiries are not stuck when someone is on leave. When we handle website development for a client, forms are built this way from the start: stored, authenticated and tested before launch.
After the submit
What happens in the second after someone presses send shapes their trust. Show a clear confirmation page, not just a small green line that is easy to miss, and say what happens next in honest terms: "Thank you, we have your message and will reply by email or phone." Do not promise a reply time you cannot keep. A dedicated confirmation page also gives you a simple way to count submissions in your analytics.
An automatic email to the sender, with a copy of what they wrote, reassures them the message went through. Keep it plain and short so it does not look like marketing.
Where forms matter most
Forms rarely live alone. Place a short version where decisions are made: near the end of your homepage layout, on service pages, and as the last stop in the menu, which our guide to website navigation best practices covers. Hospitality shows the range well: a restaurant usually needs only a short reservation form, as our restaurant website guide explains, while hotels need longer enquiry forms for groups and events, as the sites in our guide to hotel website design examples show.
If you are budgeting for a new site, forms and enquiry flows are part of our Business package, from THB 30,000 as an indicative starting price, and our page on website design cost lists what each package includes.
More on web design and UX
Sources
- W3C WAI: Forms Tutorial
- Ministry of Digital Economy and Society: Personal Data Protection Act B.E. 2562 (2019)
- Cloudflare Turnstile documentation
- Google reCAPTCHA documentation

