SAVEFORM

Integrate · Last updated May 16, 2026

HTML form integration

The fastest way to use SaveForm.io: point a regular HTML form at your endpoint. Works on any static site — Jekyll, Hugo, Astro, plain HTML, or whatever — without shipping JavaScript.

AI assistant prompt

Wording targets native HTML forms — action URL, POST, hidden helpers like _honey / _redirect / _emailTo, and swapping in your real form ID.

Help me integrate SaveForm.io (https://www.saveform.io) into my site with a plain HTML form (no SPA, no mandatory JavaScript).

Please:
1. Ask me which visible fields I need (names matching what I want in the dashboard, input types like email/tel/date, required vs optional, textarea vs input, selects, radios, validation attributes).
2. Output a complete, accessible <form>: action="https://saveform.io/api/submit/YOUR_FORM_ID", method="POST", with meaningful labels and suitable input types.
3. Tell me explicitly to replace YOUR_FORM_ID with my real form ID from SaveForm → Dashboard → Forms (copy the form ID). Without my actual ID in the URL, submissions will not reach my workspace.
4. Mention optional hidden <input>s for SaveForm behaviour: spam honeypot, thank-you redirects, notification routing — wired as normal named fields.
5. Explain that native HTML POST expects the browser-driven flow (redirect / success-page); if I need JSON in JS, steer me to fetch instead.
6. Use this doc when helpful: https://www.saveform.io/docs/html-integration

SaveForm control fields (names starting with _): pass them as normal keys in the JSON or form body when useful:
• _honey — honeypot for spam filtering: https://www.saveform.io/docs/spam-protection
• _redirect and _redirect_mode — thank-you URL and whether to show SaveForm's success page first vs redirect immediately: https://www.saveform.io/docs/custom-redirects
• _emailTo — optional per-submit override for where the notification email is sent: https://www.saveform.io/docs/email-notifications
• Submitter auto-reply (acknowledgement email) is configured on the form in the dashboard with {{field}} placeholders, not ad-hoc payload fields: https://www.saveform.io/docs/auto-reply

Minimal example

Swap the action attribute for your SaveForm endpoint, keep method="POST", and add a few fields.

HTMLcontact-form.html
<form action="https://saveform.io/api/submit/YOUR_FORM_ID" method="POST">
  <input type="text"  name="name"    placeholder="Your name"  required />
  <input type="email" name="email"   placeholder="Your email" required />
  <textarea           name="message" placeholder="Your message" required></textarea>
  <button type="submit">Send message</button>
</form>
Optional SaveForm control fields use normal payload keys: _honey (spam honeypot), _redirect / _redirect_mode (redirect after submit), _emailTo (notification recipient). Submitter replies use dashboard auto-reply. Supported fields →

Replace YOUR_FORM_ID with the form ID from your dashboard.

Supported fields

Anything with a name attribute is captured. That includes text, email, number, tel, URL, date, textarea, select, checkboxes, radios, and hidden fields. Names that start with _ are treated as control fields — see the list below.

What happens on submit

By default SaveForm.io returns a clean success page with a countdown back to the page the form lived on. If the request comes from JavaScript (see fetch integration), the endpoint returns JSON instead.

Send HTML forms with SaveForm | SaveForm.io