Log a return request against the customer's record
Each return request finds or creates the customer in WooCommerce and records the reason and order number as a note staff can act on.
New Submission on your return or exchange form
Create or update a customer in WooCommerce and add an order note with the request
One-directional. A submission triggers the action — nothing is written back into your form.
Returns arrive as email, and email is where they get lost. Sending the form into WooCommerce instead puts the reason, the order number and the requested outcome next to the record the refund will eventually be issued against.
Stores with more than one person on support feel the difference first. Whoever opens wp-admin next can see a return exists without searching an inbox, and the customer is not asked to read out their order number again.
Setting it up
- 1
Publish the return form with Order Number required, and add a line under it saying where the number appears on the confirmation email. The whole flow hangs on that one value being right.
- 2
Use conditional logic so answering no to "Is the item in its original packaging?" reveals a follow-up about the item's condition, which is what decides whether a return can be accepted at all.
- 3
In Zapier, choose formformform, the New Submission trigger, and the return form.
- 4
Add a WooCommerce Find Customer step matching on Email Address, with create-if-missing enabled, so a shopper who checked out as a guest still ends up with a record.
- 5
Add a Zapier Formatter step that strips hash symbols, spaces and any invoice prefix from Order Number before it is used to look the order up.
- 6
Add the WooCommerce action that writes an order note against that order, and build the note body from Reason for Return followed by Description of Issue.
- 7
Include Preferred Resolution in the same note. Refund, replacement and store credit are handled by different people in most shops, and the note is what routes it.
- 8
Test with a real order number from your own store, confirm the note appears in the order's activity panel, then switch the Zap on.
What maps where
Using the Product Return Request Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | WooCommerce |
|---|---|
| Email Address | Customer looked up or created in WooCommerce |
| Full Name | First and last name on the customer record |
| Order Number | The order the note is attached to |
| Reason for Return | Opening line of the order note |
| Description of Issue | Body of the order note |
| Preferred Resolution | Order note, telling support what was asked for |
Variations worth knowing
Branch on Preferred Resolution. Refund requests write their note and stop; exchange requests write the note and also post to the channel your warehouse watches, because an exchange needs stock reserving before anyone replies to the customer.
Add a Zapier filter comparing Date of Purchase against today. Requests older than your policy still write a note, prefixed so it is obvious, and skip any customer-facing step. Support then decides on the exception instead of the shopper being refused by a Zap.
If something isn't arriving
Shoppers copy the order number with a hash, a space or the invoice prefix attached. The Formatter step that strips everything but digits fixes most of it. For the rest, filter out values that are not the right length before the lookup runs.
Matching happens on email alone, so a guest who used a work address at checkout and a personal one on the form will not match. Ask for the address used on the order in the form's help text, and merge the duplicates you find in the customers list.
Frequently asked questions
Does this actually refund the customer?
No. It records the request against the order so support can find it. The refund itself stays a manual action in wp-admin, taken by someone who has checked the returns window and the condition of the item that came back.
Can the shopper track their return on the form?
No. Data moves one way only, from the submission into WooCommerce, and nothing is written back to the form or shown to the person who filled it in. Send progress updates from the store, or reply to the email address they gave.
What about someone who ordered as a guest?
The order note still works, because notes attach to the order rather than to an account. The Find Customer step creates a record from the details on the form, so the next request from the same address matches an existing customer.
Related automations
- Add a made-to-order build to the catalogue as a draft
Every build request creates a draft WooCommerce product carrying the item name, its part number as SKU and the full specification.
- Draft a wholesale order from a bulk buying enquiry
Each wholesale request lands as a pending WooCommerce order with the requested line items and the buyer's billing details attached.
- Hold pre-orders as on-hold orders before a launch
Every reservation becomes an on-hold WooCommerce order with the chosen variation and quantity, so launch day starts with a real queue.
- Issue a single-use discount code to survey entrants
A completed feedback survey generates a unique WooCommerce coupon with a fixed discount and a one-use limit, tied to the shopper's email.
- Turn a loyalty signup into a store customer account
Each loyalty signup creates a WooCommerce customer with billing name, email, phone and mailing address already filled in.
- Add a wholesale lead to your Shopify customers
Each wholesale application creates a Shopify customer with the business name, buyer contact and address already filled in.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free