Skip to content
GPLWP Guides

How to send automated birthday emails and coupons in WooCommerce

Marketing & Email Time About 30–60 minutes with an automation extension; several hours for a custom build 7 steps Updated 16 Sep 2026

MARKETING & EMAIL
The short answer

WooCommerce can create coupons, but it does not collect birthdays or send birthday-triggered emails by itself. You need custom development or an automation extension that stores customer birthdays, runs a scheduled trigger, creates a coupon and sends the email.

The route
  1. 01Decide what the coupon should do
  2. 02Collect and explain birthday data
  3. 03Build the custom route if needed
  4. 04Configure the birthday workflow
  5. 05Add the personalised coupon
  6. 06Test delivery before activating
  7. 07Use the faster extension route

What you need

  • A WooCommerce store with customer accounts enabled
  • Administrator access to WordPress and WooCommerce
  • A reliable transactional email service or SMTP setup
  • A clear birthday offer and coupon policy

Decide what the coupon should do

Choose the offer before configuring the email. A percentage discount, fixed cart discount or free-shipping coupon can all work, but set an expiry date and decide whether it applies to all products, selected products or a minimum spend.

For birthday campaigns, a unique, single-use coupon is safer than one shared code. It limits repeated use and makes it easier to connect a redemption to the recipient.

Collect and explain birthday data

WooCommerce does not provide a native birthday field or birthday trigger. You need an extension or custom development to collect a customer’s month and day, normally through the checkout or the My account area. AutomateWoo’s Birthdays documentation supports both locations and makes collecting the birth year optional.

Tell customers why you are asking, what they will receive and how to change or remove the date. Only collect the year if your campaign genuinely needs it.

Build the custom route if needed

Without a birthday automation extension, a developer must add a customer date field, save it against the user, run a daily scheduled process, find customers whose month and day match, create or select a coupon and send the email. The scheduled process also needs safeguards against duplicate sends and a way to log failures.

This route is possible, but it is not a small WooCommerce setting. You must also account for the site timezone, customers without accounts, missing birthdays, leap-day birthdays, email deliverability and changes to checkout fields. A custom build is sensible only when you need rules that existing automation tools cannot provide.

Configure the birthday workflow

With an automation extension, enable its birthday settings and turn on the customer-facing birthday field in checkout, the account area or both. In AutomateWoo, these settings are under AutomateWoo → Settings → Birthdays; the field is shown to logged-in customers who have not already supplied a birthday.

Create a workflow using the Customer Birthday trigger, then choose whether it runs before, on or after the birthday. Add a Send Email action and use the customer email address supplied by the workflow.

Add the personalised coupon

Create the coupon inside the workflow or prepare an existing WooCommerce coupon. For a personalised one-time offer, add the coupon-generation variable {{ customer.generate_coupon }} to the email and set its discount, restrictions and expiry in the variable options. AutomateWoo documents this approach for generating a unique code for each recipient.

Include the discount amount, expiry date, minimum spend and any product restrictions in the message. Do not rely on a preview code as a real coupon: preview coupons are mock values, so use the email test function when you need to verify redemption.

Test delivery before activating

Save the workflow as a draft and test it with an administrator account whose birthday is suitable for the test, or use the extension’s test-email feature. Check the subject, personalisation, coupon code, expiry date, mobile layout and links.

Also test the failure cases: a customer with no birthday, an account with an incorrect date, a coupon that cannot be applied to the cart and a birthday close to midnight. Scheduled tasks can be delayed if your site has poor cron activity, so check the workflow logs and your mail provider’s delivery records after activation.

Use the faster extension route

For most stores, the fast way is to use AutomateWoo Birthdays Add-on with AutomateWoo. It supplies the birthday field settings, the Customer Birthday trigger, birthday rules and the birthday variable, while AutomateWoo handles the workflow and email actions.

Install and activate AutomateWoo and the Birthdays add-on, collect birthdays, create the workflow, add the personalised coupon and send a test. This avoids writing and maintaining the scheduled customer lookup, coupon generation and email logic yourself.

The fast route

Let AutomateWoo Birthdays Add-on do it

Adds birthday-triggered emails, coupons, customer segments, and campaign analytics for WooCommerce stores.

Get AutomateWoo Birthdays Add-on

Sources

  1. woocommerce.com /document/automatewoo/getting-started-with-birthdays/?utm_so…
  2. woocommerce.com /document/automatewoo/examples/loyalty-workflows/celebrate-y…
  3. woocommerce.com /document/automatewoo/variables/personalized-coupons/?utm_so…

Questions

Can WooCommerce send birthday emails without a plugin?
No. WooCommerce includes coupon management and standard transactional emails, but it does not natively collect customer birthdays or trigger an email when a birthday arrives. You would need custom development to add the date field, schedule the daily check, generate or assign the coupon and send the message. For most shops, an automation extension is less work to maintain.
Should I collect the customer’s birth year?
Usually, no. A birthday campaign normally needs only the month and day, so collecting the year creates extra personal-data handling without improving the offer. AutomateWoo allows the year to be omitted from its birthday field. Ask for the year only when it is required for a legitimate age-based rule or another clearly explained business purpose.
Why is the birthday field not showing at checkout?
The field may be disabled, the Birthdays add-on may be inactive, or the shopper may be a guest or may already have a birthday saved. AutomateWoo documents that its checkout field is optional and is shown to logged-in customers who have not already supplied the information. Check the birthday settings and test while logged in with a user account that has no saved date.
Can I use one coupon code for every birthday email?
Yes, but a shared code is easier to publish, reuse and abuse. A unique, single-use coupon is generally safer for a birthday reward because it can be restricted to one customer and one redemption. When using AutomateWoo, the customer coupon variable can generate a unique code within the workflow, with an optional expiry date and fallback.