If you run a Shopify store selling to EU customers, you're required to give customers a way to exercise their right of withdrawal: a 14-day window to cancel a purchase without giving a reason, with prompt acknowledgment of the request. In practice, most stores handle this through a support inbox. A customer emails in, someone manually checks the order, someone manually replies. It works at low volume. It breaks down as you scale, and it leaves no consistent paper trail if a dispute comes up later.
What automating it actually looks like
The workflow has three moving parts, and none of them require a paid app:
- A Shopify Forms form on a dedicated storefront page, collecting the customer's name, order ID, email, and an optional note (useful for partial withdrawals).
- A Shopify Flow automation that triggers the moment a form is submitted.
- Flow Transactional Email, which sends a branded confirmation email automatically, with no manual email drafting and no delay.
The result: a customer submits the form, sees an immediate on-screen confirmation, and receives an email within seconds confirming their request, their order reference, and the 14-day deadline. Everything is logged as a customer record in your Shopify Admin, so refund review stays a manual decision on your end. Automation handles the acknowledgment, not the money.
Why this doesn't need Make.com, Zapier, or a higher Shopify plan
A common way to build this kind of automation is to trigger an external tool (Make.com, Zapier) via Shopify Flow's "Send HTTP Request" action. That action is restricted to the Grow, Advanced, and Plus plans, so if you're on Basic, that route is closed to you.
Using Flow's native Transactional Email action instead of routing through an external service sidesteps that restriction entirely. The tradeoff is a slightly different setup process, but the result runs identically on every Shopify plan, with no monthly automation-tool bill attached to your compliance workflow. The free tier of Flow Transactional Email covers up to 500 emails per month, which comfortably fits most stores' withdrawal-request volume.
Getting it running
The setup involves specific field mapping between your form, the metaobject Shopify generates behind the scenes, and the email template's variables. This is the part most people get stuck on, since Shopify auto-generates camelCase field handles regardless of how you labeled the fields in the form builder.
We put together the complete walkthrough (form configuration, page template, email HTML, and the exact Flow variable mapping) as a self-install guide: EU Withdrawal Compliance Tool.
This post covers the technical implementation only. Withdrawal periods and exceptions vary by product category, so confirm your store's specific policy with a qualified advisor.