Site builders and CMS
Add a contact form to Shopify
Shopify's built-in contact form does one thing and posts to one inbox. As soon as you need a wholesale enquiry form, a pre-order waitlist or a custom field that reaches your ops Slack channel, you are usually reaching for an app subscription. A Liquid section with a plain form action covers it without adding an app to the store.
Setup
Copy your endpoint
Create a form in the dashboard.
Add a section or edit a template
In the theme editor, open Edit code and add the Liquid below to a section.
Include store context
Hidden fields let you pass the page, product or customer so submissions arrive with context attached.
Shopify examples
Swap in your own endpoint and these run as-is.
<form action="https://send.webforms.to/wft_your_key" method="POST" class="custom-contact">
<label for="name">Name</label>
<input type="text" id="name" name="name" required>
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
<label for="message">How can we help?</label>
<textarea id="message" name="message" rows="5" required></textarea>
{% comment %} Context so you know where the enquiry came from {% endcomment %}
<input type="hidden" name="page" value="{{ page.title | default: product.title }}">
<input type="hidden" name="shop" value="{{ shop.permanent_domain }}">
{% if customer %}
<input type="hidden" name="customer_email" value="{{ customer.email }}">
{% endif %}
<input type="hidden" name="_subject" value="New enquiry from {{ shop.name }}">
<input type="hidden" name="_next" value="{{ shop.url }}/pages/thank-you">
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off"
style="position:absolute;left:-9999px" aria-hidden="true">
<button type="submit">Send</button>
</form>
{% schema %}
{
"name": "Custom contact form",
"settings": [],
"presets": [{ "name": "Custom contact form" }]
}
{% endschema %}Shopify form FAQ
No. A Liquid section with a form action pointed at your endpoint handles custom fields, multiple recipients and Slack or webhook delivery without an app subscription.
Yes. Add hidden inputs populated from Liquid - product.title, page.title, customer.email - and they arrive as ordinary submission fields.
Related guides
Ready to wire up your Shopify form?
Free for 300 submissions a month. Endpoint in under a minute, no card required.
Start free