send.webforms.toRead the docs →

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.

Get an endpointRead the docs

Setup

  1. Copy your endpoint

    Create a form in the dashboard.

  2. Add a section or edit a template

    In the theme editor, open Edit code and add the Liquid below to a section.

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

sections/custom-contact.liquid
<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.

Ready to wire up your Shopify form?

Free for 300 submissions a month. Endpoint in under a minute, no card required.

Start free