Skip to content

Add a Contact Form

This is the shortest path from a website page to a working html.contact inbox.

Create a form in html.contact. The form workspace shows a public form action URL like:

https://html.contact/f/hc_pub_REPLACE

Replace hc_pub_REPLACE with the public form key from your form. Public form keys start with hc_pub_ and are safe to put in frontend HTML.

Choose the inbox that should receive submissions. If html.contact asks you to verify that recipient, finish verification before expecting live email delivery.

Recipients, CC/BCC, and sender behavior are configured inside html.contact. Do not add hidden public form fields to route email.

Add the exact hostname that serves the page with the form.

Examples:

  • example.com
  • www.example.com
  • contact.example.com

If both example.com and www.example.com serve the form, add both.

Use your public endpoint as the form action and submit with method="POST". Every input you want to receive needs a name attribute.

<form action="https://html.contact/f/hc_pub_REPLACE" method="POST">
<label for="name">Name</label>
<input id="name" name="name" autocomplete="name" required>
<label for="email">Email</label>
<input id="email" name="email" type="email" autocomplete="email" required>
<label for="message">Message</label>
<textarea id="message" name="message" required></textarea>
<button type="submit">Send</button>
</form>

Publish the page and submit the form from the hostname you added. You should receive an email notification and see the submission in html.contact.

Testing from a different site can return domain_not_allowed. Testing with a raw server or curl request can return origin_missing unless direct submissions are enabled for that form.