Shopify Custom Contact Form Not Sending Emails? Here's How to Fix It!

Hey fellow store owners! Ever pour your heart into building a slick custom contact form on your Shopify store, test it, see that satisfying 'success' message, and then… crickets? No email notification in your inbox? You're not alone. This is a surprisingly common, and super frustrating, issue that recently came up in a lively community discussion. It feels like your store is playing a cruel trick on you, doesn't it? The good news is, our community experts dug deep into this exact problem, and there are some clear paths to getting those messages delivered.

The Plot Twist: Are You Even Talking to Shopify?

Before we dive into the nitty-gritty of Shopify's internal workings, there's a critical first check that one of our sharp community members, ThemeMend, pointed out. Sometimes, what looks like a Shopify form might actually be sending data elsewhere entirely! In the specific case we were discussing, the form on the page was posting to Formspree, not Shopify. The original poster provided a link to their live form, which ThemeMend inspected:

WEARBOCO: Affiliate program

WEARBOCO site icon WEARBOCO Affiliate program page thumbnail

If your form's action attribute points to an external service like Formspree, then Shopify never even sees the submission, and of course, won't send a notification! The "success" message you're seeing would be coming from that external service, not Shopify.

How to Check Where Your Form is Submitting

This is a super quick check that can save you hours of head-scratching:

  1. Go to the page with your custom form on your live store.
  2. Right-click anywhere on the form and select "Inspect" (or "Inspect Element").
  3. In the developer tools that pop up, look for the
    tag.
  4. Check its action attribute.

If it says something like action="https://formspree.io/f/...", you've found your culprit! In this scenario, your troubleshooting needs to shift to Formspree:

  • Formspree Confirmation: On Formspree's free plan, a new form needs to be confirmed by clicking a link in an email after its first submission. Until then, submissions are accepted, but emails don't go out. This is a #1 cause for this exact symptom!
  • Destination Email: Is the email address verified in Formspree?
  • Submission Limits: Are you past Formspree's free plan limits (usually 50 submissions/month)?
  • Spam Folder: Always check your spam folder, and Formspree's dashboard has a submission log you can check.

If you actually want Shopify to handle these submissions, then you'll need to update your form's code to use Shopify's native (or more typically, {% form 'contact' %} in Liquid) and ensure your input fields are named correctly (e.g., contact[email], contact[body]).

Assuming You ARE Talking to Shopify: The Silent Spam Filter

Okay, so you've confirmed your form is definitely submitting to Shopify. Great! Now we can focus on why Shopify might be accepting the submission (form.posted_successfully? returns true) but silently dropping the email notification. This is often where Shopify's internal spam filters come into play. As Ecom_swift_LLC pointed out, Shopify runs every /contact submission through its own spam filter after the redirect, so a 'success' state doesn't guarantee email delivery.

The original poster's custom form structure looked something like this:

{% form 'contact', id: 'ContactForm', class: 'ba-form isolate' %}
  

  

  
{% endform %}

The "Hidden" Field Dilemma: HTML vs. CSS

One of the strongest theories from the community, particularly from M.Rahman and Ecom_swift_LLC, revolved around the hidden attribute on the

Quick Test: Temporarily remove all hiding and make the