Sending data

HTML forms

The standard HTML <form> element is everything you need. No JavaScript, no framework, no build step — just a form tag pointing at your endpoint.

The minimum

Any element with a name attribute inside the form gets sent. Use whatever input types and field names make sense for your form — they all show up in the email and dashboard exactly as you named them.

html
<form action="https://formto.email/f/YOUR_FORM_ID" method="POST">
  <input name="name" required />
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Send</button>
</form>

Redirect after submit

By default, after a successful submission the user lands on a generic formto.email confirmation page. To send them somewhere on your own site instead, add a hidden _redirect field with the URL.

html
<form action="https://formto.email/f/YOUR_FORM_ID" method="POST">
  <input type="hidden" name="_redirect" value="https://example.com/thanks" />
  <!-- your fields -->
</form>

We also accept _next as an alias, so existing Formspree-style forms work without changes.

Customize the email subject

The default subject is New submission: Form name. Override it per-form with a hidden _subject field:

html
<input type="hidden" name="_subject" value="New lead from the homepage" />

Reply directly to the submitter

If a field named email contains a valid address, we automatically set the email's Reply-To header to it — so hitting Reply in your inbox writes to the submitter, not to formto.email. To override that, add a hidden _replyto field.

html
<input type="hidden" name="_replyto" value="leads@yourcompany.com" />

Multi-value fields

Checkboxes and multi-selects with the same name are joined with commas in the email and dashboard. No special config needed.

html
<label><input type="checkbox" name="topics" value="Pricing" /> Pricing</label>
<label><input type="checkbox" name="topics" value="Support" /> Support</label>
<label><input type="checkbox" name="topics" value="Demo" /> Demo</label>
Good to know
Field names that start with an underscore (_) are reserved for control fields like _subject and _redirect. They never appear in the email body or in your dashboard. Don't use them for actual user data.