returnEasier sends eleven types of transactional email. Five go to the end customer (the magic verification link, the withdrawal confirmation with its PDF, the status-change notices and the two for shop-for-exchange: pay the difference and payment received) and six go to you, the merchant (the new-request notification, the quota warnings when you approach your plan's limit, the plan-upgrade suggestion when you go over it two months in a row, on the Scale plan the analytics alerts you configure, and two compliance ones: the download link for a large auditable export and the JSON export for a GDPR access request). They are all sent through Brevo, a provider with servers in the European Union. The shopper's emails go out in their language: the magic link in the language of the portal they saw; the rest in the language the portal was in when they confirmed the request. Yours go out in your store's language, except for the two compliance ones, which currently go out in Spanish.
The emails, one by one
1. Magic verification link → to the customer
When a customer starts a request in the portal (step 1: email + order number), returnEasier sends them a magic link to verify that they are the holder of that order, without asking for registration or password. The subject changes depending on the flow: 'Confirm your withdrawal request' (legal flow) or 'Confirm your return request' (commercial flow).
- Goes in: the language of the portal the customer saw.
- Attachment: none.
- Limits: two, and different. One per IP address (the connection of whoever fills in the form), checked before anything is verified and the only one that shows the 'too many attempts' notice; and another of 3 requests an hour per (flow, store, email) —each route has its own—, spent only once the order has been proven to belong to that email address, and deducted BEFORE the verification is written and the email is sent: a DB or Brevo failure also uses up an attempt —so nobody can burn a customer's quota by trying numbers at random— and which is silent: the screen keeps saying 'we are verifying'. The legal and commercial flows have separate quotas.
2. Withdrawal confirmation (with PDF) → to the customer
After confirming the request (step 2), the customer receives the acknowledgement of receipt: the confirmation email with the PDF attached (summary, unique identifier, time stamp, hash and next steps). It is the legal proof of their withdrawal.
- Goes in: the shopper's language: the one the portal was in when they confirmed the request.
- Attachment: the withdrawal confirmation PDF (see 'What does the withdrawal confirmation PDF contain?').
- Also: a link to download the PDF, valid for 7 days.
- How it is sent: via a background job with retries, right after the request is confirmed, so that it arrives as soon as possible.
3. New-request notification → to you
When a customer creates any request (withdrawal or commercial return), returnEasier notifies you by email at your store's email address in Shopify (the one Shopify uses to write to you, not the customer contact one). It includes the identifier, the order number, a direct link to the request inside the app and, in the commercial flow, the resolution the customer prefers (refund, exchange or credit). If your rules approved it on their own, the notice tells you so.
- Goes in: your store's language.
- Attachment: none.
- Note: if your store does not yet have that email address synced, this notice is skipped (without breaking anything).
4. Status changes → to the customer
Every time you act on a request, the customer receives an automatic email. The statuses that trigger an email are:
| Status | When it is sent |
|---|---|
| Request received | Commercial flow only, when the request is created (or straight to 'Approved' if your rules approve it on their own) |
| Approved | When you approve (may carry the label as a PDF; if the label fails, it goes out without it and, if a retry generates it, the PDF arrives in a separate email) |
| Rejected | When you reject (includes your reason, mandatory) |
| Received | When you mark the products as received (or on its own when the parcel is delivered, if under Return labels you turned on marking it as received automatically) |
| Refunded | When you process the refund |
| Credit issued | When you issue a credit / store credit (commercial) |
| Exchange confirmed | When you confirm an exchange (commercial) |
The legal record and the commercial record stay separate: the emails for a withdrawal use the language of Article 11 bis and the legal deadlines; those for a commercial return use a neutral tone, without invoking the law.
5. Shop-for-exchange: pay the difference → to the customer (Pro+)
When the customer uses 'Swap for something else' and puts together a replacement cart, returnEasier creates a draft order in Shopify and sends them this email with Shopify's secure payment link. If the cart is worth more than what was returned, they pay only the difference; if the credit covers it in full, the email simply asks them to confirm the last step, at no cost.
- Goes out in: the shopper's language: the one the portal was in when they confirmed the request.
- Attachment: none.
- Expiry: the email tells the customer the link expires in 72 hours, and those 72 h are a target, not a to-the-minute cutoff: Shopify does not expire the draft on its own, it is removed by a process of ours that runs every 2 hours and cancels the ones already past 72 h. returnEasier never closes it early of its own accord; a payment landing shortly afterwards is still accepted and the request moves to 'Paid (awaiting receipt)'. When the process does cancel it, the request lands on 'Exchange expired' and the customer can start again. It does close early if the merchant cancels or deletes the draft in Shopify: the next pass then marks the request as 'Exchange expired'.
- Note: we send it via Brevo, not Shopify, so it arrives with your brand and in the right language.
- A single attempt (unlike the one below): if the send fails or stalls, it is not retried. It does not strand the customer, because on confirming they are already taken straight to the payment page in the browser; this email is the backup in case they close it and want to come back.
6. Shop-for-exchange: payment received → to the customer (Pro+)
When the payment for the difference lands and the draft becomes an order, the customer gets a confirmation: the payment has arrived and the next step is to send back the items they are returning; you prepare the new order once they reach you. It has no button: it is an acknowledgement, not an action.
- Goes out in: the shopper's language: the one the portal was in when they confirmed the request.
- Attachment: none.
- With retries: if the send fails, the process that runs every 2 hours retries it for the 24 hours following the payment (your notice too); after that, no more. The exchange is confirmed all the same and you see it in your inbox as 'Paid (awaiting receipt)'.
7. Analytics alert → to you (Scale plan)
If your plan is Scale and you have configured analytics alerts (for example, 'warn me if a product exceeds 20 % of my returns'), returnEasier evaluates your rules once a day and, when one fires, sends you an email with the metric, the value and the threshold, and a direct link to the analytics. To avoid filling your inbox, the same rule is not repeated until 7 days have passed since the last alert.
- Goes in: your store's language (all 7 supported).
- Attachment: none.
- Note: only if the rule has the 'email' or 'email + in-app notice' channel.
8. Quota warning → to you
When your shop crosses 80, 90 or 100 % of its monthly return volume (paid plans), returnEasier sends you a warning at your store's email address in Shopify. On the Free plan, the warning arrives when you use 2 of the 3 trial returns and when you use them all up. The email tells you how many returns you have used and how many your plan includes, and carries a button straight to the plans page: 'Upgrade plan' on the paid plans and 'Choose a plan' on Free; from 90 % it suggests the next plan up (except on Scale, which is already the top plan). And at 100 % it says it plainly, without drama: your customers' requests keep being recorded and the withdrawal button is never blocked. The detail is in 'Returns limits and warnings'.
- Goes in: your store's language.
- Attachment: none.
- No spam: on the paid plans, each threshold is warned about only once per month, with one deliberate exception: once you are over the limit, the 100 % warning repeats every 5 extra returns, with your up-to-date figures (the two Free trial-quota warnings are one-time only); the quota is checked right after each new request (and once a day as a backup).
9. Plan-upgrade suggestion → to you
If you go over your plan's monthly volume two months in a row, returnEasier sends you a separate email suggesting the next plan up (except on Scale, which is already the top plan), with your figures for both months and the 'Upgrade plan' button. And the usual point, said plainly: your customers' requests keep being recorded and the withdrawal button is never blocked.
- Goes in: your store's language.
- Attachment: none.
- Cadence: at most one per month, and only while the streak continues.
10 and 11. Compliance emails → to you
- Auditable-export link: when an export exceeds 100 requests, the ZIP is still generated while you wait on the page and, instead of downloading directly, you get a download link valid for 7 days (it is also shown on screen).
- GDPR access export: when a customer exercises their right of access through Shopify (
customers/data_request), you get a JSON with their data as an attachment. Both go to your store's email address in Shopify. They currently go out in Spanish whatever your store's language; translating them is planned.
Which address do they come from?
The emails are sent with the identity configured in the environment variables:
- Sender:
returnEasier<noreply@returneasier.com> - Reply to:
support@returneasier.com(if the environment variable is configured; otherwise, replies go to the sender). - Provider: Brevo (French company, servers in the EU; no transfers outside the EEA).
Resending the confirmation
On the detail of a withdrawal request you will see the 'Resend confirmation' button (if it was never sent, it appears as 'Send confirmation'). It sends the email with the PDF to the customer again. It is idempotent: if the confirmation was already recorded, a duplicate is not created. This action only exists for the legal flow (withdrawal), which is the one that generates a confirmation PDF.
Quota warnings vs analytics alerts
Do not confuse them: the quota warnings (point 8) and the plan-upgrade suggestion (point 9) arrive on their own, with nothing to configure, and watch your plan usage; the Scale plan's analytics alerts (point 7) are configured by you and watch your business (products with too many returns, resolution times). Both arrive by email. The quota detail is in 'Returns limits and warnings' and the alerts detail is in the analytics and alerts article.