Get your free access key
Create a free splitforms account at splitforms.com/login and copy your access key from the dashboard. The Free plan includes 500 submissions total, no credit card.
Contact form for Squarespace
Updated · plan facts checked against /pricing
Paste one HTML form into a Squarespace Code Block and every message lands in your dashboard and inbox — no Business-plan upgrade, even on the free trial.

Custom fields, file uploads, and webhooks work on every Squarespace tier — even the 14-day free trial — because the form posts straight to splitforms.
A honeypot and load-time trap ship in the code, then splitforms rate-limits (6/min, 20 per 15 min, per IP per form) and content-scores every submission — most sites never turn on reCAPTCHA.
On paid plans, forward each message to Slack, Notion, Google Sheets, Airtable, or a signed webhook — nothing to configure on the Squarespace side.
Copy-paste ready
Drop this into a Squarespace Code Block set to HTML and replace YOUR_ACCESS_KEY. That's the whole integration — the form never talks to Squarespace's servers, so it works the same on every plan, even the free trial.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New message from your Squarespace site">
<input type="hidden" name="redirect" value="https://yoursite.com/thank-you">
<input type="hidden" name="form_loaded_at" id="form_loaded_at">
<label>Name</label>
<input type="text" name="name" required autocomplete="name">
<label>Email</label>
<input type="email" name="email" required autocomplete="email">
<label>Project Type</label>
<select name="project_type">
<option value="general">General Inquiry</option>
<option value="booking">Booking</option>
<option value="quote">Quote Request</option>
</select>
<label>Message</label>
<textarea name="message" rows="4" required></textarea>
<!-- Honeypot: must stay empty -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>
<script>
document.getElementById('form_loaded_at').value = Date.now();
</script>Setup
The Code Block method takes about five minutes and needs no plan upgrade. For the full walkthrough — Code Injection fallback, theme styling, and troubleshooting — read how to add a custom contact form to Squarespace.
Create a free splitforms account at splitforms.com/login and copy your access key from the dashboard. The Free plan includes 500 submissions total, no credit card.
Go to the page where you want the form — Contact, About, footer, wherever — and click Edit on that section.
Hover between two existing blocks until you see the blue insertion line, click the + icon, search "Code," and add a Code Block.
Make sure the dropdown in the Code Block editor reads HTML, not Markdown, then paste the form code below and replace YOUR_ACCESS_KEY.
Click Apply in the Code Block, then Save at the top of the Squarespace editor.
Publish the page and submit a real test message. The accepted submission is saved in your SplitForms dashboard before owner notification email is attempted; delivery time and inbox placement depend on provider and recipient settings. Email notifications are included on every plan.
No Business plan
The native Form Block is fine for a name, email, and message on any plan. But custom fields beyond the basics, file uploads, and routing submissions anywhere other than your inbox all sit behind the Business plan. Embedding a splitforms form in a Code Block skips all of that — the dropdown field, the file input, and the webhook work the same on the cheapest Squarespace plan as the most expensive one.

Spam filtered
You usually don't have to add anything. The embedded form ships with a honeypot and a load-time trap, and splitforms rate-limits and content-scores every submission server-side — so most Squarespace sites never turn on reCAPTCHA. If yours still gets hit, enable reCAPTCHA v2 with your own site key, or route clean submissions on through the integrations you connect.

How SplitForms works
splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

Point your form to your unique SplitForms endpoint. That's it.

We instantly capture and organize every submission in your inbox.

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

No credit card required. Set up in under 60 seconds.
Connect & automate
On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Questions
Yes. Because a splitforms form posts directly to splitforms.com/api/submit, your Squarespace plan tier never comes into it — the same embed works on the Personal plan, the Business plan, and even the 14-day free trial. You only need Squarespace's Business plan if you rely on its native Form Block for advanced fields.
Yes — the Form Block. It handles a basic name, email, and message on any plan, so a simple contact page may not need anything more. Its more advanced capabilities, though, are reserved for the Business plan — which is exactly what an embedded splitforms form gives you on every tier.
If you're using splitforms and the dashboard shows the submission but no email arrives, check your spam folder first — that's the most common cause. If it's not there, double-check the access key in your form HTML matches the one in your dashboard exactly (a stray space breaks it). Email notifications are free on every plan, so there's no setting to unlock.
With splitforms, the Free plan covers 500 submissions total, unlimited forms, spam filtering, and email notifications — no credit card. Pro is $5/month for 5,000 submissions a month with CSV/XML/PDF export, webhooks, an auto-responder, CC/BCC and priority support. Annual is $49/year for 15,000 a month.
You usually don't have to add anything. The embedded form ships with a honeypot and a load-time trap, and splitforms rate-limits and content-scores every submission server-side, so most Squarespace sites never turn on reCAPTCHA. If yours still gets hit, enable reCAPTCHA v2 with your own site key from the dashboard.
Yes, from Pro ($5/mo) up. In your dashboard you connect Google Sheets, Notion, Airtable, Slack, Discord, Telegram, WhatsApp, or Mailchimp with one click — nothing to configure on the Squarespace side. Prefer your own endpoint? Add a signed webhook; the exact delivery contract is covered in the routing section above and the webhook docs.
Yes, if you don't hardcode fonts or colors. Squarespace wraps Code Blocks in the surrounding section's typography, so a plain, unstyled input inherits your theme's body font automatically. Add a scoped class like .sf-form around the markup if you want to nudge corners, spacing, or the button color without it leaking into other blocks.
Older Squarespace 7.0 templates occasionally strip <script> tags from a Code Block. If the timestamp field stays empty after saving, move that one script line to Settings → Advanced → Code Injection (Page Footer) instead. The form still works without it — the honeypot alone catches most spam.
On paid plans (Pro at $5/mo and Annual) you can point a signed webhook at Slack, Discord, Telegram, or WhatsApp, or turn each message into a Google Sheets row, Notion page, or Airtable record. Webhooks are signed with HMAC-SHA256 (a sha256= prefix on the signature header) and delivered with an 8-second timeout, plus one automatic retry when the endpoint times out or returns a 5xx — respond quickly and offload slow work.
Still stuck? Email [email protected] or read the splitforms docs for the full request contract, including file uploads and rate limits.
Simple pricing
Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.
For side projects and indie devs.
Every paid feature, for agencies and growing products.
Every Pro feature with triple the volume — $0.27 per 1,000 at full use.
No credit card required on Free • Cancel anytime • Full pricing and FAQ