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.
Open Theme Editor
In Shopify Admin, go to Online Store → Themes → Edit code on your active theme.
Find theme.liquid
In the Layout folder, open the theme.liquid file.
Add the Script
Paste the Universal Script just before the closing </body> tag.
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
Create a New Section
In the Sections folder, create a new file called "kantos-intake.liquid".
Add the Script Code
Paste the Universal Script wrapped in the section structure.
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
Preview Your Theme
Use Shopify's theme preview to test before going live.
Submit a Test Form
Fill out a form with test data and submit.
Check Kantos CRM
Log into your Kantos dashboard and verify the record was created.
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
- Enable AI classification to route different form types automatically
- Set up automations to respond to new leads instantly
- Create email sequences for lead nurturing