Ecom Store Pro

How to Add a Contact Form to Shopify and Get Its Emails

Add the built-in contact form to any Shopify theme, see where its emails go, and fix missing or flagged messages: sender email, [SPAM] tags, hCaptcha.

Listen to a short brief of this article
Hands-free while you multitask

The short version

Every Shopify theme has a built-in contact form: create a page in Online Store > Pages, choose the contact template, save it and add the page to a menu in Content > Menus.

Its submissions go by email to your store's sender email address in Settings > Notifications, not to the Store email address.

If messages stop arriving, check that address first, then search your mailbox for [SPAM], because flagged messages still arrive, and send a test from your storefront.

Move to the free Shopify Forms app when you need submissions stored in your admin, custom fields without code or several recipients through Shopify Flow.

Every Shopify theme already has a contact form, so adding one comes down to a page with the contact template, a link to it in your menu, and an inbox that actually receives the messages. Its messages arrive at the sender email address in Settings > Notifications, not at your Store email.

If you already have the form and messages never show up, arrive with [SPAM] in the subject, or visitors hit a puzzle when they press send, go straight to the checks in order.

What Every Shopify Theme Already Gives You

Key takeaway

Shopify states the rule for its themes as a class, not theme by theme:

All Shopify themes have a built-in contact form that you can apply to the pages that you create.
Shopify Help Center — Add a Contact Us page to your store ·

The mechanism is a page template. You add a contact form by creating a new page with the page.contact template, and if you leave that page without any other content, customers see only the form.

Two things are not part of that form. The free Shopify Forms app is a separate install that doesn't come with any plan, and the newsletter signup is a different theme form with its own setup, covered in our newsletter signup guide.

Theme Form, Shopify Forms or an Embedded Form?

Key takeaway

Find your row. The route decides where a message lands and who can read it, so pick it before you build the page.

Three ways to put a contact form on your store
RouteWhere submissions goExtra fieldsWho gets notifiedWhat to know
Your theme's contact formAn email to your store's sender email addressIn Horizon 4.4.0 and Dawn 16.1.1, only by editing the theme's codeThe sender email addressBuilt into every Shopify theme; you can't change the subject line of its emails
Shopify Forms (free app)Stored in your Shopify admin; a new customer gets a customer profileCustom fields in the app, stored as a local field or a customer or company metafield; up to 31 fields per formAn optional email notification you turn on in Forms settings; several addresses through a Shopify Flow automationNot installed with any plan; up to 25 forms per store; no multi-step forms or conditional logic
A form service such as Wufoo or Jotform, embedded on your contact pageNot your sender email address: Shopify's help suggests this route for exactly that caseYou build the custom form in the service, then embed itSet up in that serviceShopify's help names both as examples; their plans and limits are their own

Shopify Help Center pages on the contact page and on Shopify Forms, read November 2, 2026.

The theme form has no address of its own. It writes to your sender email address, so changing where its messages land means changing that address or moving to another route.

Shopify Forms is free to install and use, but you can have up to 25 forms per store, and multi-step forms and conditional logic aren't supported. Where the free app stops and a paid form builder starts is the subject of our comparison of Shopify Forms and paid form apps.

With Shopify Forms, if several people on your team need each message, the documented route is a Shopify Flow automation that sends an internal email after a form submission; our FAQ on Forms notifications for more than one person covers it.

How to Add a Contact Form, Step by Step

Key takeaway

The first two steps are required: Shopify's help says that after you create the contact page, you need to add it to your menu to display it on your online store. The last two are optional and depend on your theme.

Create a page with the contact template

Key takeaway

Shopify's steps for a desktop browser, with what our test admin showed as of November 8, 2026:

  1. From your Shopify admin, go to Online Store > Pages.
  2. Click Add page.
  3. In Title, type a name such as Contact us or Get in touch.
  4. In Content, add any text, images or videos to show above the form, or leave it blank.
  5. In the Template box, select contact. Shopify's help calls this list the Theme template drop-down.
  6. Click Save.
In Shopify adminOpen in your store
  1. Online Store
  2. Pages
Steps 1 and 2 start on the Pages list, where the Add page button sits.
In Shopify adminOpen in your store
  1. Online Store
  2. Pages
  3. Contact
Step 5 on a saved page: the Template box reads contact, and the Content box above the form is empty.

The Shopify mobile app has the same steps, reached through Sales channels > Online Store > Pages. If the saved page doesn't show up on your storefront at all, our FAQ on why a Shopify page isn't showing goes through the usual causes.

Add the page to your menu

Key takeaway

Shopify's steps, with what our test admin showed as of November 8, 2026:

  1. From your Shopify admin, go to Content > Menus.
  2. Click the title of the menu you want to edit.
  3. Click Add menu item.
  4. Type a Label such as Contact, then use the Link field, marked Search or paste link, to find and select your contact page.
  5. Confirm the item with the check mark, then click Save.
In Shopify adminOpen in your store
  1. Content
  2. Menus
Steps 3 and 4: typing Contact in the new item's Link field lists your contact page to select.

Customize the contact template: Horizon block, Dawn section

Key takeaway

The contact page is a template that you customize in the theme editor. Shopify's steps:

  1. From your Shopify admin, go to Online Store.
  2. Find the theme you want to edit, and click Edit theme.
  3. From the drop-down menu, click Pages > Contact to load the contact page template.
  4. Click + Add section, pick a section, and click Save when the layout is right.

The sections you add here carry extra information, such as featured collections, blog posts or images. Where the form itself lives depends on the theme: Shopify's help says you can add a contact form to any page with the Contact form section, then tells you to check with your theme developer whether your theme supports it.

In Horizon's code, version 4.4.0, the contact template holds a section named Contact form (built from Horizon's Section type), with a Contact form block inside it and a Submit button block nested inside that form block. So the form itself is a block: the theme has no Contact form section file, though its Section type offers a Contact form preset in its Forms category that holds the same block.

The Contact form block's settings cover width, background color, input style and colors, borders and padding, and the theme files the block under Forms. The Submit button block takes its own label and style.

In Shopify adminOpen in your store
  1. Online Store
  2. Themes
  3. Edit theme
  4. Pages
  5. Contact
In Horizon, the Contact form section under Template holds the Contact form block, with the Submit button nested in it.

Dawn keeps the older shape. In Dawn 16.1.1 the contact template has two sections, the page content and a Contact form section, whose settings are a heading, the heading size, a color scheme and top and bottom padding.

In Shopify adminOpen in your store
  1. Online Store
  2. Themes
  3. Edit theme
  4. Pages
  5. Contact
In Dawn, Contact Form is a section of its own under Template, with nothing nested inside it.

In both themes' code the form's settings stop at layout, styling and, in Dawn, a heading: the fields themselves, a name, an email, a phone number and a message box, are written into the code, which the next step covers. Whether Horizon has a form at all is answered in our FAQ on Horizon's contact form; this guide covers the steps for any theme.

Built the page with Sidekick?

Shopify's help on pages that Sidekick generates uses a contact page as its example: you might need custom code to create a functional contact form. A test message, step three of the checks below, tells you quickly whether it works.

For the same steps on video, this 2022 walkthrough from the EcommerceGold channel finds the contact template, creates the page, and adds rich text, a location and a map. It was recorded before Horizon, so your theme editor will look different.

Shopify Contact Form TutorialA walkthrough of just under six minutes from the EcommerceGold channel, published in September 2022: finding the contact template, creating the contact page, and adding rich text, location and map sections. Recorded before Horizon, so the theme editor looks older.

Adding or changing fields in the theme's code

Key takeaway

shopify.dev documents how the form is built: the Liquid form tag with the 'contact' parameter. Any change to its fields follows four rules:

Four rules for contact form fields
ChangeWhat goes in the theme codeWhy
Keep the form submittingAn input with type email and name contact[email]It is the one input the form requires to submit successfully
Add a fieldAny HTML input named contact[information_id], where information_id briefly names what you collectThat title appears in the contact notifications you receive, and it must be unique within the form
Make a field requiredThe attribute required="required" inside that field's input elementIt is the documented way to make a specific field required for a customer
Offer several checkboxesA unique name value on each input in the checkbox groupWith shared names, only the last selected value comes through

shopify.dev, Add a contact form to your theme, read November 2, 2026.

One limit stays whatever you code. You can't change the subject line for emails sent through a contact form on a Shopify store.

If you replace the theme's form with a custom one, shopify.dev asks you to keep the attributes its CAPTCHA relies on, such as an action pointing at /contact and the form_type field, so that the form stays compatible with CAPTCHA.

If editing code isn't for you, Shopify Forms lets you create custom input fields in the app and store each one as a local field or as a customer or company metafield.

Where Do Contact Form Messages Go?

Key takeaway

Shopify's help is plain about the route:

Your contact form sends all submissions to your store's sender email address.
Shopify Help Center — Add a Contact Us page to your store ·

To check or change that address:

  1. From your Shopify admin, go to Settings > Notifications.
  2. In the Sender email section, enter your email address and save.
In Shopify adminOpen in your store
  1. Settings
  2. Notifications
The Sender email field here is the inbox your contact form writes to.
Store email is a different address

Your store also has a Store email address. Shopify sends exports of your products, orders or customers there; contact form submissions go to the sender email address instead, so check that one first when a message is missing.

Pick an inbox someone checks every day. If you don't have a mailbox at your own domain yet, our FAQ on whether Shopify gives you a business email explains what Shopify does and doesn't host.

Two other routes take messages elsewhere. Shopify's help suggests a form service such as Wufoo or Jotform, embedded on your contact page, when you don't want to use your sender email address for the form. Shopify Forms keeps a record instead: after a customer submits a form, the submission data is stored in your Shopify admin.

How Spam Protection Works on the Contact Form

Key takeaway

The two protections work independently: one decides whether a submission goes through, the other labels what arrives.

hCaptcha runs on every store by default

Key takeaway

hCaptcha is enabled by default on all Shopify stores, and it can display in contact, newsletter signup and comment forms. When it's active, every submission runs an invisible, non-interactive check. One assessed as suspicious redirects the visitor to a /challenge page to solve a puzzle or tick an "I'm a human" box, and when hCaptcha can't tell whether a visitor is a bot, it may return an error instead.

To change it, with what our test admin showed as of November 8, 2026:

  1. From your Shopify admin, go to Online Store > Preferences.
  2. In the Spam protection section, switch Enable on contact and comment forms on or off, then save. Shopify's help names this setting Enable hCaptcha on contact and comment forms.
In Shopify adminOpen in your store
  1. Online Store
  2. Preferences
Step 2: the first toggle, on by default, controls hCaptcha on contact and comment forms.

Leave it on unless something conflicts with it. hCaptcha isn't compatible with custom code or third-party apps that add CAPTCHA, so a second CAPTCHA app is a problem rather than extra protection. On a custom theme, shopify.dev adds that CAPTCHA isn't present when the theme lacks the content_for_header object.

Guides that mention Google reCAPTCHA are out of date

Shopify added Google's reCAPTCHA v3 to contact forms and blog comments in July 2020, then started migrating storefront CAPTCHA to hCaptcha in a changelog post dated July 24, 2024. The Preferences help page we read on November 2, 2026 describes only hCaptcha, so a reCAPTCHA setting in an older tutorial won't match your admin.

What the [SPAM] tag means

Key takeaway

The filter analyzes the content of the contact[body] field, which is the message box in Horizon 4.4.0 (in English, Dawn 16.1.1 names its message box contact[Comment]), and an email it flags is sent with a [SPAM] prefix in its subject. Shopify explains why flagged messages still reach you:

To make sure that you don't miss any legitimate messages that are flagged as spam by mistake, you receive all contact form submissions, including those flagged as spam.
Shopify Help Center — Add a Contact Us page to your store ·

Create an email filter for subjects that contain [SPAM] so these land in their own folder, then skim that folder, because a genuine customer can be flagged by mistake.

Contact Form Not Receiving Emails? Check in This Order

Key takeaway

Three problems look alike from the inbox: no message arrives at all, messages arrive but sit in a spam folder or under a [SPAM] subject, or customers tell you the form showed them a puzzle or an error when they pressed send.

If customers report a puzzle instead, that is hCaptcha's challenge: a submission it finds suspicious goes to a /challenge page. An error may come from hCaptcha too: Shopify's help says that if hCaptcha can't determine whether a visitor is a bot, then it will either return an error, or potentially redirect the user to a page to solve an interactive challenge. A third-party CAPTCHA app running beside hCaptcha is the first thing to remove; step six of the checks covers the rest.

The order below puts the cheap checks first, and it draws on Shopify's help pages for the contact page, email setup and online store preferences. Work down the list and stop at the step that explains your case; your ticks stay in this browser.

Fix a Shopify contact form that isn't delivering, in this orderTick each check as you rule it out.

Fix a Shopify contact form that isn't delivering, in this order

Tick each check as you rule it out.

0 of 6 done
  1. Open Settings > Notifications and check the Sender email: that is where every contact form submission is delivered, not the Store email address.

  2. Search the inbox and the junk folder for subjects that contain [SPAM]: submissions Shopify flags are still delivered, with that prefix in the subject.

  3. Submit the form on your storefront contact page with an address you can read in the Email field, then look for it in the sender inbox.

  4. If your sender email is on a third-party domain, Shopify's contact page help says you might also need to authenticate the domain; for emails to customers, Shopify's email setup page says multiple DMARC TXT records make DMARC validation fail.

  5. Use a sender address without wording such as no-reply, do-not-reply or noreply: Shopify's email setup page says some email hosts automatically reject such addresses.

  6. On a custom theme or form, keep the content_for_header object in the theme, keep the CAPTCHA attributes on custom forms, and don't add a second CAPTCHA app beside hCaptcha.

Steps four and five lean on Shopify's email setup page, which states these rules for the emails your store sends to customers:

  • Without authentication records on a third-party domain, your sender email address is rewritten to store+123@shopifyemail.com.
  • Multiple DMARC TXT records make DMARC validation fail, and the sender email may be rewritten the same way.
  • Since February 1, 2024, Gmail and Yahoo require an authenticated domain and a DMARC record for emails to customers from a branded email address, Shopify's page says.
  • Some email hosts automatically reject sender email addresses that include wording such as no-reply, do-not-reply or noreply.

The contact page help itself says only that with a third-party domain, you might also need to authenticate your domain. Our FAQ on sending Shopify emails from your own domain covers what authenticating a sender address at your own domain involves.

The Bottom Line

Key takeaway

The form itself is the easy part; what decides whether it works is the inbox behind it.

Build it, then test it from the storefront. Send one message through the live form and confirm it lands in the sender email inbox before you rely on the page.
Your Next Step by Stage
Moving to Shopify FormsSee who receives the email after someone submits a Shopify Forms form, and why the customer gets none.Read the Forms email FAQ
Store emails in spam tooWork through Shopify Messaging deliverability in order when your marketing emails, not only contact messages, land in spam.Fix marketing email delivery
Fix is in your theme codeHourly development at $28 an hour covers a custom theme missing content_for_header or a custom form missing its CAPTCHA attributes.See hourly development

Extra Fields in Your Contact Form, Coded In

A developer adds the inputs you need to your theme's contact form, such as required fields and checkbox groups, at $28 an hour once you approve a time estimate. Sender email and domain settings stay with you.

Describe your fields

Frequently Asked Questions

No. Shopify says all its themes have a built-in contact form that you apply to pages you create: add a page in Online Store > Pages, choose the contact template, and link the page in a menu. The free Shopify Forms app is an optional extra for stored submissions, custom fields without code or several recipients through Shopify Flow.
The theme's contact form sends every submission to your store's sender email address, which you change in Settings > Notifications under Sender email. That is not the Store email address, which receives your product, order and customer exports. Shopify Forms works differently: it stores each submission in your Shopify admin and can also email you if you turn notifications on.
Check the sender email address in Settings > Notifications first, because that is where submissions go. Then search your mailbox for [SPAM], since flagged messages still arrive with that prefix, and send a test from your storefront. On a third-party domain you might also need to authenticate it, and Shopify's email setup page says some email hosts reject a sender address with no-reply wording.
Not with the theme form: it sends all submissions to the sender email address, so moving its messages means changing that address. If you would rather leave the sender email out of it, Shopify's help suggests embedding a form from a service such as Wufoo or Jotform. Shopify Forms stores submissions in your admin, with optional email notifications.
Not in the theme form of Horizon 4.4.0 or Dawn 16.1.1: their settings cover layout, styling and, in Dawn, a heading, and each field is coded as an input named contact[information_id]. Shopify Forms is the no-code route: custom fields are stored as a local field or a customer or company metafield, and a form holds up to 31 fields.
No. Shopify states that you can't change the subject line for emails sent through a contact form on a Shopify store. What you can control are the field titles: the name of each extra field appears in the notification you receive, and those titles must be unique within the form, so name them in words you will recognize in the inbox.
Shopify's spam filters analyze your contact form's contact[body] field (Horizon's message box), and a submission they flag is sent with a [SPAM] prefix in its subject. It is still delivered: Shopify sends you every submission, flagged or not, so a real customer flagged by mistake isn't lost. Set an email filter for [SPAM] and check that folder regularly.
Not according to Shopify's Preferences help page as we read it in November 2026. Shopify added reCAPTCHA v3 to contact forms in July 2020, and a changelog post of July 24, 2024 says it started migrating storefront CAPTCHA to hCaptcha. That page describes only hCaptcha, which is enabled by default on all Shopify stores.
Yes. In Online Store > Preferences, under Spam protection, you can switch off the setting Shopify's help calls Enable hCaptcha on contact and comment forms. It is on by default on all stores. Keep it on unless something conflicts, and don't add a third-party CAPTCHA app beside it, because hCaptcha isn't compatible with custom code or apps that add CAPTCHA.
In Horizon 4.4.0's code the form is a block: a Contact form block inside a section named Contact form, built from Horizon's Section type, with the Submit button block nested in the form block; the theme has no Contact form section file, though that type offers a Contact form preset under Forms. Dawn 16.1.1 instead has a dedicated Contact form section.
Yes. Shopify's help says that after a customer submits a form made with Shopify Forms, the submission data is stored in your Shopify admin. New customers get a customer profile, existing ones are matched to theirs, and you can create a customer segment for each form. An email notification for each submission is optional and turned on in Forms settings.
Creating the page doesn't put it in your navigation: Shopify's help says you need to add the contact page to your menu to display it on your online store. Go to Content > Menus, open the menu, click Add menu item, name it, pick your contact page in Search or paste a link, click Add, then save. Reload your storefront to see the link.
About This Article
Shopify Developer & Editorial Director
9+ years with Shopify since 2017

Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Directs the editorial process behind Ecom Store Pro: sets its topics and the rules every AI-written page must pass before publication.

Some links in this article are affiliate links. If you sign up for a Shopify store through these links, we may earn a commission at no extra cost to you. Read our full advertising policy.

Continue Learning

What to Read Next

Stay updated

Get notified about new articles

Subscribe to receive updates when we publish new Shopify guides and insights.