Contact Form for Notion Site
Notion has no native contact form for published sites — the closest built-in option is a database "Form view," which writes rows into Notion but sends no email and filters no spam. The fix: publish through Super.so, Potion.so, or Feather, then paste a small HTML form that POSTs to https://splitforms.com/api/submit with your access key. splitforms handles email delivery, spam filtering, and dashboard storage — free for up to 500 submissions a month.
This is what your Notion site visitors will see
Try it — this is a real working form demo.
What happens next ⚡
- 📥Submission received — stored in your searchable dashboard
- 📧Email notification — delivered to your inbox instantly
- 🛡️Spam filtered — AI classifier + honeypot, no CAPTCHA
- 🔗Webhook fired — optional: forward to Slack, Discord, Sheets
- ↩️User redirected — to your thank-you page
500 submissions/month free · No credit card
How to Add a Form to a Notion Site
- Get your free access key at splitforms.com/login — no credit card required.
- In your Notion site builder — Super.so's HTML Embed, Potion.so's Custom Code, or Feather's embed block — add a new code element.
- Paste the form HTML below and replace
YOUR_ACCESS_KEYwith your key. - Optional: add a
redirecthidden field pointing at your own thank-you page instead of splitforms's default one. - Publish, then submit a test message — it should land in your inbox and the splitforms dashboard within seconds.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<label>Name</label>
<input type="text" name="name" required>
<label>Email</label>
<input type="email" name="email" required>
<label>Message</label>
<textarea name="message" rows="4" required></textarea>
<!-- Honeypot: bots fill this field, real visitors never see it -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<!-- Time-trap: rejects submissions sent in under 2 seconds -->
<input type="hidden" name="form_loaded_at" value="">
<script>document.currentScript.previousElementSibling.value = Date.now();</script>
<button type="submit">Send</button>
</form>Full field reference — subject, redirect, replyto — is in the docs.
Where to Paste It: Super.so, Potion.so, or Feather
Notion itself can't render a code block as live HTML, so the form above goes into whichever publishing layer sits on top of your Notion workspace:
- Super.so — paste it into a page-level HTML Embed, or add it once under Code Injection → Head to run it site-wide.
- Potion.so — add a Notion code block set to
html, then turn on "Render HTML in code blocks" in your site settings. - Feather — a narrower embed surface (built for blogs and newsletters), but a raw HTML block still accepts the form.
Screenshots, matching CSS for Notion's default look, and per-builder troubleshooting are in the step-by-step Notion form guide →.
Stopping Spam on a Public Notion Form
A form embedded in a published Notion site is public HTML, so it will attract bots. The snippet above already carries two layers: a botcheck honeypot field bots fill in but human visitors never see, and a form_loaded_at time-trap that rejects anything submitted in under two seconds. splitforms also runs server-side content filtering on every submission, and you can lock the form to your domain with allowed origins or add reCAPTCHA v2 if you need an extra layer.
Send Submissions From Any Form Into a Notion Database
This runs the other direction: instead of adding a form to a Notion site, you can route submissions from any splitforms form — Notion-hosted or not — straight into a Notion database. On Starter ($1/mo) and above, connect the native Notion integration (Dashboard → Integrations → Notion) and every new submission becomes a database page automatically, no relay server required. Set up the Notion integration → or read the full guide →.
FAQ
Can I add a contact form to a Notion site?
Yes. If you publish a site with Notion (via Super, Potion, or Notion's built-in publishing), you can embed an HTML form using a code embed block that points to a hosted form backend.
Does Notion have a native form?
Notion doesn't have a native contact form for published sites. You need a hosted form backend or a third-party embed to collect submissions from visitors.
Can I collect form submissions and store them in Notion?
Yes. With splitforms webhooks (Starter $1/mo+), you can forward every form submission to a Notion database automatically. Each submission becomes a new Notion page.
Does this work with Super.so, Potion.so, and Feather?
Yes. Any Notion site builder that lets you paste raw HTML or a code block — Super.so's HTML Embed, Potion.so's Custom Code (with "Render HTML in code blocks" turned on), or Feather's embed block — can host the form on this page. The form markup doesn't change between builders, only where you paste it.
Is a contact form on a Notion site free?
Yes. splitforms's free plan covers 500 submissions a month, unlimited forms, email notifications, and spam filtering, with no credit card required. Paid plans start at $1/mo (Starter) for webhooks, native integrations like Notion, and CSV/XML/PDF exports.
How do I stop spam on a public Notion contact form?
The form on this page already includes a botcheck honeypot field and a form_loaded_at time-trap that rejects submissions sent in under two seconds. splitforms also runs server-side content filtering on every submission, and you can restrict the form to your own domain or add reCAPTCHA v2 for an extra layer.
Can I redirect visitors to my own thank-you page after they submit?
Yes. Add a hidden redirect field with your thank-you page's URL, and splitforms sends the visitor there after a successful submission instead of its own default confirmation page.
Do I need to know how to code to add this form?
Only enough to paste one HTML snippet and swap in your access key — no server, API route, or Notion API integration required. Copy the form on this page and drop it into your builder's HTML or code panel.
Questions? Email hello@splitforms.com