HTML forms
No JavaScriptAn existing form needs two attributes changed. Everything else, including validation and the thank-you page, is handled for you.
Two attributes
Point action at your endpoint and set method="POST". That is the whole integration.
<form action="https://formivo.faizyab.me/api/f/YOUR_FORM_ID" method="POST">
<label for="name">Name</label>
<input id="name" name="name" type="text" required />
<label for="email">Email</label>
<input id="email" name="email" type="email" required />
<label for="message">Message</label>
<textarea id="message" name="message" rows="5"></textarea>
<button type="submit">Send</button>
</form>Each name attribute becomes a key in the stored submission, so name fields the way you want to read them later.
Thank-you page and honeypot
Without JavaScript, the visitor lands on a Formivo thank-you page. Add _redirect to send them back to your own site instead.
<form action="https://formivo.faizyab.me/api/f/YOUR_FORM_ID" method="POST">
<input type="text" name="name" required />
<input type="email" name="email" required />
<!-- Send the visitor here after a successful submission -->
<input type="hidden" name="_redirect" value="https://your-site.com/thank-you" />
<!-- Honeypot: real people never fill this, bots usually do -->
<div aria-hidden="true" style="position:absolute;left:-9999px">
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off" />
</div>
<button type="submit">Send</button>
</form>Honeypot fields are free protection
_gotcha field that is hidden from people but visible to bots catches a large share of automated submissions before they reach your dashboard.Attach extra context
A hidden metadata field is stored as structured context, which is useful for knowing where a lead came from.
<input type="hidden" name="metadata" value='{"page":"/contact","variant":"hero"}' />Keep the form accessible
Always pair inputs with label elements, keep the native required attributes, and leave the built-in browser validation on. Formivo rejects invalid payloads, but the visitor should never have to reach the server to find out a field is missing.
What is sent
A plain HTML form submits application/x-www-form-urlencoded by default. Add enctype="multipart/form-data" and the endpoint accepts that too, but file parts are not stored.
No file uploads