SheetLink Forms vs FormSubmit
FormSubmit is the simplest thing that works: point your form at an email-based URL, confirm the address, and submissions arrive in your inbox - free, no account. SheetLink Forms is for the moment that stops being enough: when submissions are rows you sort, filter, and attribute, not messages you read.
SheetLink Forms
SheetLink Forms is a hosted endpoint that writes form submissions into a Google Sheet or an Excel Online table. Each form gets a permanent URL at sheetlinkforms.com/f/your-token accepting HTML posts, JSON, and platform webhooks; rows append under your header row via the Google Sheets API or Microsoft Graph, with automatic column mapping, retries at 5, 30, and 120 minutes, and a delivery log in the dashboard. Screening layers a honeypot, rate limits, an origin allowlist, content heuristics with a strictness dial, a timing signal, and optional Cloudflare Turnstile - and quarantines suspicious submissions for one-click review rather than dropping them. The optional embed captures UTMs and ad click IDs and attaches them to each row. Free during beta (invite required), no per-submission fees, ever. See how it works or the live demo.
FormSubmit
FormSubmit forwards HTML form submissions to your email with "NO REGISTRATION REQUIRED": you point your form's action at their URL, confirm your email address once, and submissions arrive in your inbox, per formsubmit.co. Setup is free, and the docs promise "unlimited submissions from unlimited forms". Configuration happens through hidden fields in your markup: _next for a custom thank-you redirect, _subject, _cc, _replyto, _autoresponse for an instant copy to the submitter, _webhook for real-time forwarding, and _template to pick one of three email layouts. reCAPTCHA is on by default (disable with _captcha="false"), a _blacklist field filters comma-separated spam phrases, file uploads work via multipart up to a 10 MB total, and a random-string alias can mask your address from bots. The service reports over 6 million submissions processed across more than 400,000 websites. For a free tool, it is remarkably complete.
Side by side
| SheetLink Forms | FormSubmit | |
|---|---|---|
| Setup and account | Sign up (free during beta, invite required), connect a sheet or Excel table, point your form at your endpoint. More steps than FormSubmit - the account is where the dashboard, quarantine queue, and delivery log live. | FormSubmit wins on friction. No registration at all: put their URL in your form action, confirm your email once, done. For getting a contact form working in five minutes, nothing here beats it. |
| Spreadsheet delivery | The whole product: rows append into your chosen Google Sheet or Excel Online table via the official APIs, headers seed on empty sheets, and field names map to columns case/punctuation insensitively. | None - the destination is your inbox. The _webhook field can forward submissions to a URL you control, per their docs, so spreadsheet delivery is possible if you build and host the receiving end yourself. |
| Spam handling | Invisible layers first - honeypot, per-form/per-IP rate limits, origin allowlist, content heuristics with a strictness dial, timing signal - with Turnstile optional, and quarantine review so nothing legitimate is silently lost. | reCAPTCHA is enabled by default - their docs recommend keeping it on "in order to avoid some technical limitations" - which puts a visible challenge in front of every visitor, plus a _blacklist of up to about 20 phrases you maintain yourself, per their documentation. |
| Ad attribution and click IDs | The sl.js embed captures utm_* plus gclid, wbraid, gbraid, fbclid, and msclkid from the landing URL, persists them across pages, and writes them into the row with the lead. | Not a documented feature. You could add hidden fields filled by your own script, but the values would arrive interleaved in notification emails rather than as columns you can sort. |
| Pricing model | Free during beta (invite required); planned post-beta free tier ~50 submissions/month and an unmetered paid plan ~$15-19/month. No per-submission fees, ever. | Free, with unlimited submissions and unlimited forms, per their documentation. On price alone, FormSubmit cannot be beaten. |
| File uploads | Not supported yet - multipart posts are accepted but file parts are dropped. | FormSubmit wins here. Multipart uploads work with enctype="multipart/form-data", up to a 10 MB combined size per submission, per their docs. |
| Email notifications and autoresponse | None currently - the row landing in your sheet is the signal, and quarantined items wait in the dashboard queue. | FormSubmit wins here by definition - email delivery is the product, with _cc for extra recipients, _autoresponse for an instant reply to the submitter, and three email templates. |
| Delivery and reliability | Asynchronous worker direct to the Sheets API / Microsoft Graph, retries at 5 min / 30 min / 2 h, a per-submission delivery log, and a formula-injection guard on cell values. If delivery fails, you can see it and it retries. | Submissions ride email: your mail provider is the pipeline, the archive, and the search index. With no account, there is no dashboard to check if a message went missing - the inbox is the whole record. |
Choose FormSubmit when...
Pick FormSubmit for a personal site, a portfolio, a hackathon project, or any contact form where "email me what they typed" is the entire requirement. It is free with unlimited submissions, needs no account, handles uploads up to 10 MB, and can auto-respond to submitters - a genuinely generous tool. If your form gets a handful of messages a week and you read them in your inbox anyway, adding anything more is over-engineering, and we would tell you the same to your face.
Choose SheetLink Forms when...
Pick SheetLink Forms when submissions are data: lead lists, signups, registrations, anything you sort, dedupe, count, or hand to a script. Rows land in the sheet or Excel table your process runs on instead of interleaving with your mail; each row carries its UTMs and ad click IDs; screening is invisible to visitors (no default reCAPTCHA) and quarantines rather than discards; and delivery has retries and a log instead of depending on email arriving. The live demo writes into a public sheet you can watch; invites are on the waitlist.
FAQ
Can I migrate from FormSubmit to SheetLink Forms?
Yes, and it is usually a one-line change. Point your form at your SheetLink endpoint:
<form action="https://sheetlinkforms.com/f/your-token" method="POST"> <input name="_slhp" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px"></form>
Keep your existing inputs exactly as they are. Field names that match your sheet's column headers map automatically - the matching is case and punctuation insensitive, so "Email", "email", and "E-mail" all land in the same column - and explicit per-field mapping is available for anything that does not line up. FormSubmit's underscore-prefixed control fields (_next, _subject, _captcha, and the rest) are simply ignored by SheetLink and can be removed; set your redirect URL in the dashboard instead. Details in the developer docs.
FormSubmit is free and unlimited - why would I pay for anything?
If the inbox is genuinely where your submissions should live, you should not - use FormSubmit and keep your money. The cases that outgrow it are about the shape of the data, not the volume: when you need submissions as sortable rows, when you need to know which ad click produced a lead, when a reCAPTCHA in front of every visitor costs conversions, or when you need a delivery log to prove nothing went missing. Those are the jobs SheetLink Forms is built for, and during beta it is free too.
Can I get FormSubmit submissions into a spreadsheet?
Indirectly. FormSubmit's _webhook field forwards each submission to a URL you specify, so you could stand up your own receiver (or an Apps Script) that appends rows to a sheet. That works, but you are then hosting and maintaining the bridge - the exact serverless-backend chore these tools exist to remove. SheetLink writes the row directly, with retries, a delivery log, automatic column mapping, and a formula-injection guard - see how it works.
Does SheetLink Forms put a captcha in front of my visitors?
Not by default. The default screening is invisible: honeypot, rate limits, origin allowlist, content heuristics, and the embed's timing signal, with suspicious results quarantined for your review. Cloudflare Turnstile is available as an opt-in when a form is under sustained attack. FormSubmit takes the opposite default - reCAPTCHA on unless you disable it - which is a reasonable choice for an account-less service, but it is friction your visitors pay.
Comparison facts reference FormSubmit's public documentation and pricing pages and were checked at publish time; tell us if something is out of date.