Skip to content
SheetLink Forms

Point any form at a spreadsheet.

SheetLink Forms is a hosted form endpoint that sends HTML, JSON, Webflow, Framer and email submissions to Google Sheets or Excel Online. Each form gets one URL, and every submission lands as a row in your sheet or workbook, screened for spam, retried on failure, and stamped with ad attribution.

  • Screened for spam
  • Retried until delivered
  • Ad-click attributed

Five ways in. One place out.

CH 1

HTML form action

<form action=".../f/token"> works on any site that can set a form action, including static sites, hand-coded pages, and Squarespace code blocks, with zero JavaScript.

CH 2

The sl.js embed

One script tag adds AJAX submits, inline success text, and ad attribution: utm_*, gclid, fbclid and friends are captured on landing and carried to the form, even pages later.

CH 3

Webflow & Framer

Native webhook support on both platforms: paste one URL and every form on the site delivers, with the originating form name recorded.

CH 4

JSON API

POST JSON from any stack, whether SPAs, serverless functions, or mobile backends. Error semantics are documented, and delivery is async with retries.

CH 5

Email in

The catch-all: forward any system's notification email to your form's address and Label: value lines become fields. If nothing parses, the body is kept so the lead is not lost.

OUT

Sheets and Excel

Google Sheets via a one-click drive.file connection (we only ever see sheets you pick), or Excel Online tables via Microsoft 365. No other form backend delivers to Excel natively today (see the comparisons). The spreadsheet and the data stay yours.

Spam eats leads. Quarantine does not.

Every submission passes a honeypot, rate limits, an origin allowlist, and content heuristics tuned by a per-form strictness dial. Unlike most backends, suspicious submissions are held for one-click review instead of being silently dropped. A false positive costs you ten seconds rather than a customer. Cloudflare Turnstile is optional when you want a challenge, and it is invisible for almost everyone.

Built for the ad-attribution crowd

Formspree-style endpoints stop at the inbox. SheetLink Forms recordsgclid, wbraid, gbraid, fbclid,msclkid and the full utm_* set alongside every submission. Add matching columns and they appear, ready for offline conversion uploads and honest channel reporting. It is the same attribution engine as ourWordPress plugin, unbundled from WordPress.

Common questions

What is SheetLink Forms?

SheetLink Forms is a hosted form endpoint. Point an HTML form, a JSON request, a Webflow or Framer webhook, or an email at a per-form URL and every submission lands as a row in Google Sheets or Excel Online, screened for spam, retried on failure, and stamped with ad attribution.

Does it require JavaScript?

No. A plain HTML form can POST straight to its endpoint, and the visitor is redirected to a thank-you page. The optional sl.js script adds AJAX submits with an inline success message, injects the honeypot for you, and captures utm parameters and ad click IDs.

What happens to suspicious submissions?

They are held for one-click review instead of being dropped. Honeypot hits are marked spam outright; rate limits, an origin allowlist, and content heuristics with a per-form strictness dial flag the rest. Approve a held row and it delivers to your sheet.

Which spreadsheets can it deliver to?

Google Sheets, through a one-click connection with the drive.file scope so SheetLink Forms only sees sheets you pick or create, and Excel Online tables through a Microsoft 365 work or school account. Personal Microsoft accounts are not supported by Microsoft's Excel API.

Is SheetLink Forms free?

Yes. The free tier is 100 submissions a month, 3 forms and one connected destination, with open signup and no card. Pro is $19/month or $190/year with unlimited forms and submissions. No tier has per-submission fees.

Does it capture ad attribution?

With sl.js on the page, utm_source, utm_medium, utm_campaign, utm_term and utm_content plus the gclid, wbraid, gbraid, fbclid and msclkid click IDs are captured on landing, persisted across pages, and written next to the submission wherever a matching column exists.

What if delivery to the spreadsheet fails?

Delivery is asynchronous and retries at 5, 30 and 120 minutes. Every attempt is visible in the delivery log, so a pending retry is not a lost row.

Start free in two minutes

Signup is open and needs no card: 100 submissions a month, 3 forms, your own Google Sheet or Excel workbook. Sign in with a magic link and your first form is live before the kettle boils. Pro is $19/month with everything unmetered, details on pricing.

If you would rather get a nudge by email first, leave your address and we will send one note about the product, with no newsletter and no drip. This form is, naturally, a SheetLink form. It posts to our own endpoint and lands in a Google Sheet, attribution and all.