Product

Everything FormHeron actually does

Form backend with a lead inbox — not a drag-and-drop builder, not file uploads, not an autoresponder. Verified against the product.

Ship it in five minutes

No backend code

Paste one HTML snippet. No server, no PHP, no serverless function to maintain.

Works with any stack

Plain HTML, React, Next.js, Astro, Vue, Svelte, Webflow, Framer, Hugo, Eleventy. It’s just a form action.

Custom redirect

Send visitors to any URL on your own domain after submit. Validated at save and at submit time so it can never become a phishing hop.

JSON or form-encoded

POST either way. JSON responses carry a stable machine-readable code field for every error.

Spam dies before it costs you

Honeypot, always on

Included on every plan, free included. Positioned off-screen — not type=hidden, which password managers fill and which flags real people as bots.

Bring your own Turnstile

Free Cloudflare Turnstile with your keys, so captcha analytics stay in your Cloudflare account. Never a shared sitekey.

Atomic rate limiting

Per-IP, per-form and per-account limits enforced in a single atomic database operation — correct under concurrent bot floods.

Spam never spends quota

Spam is stored for review but never counted against your monthly limit and never emailed. A bot flood costs you nothing.

Duplicate protection

A double-clicked submit button is stored once, counted once, and notified once.

A real lead inbox

Status pipeline

Move every lead New → Contacted → Won → Lost. It’s a pipeline, not an archive.

Tags and notes

Indie and Pro

Label leads and keep a running note per conversation.

Full-text search

Search across every field a visitor submitted, not just name and email.

CSV export

Pro

Download everything, with formula-injection escaping so a malicious submission can’t execute when opened in Excel.

Integrations that actually deliver

HMAC-signed webhooks

Indie and Pro

Every payload signed HMAC-SHA256(secret, timestamp + "." + body). Verification snippets for Node, Python and PHP in the docs.

Retries and a delivery log

Indie and Pro

Failed deliveries retry at 1m / 5m / 25m, then dead-letter and email you. Every attempt is logged with status code.

Slack notifications

Indie and Pro

Incoming-webhook URL, stored encrypted.

Connect anything

Point a webhook at Zapier, Make or n8n to reach Sheets, Notion, Airtable or any CRM. Not native — via webhook.

Built to be trusted with other people’s data

Leads stored in the EU

Amsterdam. Operated from India — both stated plainly in our sub-processor list.

A DPA you can sign

Processor DPA available to every account, free included. When your client’s procurement asks, you have an answer.

No raw IP addresses

We store a salted HMAC for rate limiting. A database leak exposes no visitor IPs.

Automatic retention limits

30 / 90 / 365 days by plan, then hard-deleted by an automated job. Not soft-deleted — actually gone.

Export and delete on demand

Per-project JSON export and hard delete from the dashboard, both audit-logged.