Smart Intake

Shopify Integration

Capture forms from any website with zero code.

Capture leads from your Shopify store using the Kantos Universal Script. Perfect for contact forms, newsletter signups, wholesale inquiries, and custom quote requests.

What You'll Need

  • A Shopify store (any plan)
  • Access to theme code or a custom code app
  • Your Kantos API key from Settings → API Keys
  • An Object Definition ID for lead storage

Method 1: Theme Editor (Recommended)

Add the Universal Script to your theme for site-wide form capture.

Step

Open Theme Editor

In Shopify Admin, go to Online Store → Themes → Edit code on your active theme.

Step

Find theme.liquid

In the Layout folder, open the theme.liquid file.

Step

Add the Script

Paste the Universal Script just before the closing </body> tag.

Step

Save

Click Save. The script is now active on your store.

<!-- Kantos Universal Script -->
<script
  src="https://cdn.kantos.ai/intake.js"
  data-api-key="YOUR_API_KEY"
  data-object-definition-id="YOUR_OBJECT_DEFINITION_ID"
  data-success-redirect="/pages/thank-you"
  defer
></script>

Method 2: Specific Pages Only

If you want the script only on certain pages (like a contact page), create a custom template or use page-specific code.

Using Sections

Step

Create a New Section

In the Sections folder, create a new file called "kantos-intake.liquid".

Step

Add the Script Code

Paste the Universal Script wrapped in the section structure.

Step

Include in Templates

Add {% section 'kantos-intake' %} to pages where you want form capture.

{% comment %} sections/kantos-intake.liquid {% endcomment %}
<script
  src="https://cdn.kantos.ai/intake.js"
  data-api-key="{{ section.settings.api_key }}"
  data-object-definition-id="{{ section.settings.object_definition_id }}"
  data-success-redirect="{{ section.settings.redirect_url }}"
  defer
></script>

{% schema %}
{
  "name": "Kantos Lead Capture",
  "settings": [
    {
      "type": "text",
      "id": "api_key",
      "label": "Kantos API Key"
    },
    {
      "type": "text",
      "id": "object_definition_id",
      "label": "Object Definition ID"
    },
    {
      "type": "url",
      "id": "redirect_url",
      "label": "Success Redirect URL"
    }
  ]
}
{% endschema %}

Creating Contact Forms

You can use Shopify's native contact form or create custom forms. The Universal Script captures both.

Shopify Native Contact Form

Shopify themes typically include a contact page template. The Universal Script will capture submissions from these forms automatically.

{% comment %} Native Shopify contact form {% endcomment %}
{% form 'contact' %}
  {{ form.errors | default_errors }}

  <label for="name">Name</label>
  <input type="text" id="name" name="contact[name]" required />

  <label for="email">Email</label>
  <input type="email" id="email" name="contact[email]" required />

  <label for="message">Message</label>
  <textarea id="message" name="contact[body]" rows="4"></textarea>

  <button type="submit">Send</button>
{% endform %}

Field Name Mapping

Shopify contact forms use contact[field] naming convention. The Universal Script automatically extracts the field names (e.g., contact[email] becomesemail in your CRM).

Custom HTML Form

For more control, create a custom form without Shopify's form tags:

<form id="wholesale-inquiry">
  <h3>Wholesale Inquiry</h3>

  <label for="business_name">Business Name</label>
  <input type="text" id="business_name" name="business_name" required />

  <label for="contact_name">Contact Name</label>
  <input type="text" id="contact_name" name="contact_name" required />

  <label for="email">Email</label>
  <input type="email" id="email" name="email" required />

  <label for="phone">Phone</label>
  <input type="tel" id="phone" name="phone" />

  <label for="order_volume">Expected Monthly Order Volume</label>
  <select id="order_volume" name="order_volume">
    <option value="">Select volume</option>
    <option value="$1,000 - $5,000">$1,000 - $5,000</option>
    <option value="$5,000 - $10,000">$5,000 - $10,000</option>
    <option value="$10,000+">$10,000+</option>
  </select>

  <label for="message">Additional Information</label>
  <textarea id="message" name="message" rows="4"></textarea>

  <button type="submit">Submit Inquiry</button>
</form>

Common Shopify Use Cases

Newsletter Signup

Capture email subscribers and sync them to your CRM for segmented marketing:

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

Quote Request

For custom products or B2B sales, capture detailed quote requests:

<form id="quote-request">
  <input type="text" name="name" placeholder="Your Name" required />
  <input type="email" name="email" placeholder="Email" required />
  <input type="text" name="company" placeholder="Company (optional)" />
  <textarea name="requirements" placeholder="Describe your requirements"></textarea>
  <input type="hidden" name="product_interest" value="{{ product.title }}" />
  <button type="submit">Request Quote</button>
</form>

Hidden Fields for Context

Use hidden fields to pass product or page context. Liquid variables like {{ product.title }} or {{ page.title }} provide valuable context in your CRM records.

Shopify Apps Integration

If you're using form builder apps (like PageFly, GemPages, or Shogun), the Universal Script captures their forms too. Just ensure:

  • Forms use standard HTML form elements
  • Input fields have proper name attributes
  • The script is loaded after the app's content

Testing Your Integration

Step

Preview Your Theme

Use Shopify's theme preview to test before going live.

Step

Submit a Test Form

Fill out a form with test data and submit.

Step

Check Kantos CRM

Log into your Kantos dashboard and verify the record was created.

Step

Verify Email/Automation

If you have automations set up, confirm they triggered correctly.

Troubleshooting

Forms not being captured

  • Verify the script is in theme.liquid (not a section that might not load)
  • Check browser console for JavaScript errors
  • Ensure your API key is correct and not expired
  • Try clearing Shopify's cache (theme editor → Actions → Clear cache)

Shopify contact form still sending emails

The Universal Script captures the form but doesn't disable Shopify's email notifications. To prevent duplicate handling, you can disable Shopify notifications in Settings → Notifications → Customer notifications.

Theme app blocks conflict

Some themes use app blocks that might interfere. Try adding the script directly to theme.liquid rather than through a section if you experience issues.

Next Steps

    Shopify Integration - Smart Intake | Kantos Docs