Skip to content

Guide

How to automate EU right of withdrawal requests on Shopify

No subscription apps required, and no plan upgrade either.

Published 4 July 2026

Every EU merchant has to let customers withdraw from a purchase, and has to acknowledge the request without delay. Handling that by hand works for the first few. It stops working once there are enough of them, and it leaves you with no record of when a request came in or what you said back, which is exactly what you need if a request turns into a dispute.

What automating it actually looks like

Three native Shopify pieces, connected. No third party service in the chain.

  1. Shopify Forms collects the request: customer name, order ID, email, and an optional note.
  2. Shopify Flow triggers on the form submission.
  3. Flow's transactional email action sends a branded confirmation back to the customer immediately.

The result is that the acknowledgement is automatic and timestamped, while the refund decision stays with you. That split matters: the law wants the acknowledgement to be immediate, but it does not require you to refund before you have looked at the order.

Why this does not need Make.com, Zapier, or a higher Shopify plan

The obvious way to build this would be a Flow step that fires an HTTP request at some external service. That is also the expensive way, because the HTTP Request action is not available on every Shopify plan, and the external service is another subscription on top.

Flow's built in transactional email action has no such restriction. It works on every Shopify plan, the free tier covers up to 500 emails per month, and there is no second vendor who can change their pricing or go away. For a compliance step that has to keep working quietly for years, fewer moving parts is the whole point.

Getting it running

The concept takes a paragraph. The implementation takes an afternoon, and almost all of that is one thing: field mapping.

When Shopify Forms receives a submission it creates a metaobject, and the field handles in that metaobject are what your email template has to reference. Get one handle wrong and the email sends with a blank where the order number should be, which is worse than not sending it. That is where people lose the afternoon.

We wrote the whole thing up: the form setup, the Flow configuration, the exact field mappings, and a branded confirmation email template, with screenshots at every step. It is free.


This covers the technical implementation only. What your withdrawal policy should say depends on what you sell, and digital goods in particular have their own rules. That part is worth asking someone qualified about.

Free tool

The full setup guide, with every field mapping

A PDF walkthrough of Shopify Forms setup, Flow configuration and the confirmation email template, with the exact handles you need.