Smart Intake

Squarespace Integration

Capture forms from any website with zero code.

Add Smart Intake to your Squarespace site to capture form submissions automatically. This guide covers code injection, Form Blocks, and alternative integration methods.

What You'll Need

  • A Squarespace site (Business plan or higher for code injection)
  • Access to your Squarespace dashboard
  • Your Kantos organization slug

Method 1: Code Injection (Recommended)

The simplest way to add Smart Intake to Squarespace is through the built-in Code Injection feature. This adds the script site-wide.

Step

Open Site Settings

Go to Settings in your Squarespace dashboard.

Step

Navigate to Code Injection

Click on Advanced → Code Injection.

Step

Add to Header

Paste the Kantos Universal Script in the "Header" section.

Step

Save

Click Save. The script is now active on all pages.

<!-- Kantos Smart Intake -->
<script
  src="https://kantos.ai/api/intake/script/YOUR_ORG_SLUG"
  async>
</script>

Business Plan Required

Code Injection is only available on Squarespace Business, Commerce, and Professional plans. Personal plans don't have access to this feature. See Method 3 for alternatives.

Method 2: Page-Specific Code

If you only want to capture forms on specific pages, you can add code per-page:

Step

Edit the Page

Navigate to the page with the form you want to capture.

Step

Open Page Settings

Click the gear icon next to the page name in the Pages panel.

Step

Go to Advanced

Click on the "Advanced" tab in page settings.

Step

Add Header Code

Paste the Kantos script in the "Page Header Code Injection" field.

Step

Save

Click Save. The script is now active on this page only.

Understanding Squarespace Forms

Squarespace has two types of forms that behave differently:

Form Blocks

These are Squarespace's native form builder. They use AJAX submissions and have their own handling system:

  • The Universal Script captures data from Form Blocks
  • Squarespace's built-in form handling still works (email notifications, storage)
  • Data is sent to both Squarespace and Kantos

Code Blocks with Custom Forms

You can add custom HTML forms using Code Blocks. These work seamlessly with the Universal Script:

  • Full control over form fields and styling
  • Better field naming for CRM mapping
  • No Squarespace email notifications unless configured separately

Best Results

For the most reliable integration, use Code Blocks with custom HTML forms. Form Blocks work but may have slight delays in data capture due to Squarespace's AJAX handling.

Custom Forms with Code Blocks

Create custom forms for better control and more reliable data capture:

Step

Add a Code Block

In the page editor, click "+" and select "Code" from the blocks menu.

Step

Paste Form HTML

Enter your custom form HTML (see example below).

Step

Style Your Form

Add CSS to match your site design, or use Squarespace CSS Editor.

Step

Save and Publish

Save the block and publish your site.

<form id="contact-form" class="kantos-form">
  <div class="form-field">
    <label for="name">Name</label>
    <input type="text" id="name" name="name" required />
  </div>

  <div class="form-field">
    <label for="email">Email</label>
    <input type="email" id="email" name="email" required />
  </div>

  <div class="form-field">
    <label for="phone">Phone</label>
    <input type="tel" id="phone" name="phone" />
  </div>

  <div class="form-field">
    <label for="message">Message</label>
    <textarea id="message" name="message" rows="4"></textarea>
  </div>

  <button type="submit">Send Message</button>
</form>

<style>
  .kantos-form {
    max-width: 500px;
  }
  .kantos-form .form-field {
    margin-bottom: 1.5em;
  }
  .kantos-form label {
    display: block;
    margin-bottom: 0.5em;
    font-weight: 500;
  }
  .kantos-form input,
  .kantos-form textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
  }
  .kantos-form button {
    background: #000;
    color: #fff;
    padding: 12px 24px;
    border: none;
    cursor: pointer;
    font-size: 16px;
  }
  .kantos-form button:hover {
    background: #333;
  }
</style>

Method 3: Form Action URL (No Code Injection)

For Personal plans without code injection, create forms that submit directly to Kantos using our form action endpoint:

<form
  action="https://kantos.ai/api/ingest/form"
  method="POST"
>
  <!-- Kantos configuration -->
  <input type="hidden" name="_org_slug" value="YOUR_ORG_SLUG" />
  <input type="hidden" name="_redirect" value="https://yoursite.squarespace.com/thank-you" />
  <input type="hidden" name="_source" value="squarespace_contact" />

  <div class="form-field">
    <label for="name">Name</label>
    <input type="text" id="name" name="name" required />
  </div>

  <div class="form-field">
    <label for="email">Email</label>
    <input type="email" id="email" name="email" required />
  </div>

  <div class="form-field">
    <label for="message">Message</label>
    <textarea id="message" name="message" rows="4"></textarea>
  </div>

  <button type="submit">Send Message</button>
</form>

Redirect Page

Create a thank-you page on your Squarespace site to redirect users after submission. Use the full URL including https://.

Third-Party Form Embeds

If you embed forms from third-party services, they work well with the Universal Script:

ServiceCompatibilityNotes
TypeformFullEmbedded forms captured automatically
JotformFullAll embed types supported
Google FormsPartialIframe embeds limited; use webhook instead
TallyFullWorks with embed blocks
FormstackFullScript and iframe embeds both work

Method 4: Zapier Integration

Connect Squarespace Form Blocks to Kantos via Zapier for a no-code solution:

Step

Connect Squarespace to Zapier

In Zapier, search for Squarespace and connect your account.

Step

Create a New Zap

Click "Create Zap" and select Squarespace as the trigger app.

Step

Set Trigger Event

Choose "New Form Submission" as the trigger event.

Step

Add Webhook Action

Add "Webhooks by Zapier" as the action and choose "POST".

Step

Configure the Webhook

Set up the POST request to send data to Kantos.

Zapier Webhook Configuration

{
  "URL": "https://kantos.ai/api/ingest",
  "Payload Type": "JSON",
  "Data": {
    "source": "squarespace_zapier",
    "fields": {
      "name": "{{name}}",
      "email": "{{email}}",
      "phone": "{{phone}}",
      "message": "{{message}}"
    },
    "metadata": {
      "form_id": "{{form_id}}",
      "submitted_at": "{{timestamp}}"
    }
  },
  "Headers": {
    "Content-Type": "application/json",
    "X-Api-Key": "kantos_YOUR_INTAKE_KEY"
  }
}

Newsletter Forms

Capture newsletter signups from Squarespace's Newsletter Block or custom forms:

<form id="newsletter" class="newsletter-form">
  <input
    type="email"
    name="email"
    placeholder="Enter your email"
    required
  />
  <button type="submit">Subscribe</button>
</form>

<style>
  .newsletter-form {
    display: flex;
    gap: 10px;
    max-width: 400px;
  }
  .newsletter-form input {
    flex: 1;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
  }
  .newsletter-form button {
    background: #000;
    color: #fff;
    padding: 12px 20px;
    border: none;
    cursor: pointer;
  }
</style>

Squarespace Commerce

For Commerce sites, capture leads beyond checkout:

  • Contact forms - Captured normally with Universal Script
  • Product inquiries - Create custom quote request forms
  • Pre-orders - Use Form Blocks or custom forms to collect interest
  • Checkout - Customer data flows through Squarespace Commerce

Commerce Webhooks

For checkout/order data, use Squarespace Commerce webhooks or Zapier to sync customer purchases to your CRM.

Testing Your Integration

Step

Verify Script Loading

View page source and search for "kantos" to confirm the script is present.

Step

Open Browser Console

Press F12 and check the Console tab for any errors.

Step

Submit a Test Form

Fill out a form on your live site with test data.

Step

Check Kantos Dashboard

Go to Smart Intake → Incoming Events and verify the submission.

Step

Test Form Block (if used)

Submit a native Form Block and verify it appears in Kantos.

Troubleshooting

Code Injection Not Available

  • Code Injection requires Business plan or higher
  • Check your current plan in Settings → Billing
  • Use Method 3 (Form Action URL) as an alternative

Form Block Submissions Not Appearing

  • Form Blocks use AJAX—there may be a slight delay
  • Check if the submission appears in Squarespace's Form Storage first
  • Try using a custom Code Block form for more reliable capture
  • Verify your API key and org slug are correct

Custom Form Not Working

  • Make sure the Code Block is set to display HTML (not Markdown)
  • Check that form field names don't have typos
  • Verify the form isn't being blocked by browser extensions
  • Test in an incognito window to rule out caching

Styles Not Applying

  • Squarespace may override some CSS—use more specific selectors
  • Try adding !important to critical styles
  • Use the Custom CSS feature in Design → Custom CSS for site-wide styles

Squarespace-Specific Tips

Using Squarespace CSS Editor

For consistent styling across your site, add form styles in Design → Custom CSS:

/* Kantos form styles */
.kantos-form input,
.kantos-form textarea {
  border: 1px solid var(--tweak-form-field-border-color);
  padding: var(--tweak-form-field-padding);
  font-family: var(--body-font-font-family);
}

.kantos-form button {
  background: var(--tweak-button-background-color);
  color: var(--tweak-button-text-color);
  font-family: var(--tweak-button-font-font-family);
}

Matching Your Template

Squarespace templates use CSS variables. Inspect your site's styles to find the variable names and use them in your custom form CSS for consistency.

Mobile Responsiveness

Custom forms should be mobile-friendly. Add responsive styles:

@media (max-width: 640px) {
  .kantos-form {
    padding: 0 20px;
  }
  .kantos-form input,
  .kantos-form textarea,
  .kantos-form button {
    font-size: 16px; /* Prevents zoom on iOS */
  }
}

Excluding Forms

Exclude specific forms (like search) from being captured:

<!-- This form will NOT be captured -->
<form data-kantos-ignore id="search-form">
  <input type="search" name="q" />
  <button type="submit">Search</button>
</form>

Next Steps

    Squarespace Integration - Smart Intake | Kantos Docs