Your forms
Form fields
Submits.dev stores every field your form sends, using the field's name as the label.
Name your fields however you like: email, message, company,
budget. New field names show up in your email and as new columns in your sheet.
Special fields
Fields that start with an underscore change how a submission is handled. We never store them as data.
| Field | What it does |
|---|---|
_gotcha | A honeypot. Hide it and leave it empty. People can't see it, so if it has a value, a bot filled it in and we drop the post without telling the bot. |
_honeypot | The same as _gotcha. |
_redirect | Where the visitor goes after submitting. Must be an http or https URL on the same site as the form, or on the site of your saved redirect URL. |
_subject | The subject line of your notification email, up to 150 characters. |
_replyto | The Reply-To address on your notification email, so you can answer the visitor with one click. |
Without _replyto, we use a field named email or reply_to for Reply-To.
Any other field that starts with an underscore is dropped.
Don't name a field _method. Rails reads it as an instruction, and the post fails with a 404.
After the visitor submits
The visitor lands on the first of these that is set:
- The
_redirectfield in the form, if it points back to the site the form is on, or to the site of your saved redirect URL. We check this against the address the visitor's browser reports, so a page elsewhere can't use your form to bounce people to a site you don't control.www.doesn't matter. - The custom redirect URL on your form's Settings page.
- Our thank-you page, which names your form and links back to the page they came from.
No file uploads
Submits.dev doesn't accept files and never will. Leave <input type="file"> out
of your form. If a visitor attaches a file anyway, the whole post is rejected and nothing is saved.
To collect documents, ask for a link to a shared file instead.
What the form can send
Normal forms work as they are, up to 32 KB and
100 fields. A form with
enctype="text/plain" is rejected, because that format can't be read reliably.
To send from JavaScript instead, see Sending with JavaScript.