inquiry

How to set up a Shopify contact form and handle the messages it collects

September 23, 2026 ・ Halict Editorial

Adding a contact form to a Shopify store takes about five minutes. Every theme ships with one, the page template is already there, and the first message usually arrives the same day. The problems start later, when three people are answering from the same inbox, nobody can tell which enquiries were dealt with, and a customer asks why their question from Tuesday has been answered twice with different information.

The Shopify contact form is a good piece of plumbing that was designed to do one thing: turn a web form into an email. Understanding exactly what it does, and what it explicitly does not do, makes the decision about what to add on top much easier.

What the built in contact form actually is

There are three layers here, and store owners often conflate them.

At the bottom is the Liquid tag. {% form 'contact' %} generates an HTML form that posts to /contact, with hidden inputs carrying the form type. The generated markup looks like this, which is worth seeing once because it explains several of the constraints further down:

<form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form">
  <input type="hidden" name="form_type" value="contact" />
  <input type="hidden" name="utf8" value="✓" />
</form>

In the middle is the theme. Every Shopify theme has a contact form built in, and most modern themes expose it as a Contact form section that can be dropped onto any page in the theme editor. Whether that section exists depends on the theme, which is worth checking before planning around it.

At the top is the page. A contact page is created in the admin under Online Store and Pages, and assigned the contact theme template. Anything typed into the content box appears above the form, which is the right place for a response time, a phone number, or a shop address.

That is the whole setup. No app, no configuration, no cost.

Where the messages go, and why that matters

This is the part that determines everything else. Contact form submissions are emailed to the store's sender email address, which is set on the Notifications settings page in the Shopify admin. If the store uses a third party domain, that domain may also need to be authenticated for the mail to be delivered reliably.

Two consequences follow immediately.

The first is that the subject line cannot be changed. Shopify's documentation states this plainly for contact form emails, which means every enquiry arrives looking the same. Filtering by subject to route product questions away from wholesale requests is not available, and neither is a per form subject that tells the reader what the message is about before opening it.

The second is that there is no record anywhere except the inbox. The submission is not stored in the Shopify admin as a list of enquiries. Delete the email and the enquiry is gone. Forward it to a colleague and there are now two copies with no relationship between them. This is fine for a store where one person answers everything and answers it the same day. It stops being fine at roughly the point where a second person starts helping.

Adding fields to the theme form

The default form asks for name, email, phone and a message. Adding fields means editing the theme, and the naming convention is the part to get right.

Looking at Dawn, Shopify's reference theme, the email input is named contact[email], which is a fixed key the platform recognises. The other inputs are named using the translated label, so the name field is effectively contact[Name] and the message field contact[Comment] in English. Any input named contact[something] is included in the email that gets sent, which is what makes extra fields possible: an order number field named contact[Order number] will appear in the message body.

Three cautions come with this.

Editing theme files means the change lives in that theme. A theme update, or switching to a new theme, does not carry it across, and stores that have customised heavily tend to discover this at the worst moment.

There is no field validation beyond what is written into the markup by hand. Required attributes and input types help in the browser and stop nothing that posts directly.

And the answers still arrive as text in an email body. A form asking eight questions produces a longer email, not a structured record that can be sorted or counted.

The page around the form does more work than the form

The content box above the contact form is the cheapest lever available and the most often left empty.

A stated response time reduces follow up messages more than any other change. A customer who has been told to expect a reply within one business day waits. A customer told nothing sends a second message on day two and a third to the store's social account on day three, and now one enquiry occupies three places.

Answers to the questions that generate the most messages belong above the form rather than behind a link. For most stores that is where an order is, what the returns window is, and whether an item will be back in stock. Every one of those answered on the page is an enquiry that never gets sent, and the enquiries that remain are the ones that genuinely need a person.

Asking for the order number in the form itself is worth doing for any store shipping physical goods, because the alternative is a reply that asks for it and a round trip that adds a day. The same applies to a country field for stores that ship internationally, where the answer changes the answer.

Spam, and what Shopify does about it

Shopify analyses the content of the contact[body] field with its own spam filters. A submission flagged as spam is still sent, with a [SPAM] prefix added to the subject line, and the documentation is explicit that all submissions are delivered including flagged ones, so that genuine messages caught by mistake are not lost.

The practical consequence is that the filtering is advisory. Nothing is blocked at the form. A store receiving a wave of automated submissions receives all of them, sorted only by a prefix that an inbox rule can act on.

A honeypot field in the theme markup, a hidden input that humans never fill in and bots usually do, cuts a useful proportion of it. It is a small edit and it is the cheapest available improvement for a store getting more spam than enquiries.

Shopify Forms is a different tool for a different job

Searches for Shopify contact forms often surface Shopify Forms, which is a free app published by Shopify itself. It is worth being clear about what it is for, because the name suggests something broader than the tool does.

Shopify Forms builds inline and pop up forms for capturing leads, with discounts as an incentive, consent collection, customer tagging, and a connection to Shopify Email for following up. It sits in the email marketing category of the app store and works with the Shopify admin and Shopify Email. It is a lead capture tool, and it is good at that.

What it is not is an enquiry handling system. Capturing an email address into a marketing list and handling a customer asking whether a jacket runs small are different problems. A store that installs it expecting a support inbox will find the shape does not fit.

Three ways to run this

Approach Where enquiries land What it costs Where it runs out
Theme contact form The store's sender email address as an email Nothing, built into every theme No record, no status, fixed subject line, no way to see who replied
Shopify Forms app Customer records and marketing lists in the admin Free, published by Shopify Built for lead capture and marketing follow up rather than enquiry handling
External form tool with response management A record per enquiry with an owner and a state A plan, commonly priced by number of staff Needs the form embedded or linked from the store rather than living in the theme

Most stores start in the first row and should. The move to the third row is triggered by a specific event, and it is worth naming so it can be recognised: the day a customer receives two different answers from two members of staff, or the day an enquiry is found three weeks later in an inbox nobody was checking.

What happens after the message arrives

Everything above is about collection. The work is in the reply.

An enquiry needs an owner, so that two people do not answer it and nobody assumes somebody else did. It needs a state, because the difference between waiting on the customer, waiting on a supplier, and finished is the difference between a follow up and a lost sale. It needs to be findable later, because a customer who returns in March referring to a conversation in January is not going to quote a reference number. And when the same person emails twice, that should be visible as one customer with two messages rather than as two unrelated emails.

None of that is available from a form that turns into an email. A shared inbox approximates it with labels and folders, and the approximation holds for a while, then quietly stops holding without anyone deciding that it has.

The moment it stops is usually invisible from inside. Nobody announces that the labels have stopped being applied. What surfaces instead is a complaint, or a chargeback, or a review mentioning that nobody replied, and the investigation that follows finds the original message sitting unread under a label that somebody applied and nobody acted on.

What replaces it is a record per enquiry with the reply sent from the same screen, so that the history of what was said is attached to the enquiry rather than scattered across three people's sent folders. Enquiry handling is one of the ordinary shapes this takes, alongside applications and event sign ups, and the features that matter are unglamorous: an owner, a status, a history, and the send box in the same place as the message. Tools built this way are usually priced by the number of staff using them rather than by the number of messages received, which suits a store whose enquiry volume rises with its sales.

What to change first

Check the sender email address in Notifications settings and confirm the address is one that more than one person can actually see, because a contact form pointing at a personal mailbox is the single most common cause of an unanswered customer. Then add a honeypot field to the theme form if spam is arriving. If enquiries are already being answered twice or missed entirely, the fix is a record with an owner rather than a better inbox rule, and a tool such as Halict covers that without replacing what the theme already does well.

Q1. Where do Shopify contact form submissions go?

They are emailed to the store's sender email address, which is set on the Notifications settings page in the Shopify admin. They are not stored as a list in the admin, so the email is the only copy. Stores using a third party domain may also need to authenticate that domain for reliable delivery.

Q2. Can the subject line of Shopify contact form emails be changed?

No. Shopify's documentation states that the subject line for emails sent through a contact form cannot be changed. That rules out routing different kinds of enquiry by subject filter, which is the usual workaround when several types of message arrive at one address.

Q3. How do extra fields get added to the Shopify contact form?

By editing the theme and adding inputs named in the contact[...] pattern. In Dawn the email input is contact[email] and the other inputs are named from their translated labels, so an input named contact[Order number] will appear in the message that gets sent. The change lives in that theme and does not carry across a theme switch.

Q4. Does Shopify block spam from the contact form?

It flags rather than blocks. The content of the contact[body] field is analysed by Shopify's spam filters, and a flagged submission is delivered with a [SPAM] prefix in the subject so that an inbox rule can set it aside. All submissions are delivered, including flagged ones, so nothing legitimate is silently lost.

Q5. Is Shopify Forms the same as the theme contact form?

No. Shopify Forms is a free app published by Shopify for capturing leads with inline and pop up forms, offering discounts, collecting consent and tagging customers, connected to Shopify Email. The theme contact form is built into every theme and sends an email. Neither one keeps a status against an enquiry.

All guides

How to set up a Shopify contact form and handle the messages it collects | Halict