Contact Form for Squarespace — No Business Plan Required

Squarespace's own Form Block locks custom fields, webhooks, and file uploads behind the Business plan. splitforms fixes that on any Squarespace plan — including the free trial: paste one HTML form into a Code Block that posts to https://splitforms.com/api/submit, and every message lands in your dashboard and inbox within seconds. No plan upgrade, no separate plugin, no code beyond copy-paste.

contact-form.html

This is what your Squarespace visitors will see

Try it — fill it out and send. This is a live working 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
Response time
14ms
median edge latency across 14 regions
Get Free Access Key →

500 submissions/month free · No credit card

How to Add a Contact Form to Squarespace (Code Block Method)

  1. Get your free key at splitforms.com/login — Free plan, no credit card, 500 submissions/month included
  2. In the Squarespace editor, open the page where you want the form and click Edit on that section
  3. Hover between blocks, click the + icon, search Code, and add a Code Block
  4. Make sure the block's dropdown reads HTML (not Markdown), then paste the form code below (replace YOUR_ACCESS_KEY)
  5. Click Apply, then Save at the top of the editor
  6. Publish and submit a test message — it lands in your dashboard and inbox (email notifications are free on every plan)

Squarespace Contact Form Code

<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>

Squarespace's Code Block occasionally strips <script> tags on older 7.0 templates. If the timestamp field stays empty after saving, move that one script line to Settings → Advanced → Code Injection (Page Footer) instead — the form itself still works without it, the honeypot alone catches most spam.

Why Squarespace's Built-In Form Block Isn't Enough

The native Form Block is fine for a name, email, and a message on any Squarespace plan. Where it stops being free is the moment you need more: custom fields beyond the basics, file uploads, or routing submissions anywhere other than your own inbox — all of that sits behind the Business plan. There's also no signed webhook delivery and no way to forward a submission to Slack or a spreadsheet without leaving Squarespace entirely. Embedding a splitforms form in a Code Block skips all of that: the dropdown field, the file input, and the webhook all work the same way on the cheapest Squarespace plan as they would on the most expensive one, because the form never talks to Squarespace's servers at all — it posts straight to splitforms.

Stop Spam on Your Squarespace Contact Form

The code above ships with two spam traps already wired in: a botcheck honeypot field that has to stay empty (bots fill every field they can see; real visitors never see this one) and a form_loaded_at timestamp that flags submissions sent faster than a human could type. On top of that, splitforms rate-limits at 6 submissions per minute per IP (20 over 15 minutes) and runs server-side content checks on every submission automatically. If you still see spam getting through, you can add reCAPTCHA v2 with your own site key from the dashboard — most Squarespace sites never need to.

Send Squarespace Form Submissions to Slack, Notion, or Google Sheets

Every splitforms plan, including Free, emails you the moment a submission arrives — that part needs no setup beyond your access key. If you want submissions routed further, Starter ($1/mo) adds one-click integrations: connect Google Sheets, Notion, or Airtable so every message becomes a row or page automatically, or point a webhook at Slack, Discord, Telegram, WhatsApp, or a generic endpoint. Webhooks are signed with HMAC-SHA256 (a sha256= prefix on the signature header) and delivered once with an 8-second timeout — there's no automatic retry, so the receiving endpoint needs to respond quickly. See the full integrations list or read the webhook docs.

FAQ

Can I add a custom contact form to Squarespace without the Business plan?

Yes. Squarespace's own Business-plan requirement only applies to its native Form Block (custom fields, storage panels, file uploads). Paste a splitforms form into a Code Block instead — the HTTP POST goes straight to splitforms.com and bypasses Squarespace's plan restrictions entirely. It works on the Personal plan and on the 14-day trial.

Does Squarespace have a built-in contact form?

Yes — the Form Block. It's fine for a name, email, and message on any plan, but custom fields beyond the basics, webhook delivery, and file uploads are gated behind the Business plan. A hosted form backend like splitforms gives you those features on every plan.

Why isn't my Squarespace contact form sending emails?

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.

How much does a Squarespace contact form backend cost?

With splitforms, the Free plan covers 500 submissions/month, unlimited forms, spam filtering, and email notifications — no credit card. Starter is $1/month for 1,000 submissions plus CSV/XML/PDF export, webhooks, and an auto-responder. Pro is $5/month for 5,000 submissions with CC/BCC and priority support.

How do I stop spam on my Squarespace contact form?

The code below includes a botcheck honeypot field that must stay empty — bots fill every input, real visitors never see it — plus a form_loaded_at timestamp that flags submissions sent faster than a human could type. splitforms also rate-limits at 6 submissions per minute per IP and runs server-side content checks automatically, so most Squarespace sites don't need reCAPTCHA at all.

Can I send Squarespace form submissions to Slack, Notion, or Google Sheets?

Yes, on Starter ($1/mo) and above. Connect the native Google Sheets, Notion, Airtable, Slack, Discord, Telegram, WhatsApp, or Mailchimp integration in your dashboard with one click, or add a generic webhook — signed with HMAC-SHA256 (a sha256= prefix on the signature header) and delivered once with an 8-second timeout, so point it at an endpoint that responds fast since there's no automatic retry.

Will the form match my Squarespace site's design?

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.

Building on Another Platform Too?

The same Code Block-plus-hosted-backend approach works anywhere you can paste HTML. See the guides for Wix, Notion sites, and static site generators. For the full Squarespace walkthrough — Code Injection as a fallback, styling to match your theme, mobile preview, and troubleshooting — read how to add a custom contact form to Squarespace, or check the splitforms docs for the full request contract, including file uploads and rate limits.

Get your free form for Squarespace

500 submissions/month, no Business-plan upgrade, no credit card.

Get Free Access Key →

Questions? Email hello@splitforms.com