HTML contact form
A contact form in plain HTML. The browser posts it. You do not add a backend, a framework or a font.
What you are copying
This starter is a contact form in plain HTML. The browser sends it with a normal POST. There is no fetch call, no framework and no build step.
Paste the markup into a static page, a Webflow embed, or any place that accepts a form element. The page does not need its own server.
The form asks for a name, an email address and a message. Phone is optional. Those words are also the field names.
Telegram prints each field name in bold above the answer. Short names such as name, email and message stay readable on a phone.
Nothing here collects a file, a payment or a score of Formgong. It is only a way for a visitor to reach you.
How the post works
The form action is your Formgong origin plus /submit, with method POST. A hidden access_key names the form.
The key is public and belongs in the page. It lets a visitor send a submission. It cannot change recipients or turn a webhook on.
A hidden _lang field carries the page language, for example en. Formgong uses it for the thank-you page and for error text.
It does not translate the visitor's message. Write the visible labels in the language of the page, and keep the field names in English.
The honeypot is an input named botcheck. It sits off screen, with tabindex -1 and autocomplete off. People leave it empty.
A submission that fills botcheck is stored as spam and is not delivered. The visitor still sees a normal success path.
Turnstile is optional. The snippet leaves the widget inside a comment. There is no site key in this template.
If you turn Turnstile on for the form, remove the comment marks and paste your own site key. Until then the lines do nothing.
Without a hidden _redirect, Formgong shows its own thank-you page. The extra snippet sets _redirect to an https address.
Replace https://example.com/thanks with a page you control. A relative path is not accepted.
After you paste it
Create a form in the dashboard, or use the button on this page, and replace fk_your_access_key if you copied the placeholder.
Connect Telegram in the form settings when you want the message on your phone. On the free plan, email is a daily digest and Telegram is immediate.
Send a test from the published page. A file opened as file:// is not a reliable test of the live form.
The free plan keeps submissions for 30 days. Paid plans can keep them longer. Formgong stores them in the EU.
The free plan includes 300 submissions a month. Spam does not count toward that number.
If you need a clinic, job or quote form, use an industry template further down this site. This page is only the simple contact layout.
Questions about the service go to support@formgong.com. Formgong is the operator of the service. This template does not name any other company as the operator.
Preview
Form code
<form action="https://formgong.com/submit" method="POST" style="position:relative"> <input type="hidden" name="access_key" value="fk_your_access_key"> <input type="hidden" name="_lang" value="en"> <label>Name <input type="text" name="name" autocomplete="name" required></label> <label>Email <input type="email" name="email" autocomplete="email" required></label> <label>Phone <input type="tel" name="phone" autocomplete="tel"></label> <label>Message <textarea name="message" required></textarea></label> <div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)"> <label>Leave this field empty <input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label> </div> <!-- Optional. Turn Turnstile on for this form, then remove these comment marks and paste your site key. <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY" data-language="en"></div> --> <button type="submit">Send</button> </form>
Same form with a thank-you redirect
<form action="https://formgong.com/submit" method="POST" style="position:relative"> <input type="hidden" name="access_key" value="fk_your_access_key"> <input type="hidden" name="_lang" value="en"> <input type="hidden" name="_redirect" value="https://example.com/thanks"> <label>Name <input type="text" name="name" autocomplete="name" required></label> <label>Email <input type="email" name="email" autocomplete="email" required></label> <label>Phone <input type="tel" name="phone" autocomplete="tel"></label> <label>Message <textarea name="message" required></textarea></label> <div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)"> <label>Leave this field empty <input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label> </div> <!-- Optional. Turn Turnstile on for this form, then remove these comment marks and paste your site key. <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> <div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY" data-language="en"></div> --> <button type="submit">Send</button> </form>
Questions and answers
Does this form need JavaScript?
No. The browser posts the form on its own. The AJAX starter is the one that stays on the page with fetch.
Where do messages go?
To the Formgong inbox, and to email and Telegram when you connect them. Write to support@formgong.com if the service itself is the question.
Can I add more fields?
Yes. Add inputs with short names, such as city. Telegram prints that name above the answer. Do not rename access_key or botcheck.
Does the preview send a real message?
No. The preview on this page only shows a note. Nothing is posted until you put the snippet on your own site with a real access key.